0 beğenilme 0 beğenilmeme
1,330 kez görüntülendi
Merhaba, stratejime stop loss olduysa 10 bar boyunca tekrar aynı yönde işlem açmasın komutunu eklemek istiyorum. Örnegin alım yaptı fakat stop oldu, stoptan sonraki 10 bar boyunca tekrar alım yönlü işlem yapmasın. Çünkü büyük düşüşlerde her barda işlem açıp stop oluyor, bu sayede sadece ilk barda stop olmasını ve bir süre işlem açmamasını sağlamak istiyorum. Bu şekilde stoploss olduktan sonraki bar sayısını nasıl saydırabilirim
Algoritmik Trading kategorisinde (54 puan) tarafından | 1,330 kez görüntülendi

1 cevap

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

Merhaba,

Sentetik emirler gerçekleştiğinde OnSyntheticOrderTriggered() methodu tetiklenmektedir.

OnSyntheticOrderTriggered() tetiklendiğinde aktif barın indeksi alınıp aşağıdaki örnekteki gibi OnDataUpdate() methodunda kontrol edilebilir.

Aşağıdaki yapı ile stoploss tetiklendiğinde andaki barın indeksini alıp 10 bar geçmesi kontrol edilmiştir..

 

int tetiklendigiBar=int.MinValue;

public override void OnDataUpdate(BarDataCurrentValues bd)
{
	// alış koşulu
	if (bd.LastUpdate.Close>bd.LastUpdate.Open && 
		bd.LastUpdate.BarDataIndex >= tetiklendigiBar + 10 &&
		LastOrderSide.Obj!=Side.Buy)
	{
		SendMarketOrder(Symbol,1,OrderSide.Buy);
		TrailingStopLoss(Symbol,SyntheticOrderPriceType.Percent,2);
	}

	// satış koşulu
	if (bd.LastUpdate.Close<bd.LastUpdate.Open && 
		LastOrderSide.Obj!=Side.Sell)
	{
		SendMarketOrder(Symbol,1,OrderSide.Sell);
		TrailingStopLoss(Symbol,SyntheticOrderPriceType.Percent,2);
	}	
}

public override void OnSyntheticOrderTriggered(SyntheticAlgoOrder sOrder)
{
	if (sOrder.EnableOrderSending && 
		sOrder.SyntheticAlgoOrderType == SyntheticAlgoOrderType.StopLoss)
	{
		var barDataModel = GetBarData();
		tetiklendigiBar = barDataModel.BarDataIndexer.LastBarIndex;
		Debug("Stoploss teteiklendi");
	}
}
		
public override void OnOrderUpdate(IOrder order){
	if(order.OrdStatus.Obj==OrdStatus.Filled){
		tetiklendigiBar=int.MinValue;
	}
}

 

Unblocked Games offering a wide range of experiences: action, puzzle, platform, racing, clicker mechanics, strategy, sports, even horror. https://unblocked1games.github.io
(16,369 puan) tarafından
tarafından düzenlendi
Sentetik Emir Tetiklendiğinde Bar Saydırma
BarDataCurrentValues yerine bunu BarDataEventArgs le nasıl yapabiliriz
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,865 soru
9,832 cevap
5,304 yorum
58,172 kullanıcı