Merhaba, evet kurum ve borsa kabul ettigi surece mumkun, yalniz saatlik degil gunluk yapilabiliyor bildigim kadariyla.
Saatlik iptal islemini kodlayarak yapabilirsiniz.
Bunu 2 saat icinde iptal edilmesini istediginiz emrin OrderID'sini tutarak yapabilrsiniz.
Emrin OrderID'sini almak icin ornek:
OrderID = SendLimitOrder(Symbol, Quantity, OrderSide.Buy, Price);
id'sini aldiginiz emri iptal etmek icin:
SendCancelOrder(OrderID);
Geriye sadece sure tutmak kaliyor, bunu timespan (C# timespan diye search ederseniz web'de genis bilgi bulunmakta) ile de yapabilirsiniz asagida yazdigim sekilde de:
TimeStamp = DateTime.Now.TimeOfDay.Hours * 3600 + DateTime.Now.TimeOfDay.Minutes * 60 + DateTime.Now.TimeOfDay.Seconds;
Bu satiri emri gonderdiginiz satirin hemen altina yazin, emrin gonderildigi zamani tutacaktir.
Daha sonra 2 saat gecti mi diye kontrol edip, gectiyse iptal etmek icin(gun degisiminde calismayacaktir):
if ((DateTime.Now.TimeOfDay.Hours * 3600 + DateTime.Now.TimeOfDay.Minutes * 60 + DateTime.Now.TimeOfDay.Seconds) >= (TimeStamp + 2*60*60))
SendCancelOrder(OrderID);
Emir gerceklestiyse zaten bu OrderID'yi bulamayacagindan iptal edemeyecektir. (kesin emin olmak isterim derseniz o zaman emrin gerceklesip gerceklesmedigini de OnOrderUpdate fonksiyonu icerisinden takip etmeniz gerekir)