Merhaba
2 sorum var
1. SORU:
Asagidaki gibi bir emir silsilesi yazdigimizda ve sirali emir :true iken alim gerceklestiginde take profit satis emri gönderiyor. dolayisi ile satis emride gönderilmis oluyor. ve sira tekrar alisa gectigi icin henüz sentetik emir satisi alinmadan kosul gerceklestigi icin tekrar yeni bakiye ile alima giriyor. Bu yeni alimi nasil engelleriz. Bu islemler sirasinda ayrica bazen sentetik emri gönderirken hata döndürüyor 10 islemde 1 bile olsa hata aliyorum. Bu yeni bakiye kullanimini ve sentetik emirdeki hatayi nasil engelleriz. (sentetik emir 10 saniye sonra gitsede olur)
decimal sat;
sat = Math.Round(ohlcData1 * 1.01m, 3);
SendMarketOrder(Symbol1, OrderQuantity1, OrderSide.Buy, includeAfterSession:false);
SendBinanceTakeProfitMarketOrder(Symbol1, OrderQuantity1, OrderSide.Sell, sat);
SORU 2
Ayni strateji icerisinde 2 farkli kosul altindan iki farkli emir silsilesi gerceklesiyor örnek asagidadir. Bu kosullar gerceklestiginde farkli kar yüzdeleri ile satis emri gerceklestiriyor. Dolayisi ile kar al emri farkli yüzdelere sahip.. Bu sorum yukardaki sorumlada kesisiyor. Yani Asil yapi asagidaki gibi ve her iki kosuldada kosul saglandiginda alis emri yeni bakiye ile tekrar isleme giriyor. Yeni bakiye kullanimini nasil engelleriz ve bu iki kosuldaki satis siralamasini nasil saglariz.
Özetle
1. kosul yada 2. kosul ile alim yapildiginda hem 1. kosul hemde 2. kosuldan yeni al emri gelmesi herhangi birinden gelen sinyal sabit olmali ve 2. bir alim emri satis gerceklesmeden olusmamali yani ayni bakiye ile islem yapilmalidir.
1. sorumu 2. soru ile birlestirerek bir cözüm verebilirmisiniz...
Kosul 1 gerceklesirse :
Asagidaki emir
decimal sat;
sat = Math.Round(ohlcData1 * 1.01m, 3);
SendMarketOrder(Symbol1, OrderQuantity1, OrderSide.Buy, includeAfterSession:false);
SendBinanceTakeProfitMarketOrder(Symbol1, OrderQuantity1, OrderSide.Sell, sat);
Kosul 2 Gerceklesirse
decimal sat2;
sat2 = Math.Round(ohlcData1 * 1.019m, 3);
SendMarketOrder(Symbol1, OrderQuantity1, OrderSide.Buy, includeAfterSession:false);
SendBinanceTakeProfitMarketOrder(Symbol1, OrderQuantity1, OrderSide.Sell, sat2);