0 beğenilme 0 beğenilmeme
207 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 | 207 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,645 puan) tarafından
Hoş geldiniz, Matriks Destek Platformu sizlere sorularınızın hızlıca cevaplanması için bir ortam sağlar. Sorduğunuz ve cevapladığınız soruların ve yorumlarınızın aldığı oylar üzerinden puan kazanırsınız. Puan sistemine bağlı kampanyamızla ücretsiz kullanım avantajlarından faydalanabilirsiniz.



9,845 soru
9,814 cevap
5,296 yorum
57,341 kullanıcı