Matriks Destek ve Yardım Platformu

Matriks Ürünleri ile ilgili tüm sorularınız için bizlere buradan ulaşabilirsiniz. Daha önce sorulan soruları ve verilen cevapları ilgili sekmelerden ve arama üzerinden inceleyebilirsiniz. Sağ taraftaki kategoriler üzerinden İlgilendiğiniz özelliklerle ilgili soruları filtreleyebilirsiniz. Soru ve cevapları sosyal medyada paylaşabilirsiniz. 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.

0

abstract, extern veya partial olaran işaretlenmediğinden gövde bildirmelidir hatası

Soruldu
Görüntülenme
804 görüntülenme
Durum
Çözüldü

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.

Paylaş

1 Cevap

1

Kabul edilen 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.

BağlantıBayrakladüzenlendi · SasiyangMatriks Destek11.113

Yorumlar (2)

  • ▲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

    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.

Cevabınız

Cevap yazmak için giriş yapın.Giriş yapKayıt ol