Merhaba,
Stratejide sentetik emir tetiklendikten sonra LastOrderSide.Obj değerini Side.All yapılırsa yine X lot ile işleme girip sonrasında 2X olarak devam edecektir.
Aşağıdaki örneği inceleyebilirsiniz.
List<string> orderIDList = new List<string>();
string orderID;
public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues)
{
var barDataModel = GetBarData();
if (CrossAbove(barDataModel, superTrend, OHLCType.Close) && LastOrderSide.Obj != Side.Buy)
{
if (LastOrderSide.Obj == Side.All || !AcigaSatisYapilsin)
{
orderID = SendMarketOrder(Symbol, BuyOrderQuantity, OrderSide.Buy);
}else
{
orderID = SendMarketOrder(Symbol, BuyOrderQuantity * 2, OrderSide.Buy);
}
orderIDList.Add(orderID);
Debug("Alış Emri Gönderildi");
TakeProfit(Symbol, SyntheticOrderPriceType.Percent, KarAL);
StopLoss(Symbol, SyntheticOrderPriceType.Percent, ZararDurdur);
TrailingStopLoss(Symbol, SyntheticOrderPriceType.Percent, tsl);
}
if (CrossBelow(barDataModel, superTrend, OHLCType.Close) && LastOrderSide.Obj != Side.Sell)
{
if (LastOrderSide.Obj == Side.All || !AcigaSatisYapilsin)
{
orderID = SendMarketOrder(Symbol, SellOrderQuantity, OrderSide.Sell);
}else
{
orderID = SendMarketOrder(Symbol, SellOrderQuantity * 2, OrderSide.Sell);
}
orderIDList.Add(orderID);
Debug("Satış Emri Gönderildi");
TakeProfit(Symbol, SyntheticOrderPriceType.Percent, KarAL);
StopLoss(Symbol, SyntheticOrderPriceType.Percent, ZararDurdur);
TrailingStopLoss(Symbol, SyntheticOrderPriceType.Percent, tsl);
}
}
public override void OnOrderUpdate(IOrder order)
{
if (order.OrdStatus.Obj == OrdStatus.Filled)
{
if (!orderIDList.Contains(order.CliOrdID) && AcigaSatisYapilsin)
{
LastOrderSide.Obj = Side.All;
Debug("Sentetik emir tetiklendi");
}
}
}
Unblocked Games offering a wide range of experiences: action, puzzle, platform, racing, clicker mechanics, strategy, sports, even horror.
https://unblocked1games.github.io