Merhaba,
BuyLimit işlemlerinde Partial fill'ler algo robotlarının işlem yapması için ciddi sorun oluşturuyor. Zira siz 100 tane al diyorsunuz ve bundan sonraki işlemlerinizde (örneğin sat) bu miktar üzerinden olacak ama kısmi doldurma gerçekleşirse sistem hata veriyor.
İki şey sormak istiyorum birincisi. AlgoTrade eğitim PDF'inde SendLimitOrder fonksiyonu aşağıdaki şekilde geçiyor;
SendLimitOrder(Symbol, 100, (OrderSide.Buy), 11.88m, TimeInForce.GoodTillCancel, ChartIcon.Buy)
Ancak Gerçekte TimeInForce.GoodTillCancel yok. Bu çıkartıldı mı (ya da overloaded başka versiyonu var mı)?
İkincisi ise eğer halen kullanabiliyorsak hangisini seçmeliyiz FillorKill mi yoksa GoodTillCancel mı?
Zira FillorKill emri doldurursa sistem güzel ve sorunsuz çalışır. Ama dolduramazsa hiç bir şey olmaz.
GoodTillCancel ise en azınan kısmi alış sağlar ve hiç yoktan iyidir sonucu verir lakin şöyle bir sorun var eğer bu seçilirse bu emir doluncaya kadar bekleyeceğinden bu sırada satmayı gerektirecek bir fiyat değişimi olursa bu emir hali hazırda geçerli olduğundan sat emri devreye girmeyebilir.
( SendOrderSequential(true) kullanmak istediğim için GoodTillCancel beni endişelendiriyor )
Kısacası aşağıdaki senaryo için nasıl bir yol takip etmeliyim?
100 tane hisse al. Ama alamadın 50 oldu sorun değil aynı fiyattan başka alabiliyorsan devam et. Diyelim 10 tane daha aldı ve 60 oldu ama bu sırada fiyat değişti ve sat durumu oluştu bu durumda al emrini iptal et ve 60 taneyi satarak al sat döngüsünü bitir.