0 beğenilme 0 beğenilmeme
72 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 | 72 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,022 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.



8,967 soru
8,920 cevap
4,966 yorum
23,260 kullanıcı