0 beğenilme 0 beğenilmeme
126 kez görüntülendi
merhaba;

şimdiye kadar hep  SendMarketOrder kullandım ve hemen alt satırda pozisyon adında atadığım değişkenin değerini değiştirdim. çünkü market orderin gerçekleşeceğini biliyorum.

örnek kalıp:

SendMarketOrder(Symbol, OrderQuantity, OrderSide.Buy);

position = 1;

şimdi strateji içinde LimitOrder kullanmak istiyorum. ama her zaman anlık fiyat ile emir değeri kesişmiyor ve ben emir kesin gerçekleşti diye düşünerek pozisyon değerini peşin güncellersem problem oluyor. pozisyonu güncellemek için emirin gerçekleşip gerçekleşmediğini nasıl kontrol edebilirim.
Algoritmik Trading kategorisinde (14 puan) tarafından | 126 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Merhabalar,
Gönderilen emirler OnOrderUpdate fonksiyonunu tetikler. Emirlerin son durumunu, gerçekleşme/iptal edilme/düzenlenme gibi senaryolarını takip edebilirsiniz.

OnOrderUpdate hakkında detaylı bilgi,
https://iqyardim.matriksdata.com/docs/matriksiq-kullanim-kilavuzu/sinif-arabirim/ordstatus/

Aşağıda yer alan örnek çıktıyı inceleyebilirsiniz.

string orderID;
public override void OnDataUpdate(BarDataEventArgs barData)
{
	if (LastOrderSide.Obj != Side.Buy)
	{
		orderID = SendMarketOrder(Symbol1, 1, OrderSide.Buy);
		Debug("ID" + orderID);
	}
}

public override void OnOrderUpdate(IOrder order)
{
	if (order.Side.Obj == Side.Buy && order.OrdStatus.Obj == OrdStatus.Filled)
	{
		if (orderID == order.CliOrdID)
		{
			Debug($"Alış emri gönderildi: => {orderID} {order.CliOrdID}");
		}
	}
}

İyi çalışmalar dileriz.

(5,515 puan) tarafından
9,700 soru
9,659 cevap
5,195 yorum
48,265 kullanıcı