0 beğenilme 0 beğenilmeme
300 kez görüntülendi
merhaba,

//DX1:= 48;

//D2:= PDI(DX1);

//M2:= MDI(DX1);

//DS:= D2 - M2;

//DS1:= MOV(DS, DX1, S);

//DS3:= ROC(DS1, 8, $);

YUKARIDAKİ MATRIKS PRİME KODLARINDAKI DS1 VE DS3 DEGISKENLERINI IQ YA CEVIRMEK ISTIYORUM.YAPAMADIM. DEGISKENIN ORTALAMASINI ALMAK KONUSUNDAKI ÖRNEĞİ İNCELEDİM FAKAT AYNISI BİLE CALIŞMIYOR. BU KONUDA DAHA DETAYLI BIR ORNEK PAYLASIRMISINIZ?
Algoritmik Trading kategorisinde (28 puan) tarafından | 300 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Merhaba,

Dis, Mov ve Roc indikatörlerini aşağıdaki gibi tanımlayıp kullanabilirsiniz.

DIS dis;
MOV mov;
ROC roc;

public override void OnInit()
{
	AddSymbol(Symbol, SymbolPeriod);
			
	dis = DISIndicator(Symbol, SymbolPeriod, OHLCType.Close, 48);
	mov = MOVIndicator(dis, 48, MovMethod.Simple);
	roc = ROCIndicator(mov, 8);	
			
	SendOrderSequential(true, Side.Buy);

	WorkWithPermanentSignal(true);
}

public override void OnDataUpdate(BarDataEventArgs barData)
{
	var degisim=roc.Value[0][roc.CurrentIndex];
}

 

(16,239 puan) tarafından
0 0

DX1:=48;
D2:=PDI(DX1);
M2:=MDI(DX1);
DS:=D2-M2;
DS1:=MOV(DS,DX1,S);
DS2:=DS-DS1;
DS3:=ROC(DS1,8,$);
DS4:=lowestsince(1.,CROSS(DS1,DS),DS);
DS5:=DS-DS4;
DS6:=ROC(DS1,16,$);

KODU DERLIYOR ,BACKTEST YAPILMADI DIYE KIRMIZI BIR KUTU CIKIYOR.. HATA VERIYOR.. BEN HER BARDA DEGISEN BIR SAYININ HAREKETLI ORTALMASINI ALMAK ISTIYORUM.. KODLAR BIR BIRI ILE İLİŞKILI OLDUGU İÇİN YUKARIDAKI "" DS1"" YAPAMADIĞIM İÇİN ROC KISMI OLAN "DS3" DE CALIŞMIYOR.SİTEDE ALTERNATIF YARDIM KISMINDA YAZAN  

Değişken tanımlama ve ortalamasını alma. - Matriks Destek ve Yardım Platformu

KISMINI DENEYIP YAPTIM OLDU.FAKAT BU SEFER ROC KISMINIDA BURADAN ALIP UYGULADIM LAKIN KODU DERLIYOR BACKTEST HATASI VERIYOR BASIT BIR YOLU YOOKMU ? BIR DEGISKENIN HAREKETLI ORTALMASINI ALMANIN OLMUYOR İSE , TEKRARDAN SISTEM İÇERİSİNDE DUZELTMEM GEREK .

TESEKKURLER

 

 

 

 

1 0
MOV ds1;

ds1 = new MOV(u4, MovMethod.Simple);

barsay = barDataCurrentValues.LastUpdate.BarDataIndex;

ds = pdi_d.CurrentValue - mdi_d.CurrentValue;

ds1.Update(ds, barsay, DateTime.Now);

 

bu şekılde çözdüm. teşekkurler.
Hoş geldiniz, Matriks Destek Platformu sizlere sorularınızın hızlıca cevaplanması için bir ortam sağlar. Sorduğunuz ve cevapladığınız soruların ve yorumlarınızın aldığı oylar üzerinden puan kazanırsınız. Puan sistemine bağlı kampanyamızla ücretsiz kullanım avantajlarından faydalanabilirsiniz.



9,507 soru
9,462 cevap
5,127 yorum
40,126 kullanıcı