MatriksIQ Destek
Matriks Destek
Matriks Web Destek
Matriks Mobile Destek
0 beğenilme 0 beğenilmeme
242 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 (177 puan) tarafından | 242 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ş
4,536 soru
4,524 cevap
3,050 yorum
3,370 kullanıcı