Matriks Destek ve Yardım Platformu

Matriks Ürünleri ile ilgili tüm sorularınız için bizlere buradan ulaşabilirsiniz. Daha önce sorulan soruları ve verilen cevapları ilgili sekmelerden ve arama üzerinden inceleyebilirsiniz. Sağ taraftaki kategoriler üzerinden İlgilendiğiniz özelliklerle ilgili soruları filtreleyebilirsiniz. Soru ve cevapları sosyal medyada paylaşabilirsiniz. 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.

0

Bir veya birden çok limit emirlerin( al/sat) kesin gerçekleştiğinin takibi hk.

Soruldu
Görüntülenme
859 görüntülenme
Durum
Cevaplandı

Stratejiden verdiğim limit emirlerin ayrı ayrı gerçekleşmelerini takip etmek istiyorum. al sat tüm emirlerin.

forumu kurcalayarak aşağıdaki gibi bir yapı kurdum ancak çalışmıyor.

 

List<string> orderIDList = new List<string>();

public string orderID_1_al;
public string orderID_2_al;

public override void OnDataUpdate(BarDataEventArgs barData)
		{

if( koşul )
{

orderID_1_al = SendLimitOrder(Symbol, BuyOrderQuantity , OrderSide.Buy, Fiyat);

				orderIDList.Add(orderID_1_al);
}

if( koşul )
{

orderID_2_al = SendLimitOrder(Symbol, BuyOrderQuantity , OrderSide.Buy, Fiyat);

				orderIDList.Add(orderID_2_al);
}

}

gibi limit emirleri ilettik.

aşağıdaki gibi bir takip deniyorum ancak olmuyor.

Buaradaki amacım;

örn. orderID_1_al gerçekleştiğinde hem onun içeriğini sıfırlamak ki algoritmadan duruma göre içi boşsa tekrar emir iletebilmesi durumu olabilsin, içi doluysa limit emrin gerçekleşmediğini anlayarak tekrar emir iletimi yaşanmasın. hemde emir kesin gerçekleştiğinde algoritmaya yaptırmak istediğim bazı durumlar mevcut.

public string bos;

public override void OnOrderUpdate(IOrder order) 
		{

if (order.OrdStatus.Obj == OrdStatus.Filled && order.CliOrdID == orderID_1_al)
			{

				orderID_1_al = bos;
				orderIDList.Add(orderID_1_al);

				Debug("orderID_1_al = " + orderID_1_al);

				** başka koşul işlemleri vs vs vs


			}
if (order.OrdStatus.Obj == OrdStatus.Filled && order.CliOrdID == orderID_2_al)
			{

				orderID_2_al = bos;
				orderIDList.Add(orderID_2_al);

				Debug("orderID_2_al = " + orderID_1_al);

				** başka koşul işlemleri vs vs vs

			}
}

hem alış hem satış vs tüm limit emirlerin kesin gerçekleştiğini nasıl algoritmada görebilirim ???

Paylaş

1 Cevap

0

Merhaba,

Emirlerde bir değişim olduğunda ( iletilme, gerçekleşme, red, iptal .... ) OnOrderUpdate() metodu tetiklenir.

Bu metotta emir takibi yapıp istenen durum gerçekleştiğinde istenen aksiyon alınabilir.

Aşağıdaki gibi basit bir yapı kurulabilir .

public override void OnDataUpdate(BarDataEventArgs barData)
{
	if(orderID_1_al!=string.Empty){
		orderID_1_al=SendMarketOrder(Symbol1,1,OrderSide.Buy);
		Debug("Alış emri gönderildi -> ID: "+orderID_1_al);
	}
}
		
string orderID_1_al=string.Empty;

public override void OnOrderUpdate(IOrder order)
{
	if (order.OrdStatus.Obj == OrdStatus.Filled && order.CliOrdID == orderID_1_al)
	{
		orderID_1_al = string.Empty;
		Debug("alış emri gerçekleşti -> ID: " + orderID_1_al);
	}			
}

Bunun dışında Orders modelini de inceleyebilirsiniz.

Bu model içerisinde ilgili stratejide gönderilen tüm emirler son durumlarıyla tutulur ID'si bilinen bir emrin takibi bu model üzerinden de yapılabilir. Linkteki konuyu inceleyebilirsiniz.

https://destek.matriksdata.com/?qa=16745/order-id-ile-statu-kontrolu&show=16745#q16745

Detaylı bilgi için aşağıdaki dokumanın 24. sayfasını inceleyiniz.

https://www.matriksdata.com/website/uploads/matriks-iq-algo-teknik-dokuman.pdf

Not: Binance dışındaki kurumlarda portföy verileri 1DK bir güncellendiğinden gerçekleşen emirler anca sonraki güncellemede yakalanır. örnek vermek gerekirse portföy güncellendikten 10 saniye sonra bir limit emir verdiniz ve emir 5 saniye sonra gerçekleşmiş olsun bunun bilgisi bir sonraki güncellemede yani 45 saniye sonra yakalanacaktır.

Unblocked Games offering a wide range of experiences: action, puzzle, platform, racing, clicker mechanics, strategy, sports, even horror.
https://unblocked1games.github.io
BağlantıBayraklaKripexMatriks Destek16.499

Yorumlar (1)

  • ▲0

    teşekkürler yardımlarınız için gösterdiğiniz şekilde çalıştırdım. Dediğiniz gibi al ve sat emirleri sadece dk başlarında oluşuyor.

    Ek olarak konuya bakacaklar için emrin gerçekleşme fiyatınıda aşağıdaki kodla alabilirsiniz.

    public override void OnOrderUpdate(IOrder order)
    {
    	if (order.OrdStatus.Obj == OrdStatus.Filled && order.CliOrdID == orderID_1_al)
    	{
    		orderID_1_al = string.Empty;
    		Debug("alış emri gerçekleşti -> ID: " + orderID_1_al); // boş olacak zaten
    
            var alim_Fiyati = order.LastPx; // emrin gerçekleştiği fiyat
            Debug("Alım Gerçekleşme Fiyatı = " + alim_Fiyati);
    	}			
    }

     

Cevabınız

Cevap yazmak için giriş yapın.Giriş yapKayıt ol