MatriksIQ Destek
Matriks Destek
Matriks Web Destek
Matriks Mobile Destek
0 beğenilme 0 beğenilmeme
228 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 (173 puan) tarafından | 228 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,248 soru
4,218 cevap
2,915 yorum
3,152 kullanıcı