Merhabalar,
Tam emin olmamak ile beraber stratejinizde eğer bir al koşulu gerçekleştikten sonra, tekrar başka bir koşulu tetikleniyor ise ikinci tetiklenen al koşulunun fiyatı baz alınıyor olabilir.
Yani biraz daha Türkçeleştirecek olursak,
Aşağıdaki ekran görüntüsünde işaretlediğim alış ve satış emri için take profit olmasına rağmen zararına işlem yapıyor.
Bunun sebebi aşağıdaki ekran görüntüsünde göreceğiniz kırmızı ile işaretlediğim tetiklenen ama gerçekleşmeyen alış emridir.
O tarihte bir alış emri oluşmuş, fakat emirler sıralı gönderildiği için emir iletilmemiş. Ama Kar Al yapısı ikinci kez tetiklenen bu alış emrinin fiyatını baz alarak kendini güncellemiş.
Bu sebeple oluşturduğunuz sistemin al koşulunda yön kontrolü yaparsanız bu sorun ortadan kalkacaktır.
Alış koşulunuzun yanına AND ekleyip LastOrderSide.Obj != Side.Buy yazmanız yeterli olacaktır.
if (CrossAbove(macd, macd, 0, 1) && LastOrderSide.Obj != Side.Buy)
{
SendMarketOrder(Symbol1, OrderQuantity1, OrderSide.Buy, includeAfterSession:false);
TakeProfit(Symbol1, SyntheticOrderPriceType.Percent, StopLevel1);
}
İyi çalışmalar.