0 beğenilme 0 beğenilmeme
638 kez görüntülendi
Merhaba

su soruda (https://destek.matriksdata.com/?qa=1361/timeinforce-ile-belli-bir-s%C3%BCre-ge%C3%A7erli-emir-vermek-m%C3%BCmk%C3%BCn-m%C3%BC&show=1371#a1371) aslinda cozum belirtilmis ancak gunluk yapilabildigi yaziyor. 5 dakika sonra emir gerceklesmezse emri iptal etmem mumkun mu?

Ayrica SendLimitOrderGoodTillDate isimli bir fonksiyon gordum denerken. Bunu SendLimitOrderGoodTillDate(symbol, quantity, OrderSide.Buy, price, dt5MinLater) olarak denersem ayni amaca ulasmis olur muyum?

Tesekkurler.
Algoritmik Trading kategorisinde (185 puan) tarafından | 638 kez görüntülendi

1 cevap

2 beğenilme 0 beğenilmeme
En İyi Cevap

Alış emri gönderildiğinde o andaki timestamp alınıp üzerine 5 dakika eklenip timer veya dataupdate ile tetiklenen bir fonksiyon içinde koşul oluşturmanız gerekiyor.

Sınıf içinde bir değişken tanımlamalısınız.

DateTime iptalZamani;

Alış emri gönderildiğinde bu değişkene emirin gönderildiği zamana 5 dakika ekleyerek değer atamalısınız.

SendMarketOrder(Symbol, 1, OrderSide.Buy);
iptalZamani = DateTime.Now.AddMinutes(5);

Sürekli tetiklenen bir fonksiyon içinde:

public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues) // veya timer içinde
{
    if (DateTime.Now >= iptalZamani) {
		// Emir iptal
		SendCancelOrder(clOrdId); // clOrdId yi iletilen emirden alabilirsiniz.
	}
}

 

(725 puan) tarafından
tarafından seçilmiş
8,635 soru
8,589 cevap
4,821 yorum
19,782 kullanıcı