0 beğenilme 0 beğenilmeme
42 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.
önce Algoritmik Trading kategorisinde (14 puan) tarafından | 42 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.

önce (5,235 puan) tarafından
9,543 soru
9,500 cevap
5,139 yorum
41,619 kullanıcı