Matriks Destek ve Yardım Platformu

Matriks Ürünleri ile ilgili tüm sorularınız için bizlere buradan ulaşabilirsiniz. Daha önce sorulan soruları ve verilen cevapları ilgili sekmelerden ve arama üzerinden inceleyebilirsiniz. Sağ taraftaki kategoriler üzerinden İlgilendiğiniz özelliklerle ilgili soruları filtreleyebilirsiniz. Soru ve cevapları sosyal medyada paylaşabilirsiniz. Sorduğunuz ve cevapladığınız soruların ve yorumlarınızın aldığı oylar üzerinden puan kazanırsınız. Puan sistemine bağlı kampanyamızla ücretsiz kullanım avantajlarından faydalanabilirsiniz.

0

TimeInForce İle Belli Bir Süre Geçerli Emir Vermek Mümkün Mü?

Soruldu
Görüntülenme
1.063 görüntülenme
Durum
Çözüldü
IQ dokümanında ve intellisense içinde bulamadım başlıkta belirttiğimi. Alım emrini verdikten 2 saat sonra emir gerçekleşmezse iptal edilmesini istiyorum bunu kodlamak mümkün mü? Mümkünse nasıl? Şimdiden teşekkürler.
Paylaş

1 Cevap

3

Kabul edilen cevap

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)

BağlantıBayrakladüzenlendi · newbieMatt RicksMatriks Destek8.033

Cevabınız

Cevap yazmak için giriş yapın.Giriş yapKayıt ol