MatriksIQ Destek
Matriks Destek
Matriks Web Destek
Matriks Mobile Destek
0 beğenilme 0 beğenilmeme
90 kez görüntülendi

Merhaba, aşağıdaki yöntemi stratejime eklemeye çalışırken fotoğraftaki hatayı alıyorum. OnDataUpdate kodlarından birini sildiğimde sorun ortadan kalkıyor fakat ikisi birlikte olunca hatayı veriyor. Bu yöntem stratejimde belirli bir süredir açık olan pozisyonu kapatacak. public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues); satırı stratejimde olduğu için silemiyorum.

int ilkIslem = 0;

        public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues);
		public override void OnDataUpdate(BarDataEventArgs barData)
		{
			if (ilkIslem + BarSayisi == barData.BarDataIndex && Adet != 0)
			{
				SendMarketOrder(Symbol, Adet, (OrderSide.Sell));
				Adet = 0;
				ilkIslem = 0;
			}
			else if(CrossAbove(most.ExMOV, most))
			{
				SendMarketOrder(Symbol, BuyOrderQuantity, (OrderSide.Buy));
				ilkIslem = barData.BarDataIndex;
				Adet += BuyOrderQuantity;
			}
		}


		public decimal Adet = 0;

 

 

public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues);

public override void OnDataUpdate(BarDataEventArgs barData)

bu iki satırdan birisini sildiğimde hata gidiyor fakat ikisini de yazdığımda hatayı alıyorum.

Algoritmik Trading kategorisinde (54 puan) tarafından | 90 kez görüntülendi

1 cevap

1 beğenilme 0 beğenilmeme
En İyi Cevap

Merhabalar,

Doğrudur, iki satırı aynı anda kullanamazsınız.

public override void OnDataUpdate(BarDataEventArgs barData)
		{
			if (ilkIslem + BarSayisi == barData.BarDataIndex && Adet != 0)
			{
				SendMarketOrder(Symbol, Adet, (OrderSide.Sell));
				Adet = 0;
				ilkIslem = 0;
			}
			else if(CrossAbove(most.ExMOV, most))
			{
				SendMarketOrder(Symbol, BuyOrderQuantity, (OrderSide.Buy));
				ilkIslem = barData.BarDataIndex;
				Adet += BuyOrderQuantity;
			}
		}


		public decimal Adet = 0;

Bu kalıbı kullanmanız yeterlidir.

İyi çalışmalar.

(4,449 puan) tarafından
tarafından seçilmiş
0 0
Merhaba, stratejimde iki satırı da kullanmam gerekiyor. İndikator için
public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues); satırını da kullanmam gerek. Bu satırı stratejide farklı yerlere konumlandırdım fakat yine aynı hatayı verdi. Bunu nasıl yapabilirim
1 0

Merhabalar,

public override void OnDataUpdate(BarDataEventArgs barData) methodunu kullanmak yerine sadece public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues) methodunu kullanıp aşağıdaki satırı böyle yazarsanız aynı formülü elde etmiş olursunuz.

if (ilkIslem + BarSayisi == barData.BarDataIndex && Adet != 0) 

 yerine, BarSayisi değişkenini aşağıdaki gibi elde edebilirsiniz.

var BarSayisi = barDataCurrentValues.LastUpdate.BarDataIndex;

İyi çalışmalar.

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.



5,177 soru
5,201 cevap
3,374 yorum
3,903 kullanıcı