0 beğenilme 0 beğenilmeme
589 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 | 589 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,478 soru
8,426 cevap
4,753 yorum
18,741 kullanıcı