0 beğenilme 0 beğenilmeme
355 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 (175 puan) tarafından | 355 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.
	}
}

 

(545 puan) tarafından
tarafından seçilmiş
6,343 soru
6,371 cevap
3,950 yorum
5,094 kullanıcı