0 beğenilme 0 beğenilmeme
464 kez görüntülendi
Merhaba,

Kar al veya Zarar Kes Tetiklendiğinde If Koşulu Eklemek mümkün müdür? Yani :

If (TakeProfit == True) gibi bir ifade yazamaz mıyız? Örnek bir kod paylaşabilir misiniz?
Algoritmik Trading kategorisinde (48 puan) tarafından | 464 kez görüntülendi
0 0
Konu ile ilgili bende takipteyim. Örnek olarak kademe boşluğundan ötürü tetiklenen stoplossu if else komutlarıyla tekrar sorguya sokabilir miyiz? Halen stoploss seviyesindeyse stop devreye girebilir şeklinde.

2 Cevaplar

1 beğenilme 0 beğenilmeme
Bahsettiğiniz konuya yakın olarak iki indikatörün kesişmesiyle stop olma koşulunu paylaşıyorum. Zannediyorum ki paylaştığım kod istediğinize göre evrilebilir.
 

public override void OnDataUpdate(BarDataEventArgs barData)

{

var barData1 = GetBarData(Symbol1, SymbolPeriod1);

var ohlcData1 = GetSelectedValueFromBarData(barData1, OHLCType.Close);

 

if ((CrossBelow(ema, sma, 0, 0) && superTrend.Value[0][superTrend.CurrentIndex] > ohlcData1)

||

(CrossBelow(ema, superTrend, 0, 0) && superTrend.Value[0][superTrend.CurrentIndex] > ohlcData1)

)

{

var portfoy = GetPortfolio();

var adet = portfoy.ContainsKey(Symbol1) ? portfoy[Symbol1] :0;

if (adet > 0)

{

SendMarketOrder(Symbol1, adet, OrderSide.Sell);

Debug("Pozisyon kapatıldı");

LastOrderSide.Obj = Side.All;

sentetikEmirdenMI = true;

}else if (adet < 0)

{

SendMarketOrder(Symbol1, Math.Abs(adet), OrderSide.Buy);

Debug("Pozisyon kapatıldı");

LastOrderSide.Obj = Side.All;

sentetikEmirdenMI = true;

}else

{

Debug("Pozisyon kapatma koşulu sağlandı ama elde pozisyon yok");

}

}

}
(32 puan) tarafından
0 0
Çok teşekkürler yardımınız için.
1 beğenilme 0 beğenilmeme

Merhaba,

Sentetik emir tetiklenmesini OnSyntheticOrderTriggered() metodu ile aşağıdaki örnekte olduğu gibi yakalayıp sentetik emrin detaylarına ulaşabilirsiniz.

public override void OnDataUpdate(BarDataEventArgs barData)
{
	// Sentetik emir tetiklendiğinde pozisyon kapatır
	TakeProfit(Symbol1,SyntheticOrderPriceType.Percent,1,true);
	StopLoss(Symbol1,SyntheticOrderPriceType.Percent,1);
			
	// Sentetik emir tetiklendiğinde pozisyon KAPATILMAZ
	TakeProfit(Symbol1,SyntheticOrderPriceType.Percent,1,false);
}
		
public override void OnSyntheticOrderTriggered(SyntheticAlgoOrder sOrder){
	if(sOrder.EnableOrderSending){
		Debug("Sentetik emir tetiklendi emir gönderilecek");
				
		if(sOrder.SyntheticAlgoOrderType==SyntheticAlgoOrderType.TakeProfit){
			Debug("Kar al tetiklendii sembol: "+sOrder.Symbol+" seviye: "+sOrder.StopLevel);
		}
				
		if(sOrder.SyntheticAlgoOrderType==SyntheticAlgoOrderType.StopLoss){
			Debug("Zarar durdur tetiklendii sembol: "+sOrder.Symbol+" seviye: "+sOrder.StopLevel);
		}
        if(sOrder.SyntheticAlgoOrderType==SyntheticAlgoOrderType.TrailingStopLoss){
			Debug("İzsürenstop tetiklendii sembol: "+sOrder.Symbol+" seviye: "+sOrder.StopLevel);
		}
	}else{
		Debug("Sentetik emir tetiklendi emir GÖNDERİLMEYECEK");
	}
}

 

(15,882 puan) tarafından
1 0
Çok teşekkürler yardımınız için.
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,553 soru
8,510 cevap
4,785 yorum
19,315 kullanıcı