0 beğenilme 0 beğenilmeme
254 kez görüntülendi
Binance algoritmik trade için birkaç bilgiye ihtiyacım var.

Binance hesabında ortalama maliyet portföyde ya da algo içinde görüntüleyemiyorum.

GetRealPositinons() ile SettlementPx , AvgCost gibi birçok komut 0 döndürüyor.

Benzer şekilde portföy işlemleri penceresinde de ortalama maliyetleri göremiyorum.

Algoritma içinde buna bir çözüm var mıdır?
Algoritmik Trading kategorisinde (59 puan) tarafından | 254 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme
private List<Tuple<string, decimal, decimal>> AlımEmri = new List<Tuple<string, decimal, decimal>>();

public override void OnOrderUpdate(IOrder order)
        {
            var Fiyat = order.Price != 0 ? order.Price : (order.LastPx != 0 ? order.LastPx : (order.FilledQty != 0 ? order.FilledAmount / order.FilledQty : 0));
            var adet = (decimal) order.OrderQty;

            if (order.OrdStatus.Obj == OrdStatus.Filled && order.Side.Obj == Side.Buy)
            {

AlımEmri.Add(Tuple.Create(order.Symbol, Fiyat, adet));

Listede bulunan item2 * item3 / item3 = Ortalama fiyat. Stratejinin her yerinde kullanabilirsiniz.Saliselik olarak güncelleyeceği için en hızlısı ve güvenlisi bu şekilde.Portföy okumak bistte yavaş kalıyor,kriptoda yanlış sonuçlara neden olabilir.Emir alındığı anda alındığı fiyattan kaydetmek ve strateji içinde bunu işlemek işinizi görecektir.

satış gerçekleştikten sonra listeden o item'i silmeyi unutmayın.
(402 puan) tarafından
0 0
Çok güzel bir yaklaşım olmuş teşekkürler,

Yalnız diyelim 100 adet işlem 5 / 25 / 70 parçalı gerçekleşti alış esnasında, ve bu durumda AlımEmri listesinde 3 satır oluşacak, (piyasa emri verdiğimde farklı fiyatlardan gerçekleşebilir her işlem)

ve diyelim satışta 5 parçalı gerçekleşti.

 satış gerçekleştikten sonra listeden o item'i silmeyi unutmayın. > Bu yorumunuzu biraz daha açabilir misiniz?

Silme için de kolay bir eşleme / yaklaşımınız var mıdır?
0 0
//            // Hedef Satış fiyatına göre
            //            if (AlımEmri.Count > 0)
            //            {
            //                List<Tuple<string, decimal, decimal, decimal>> itemsToRemove = new List<Tuple<string, decimal, decimal, decimal>>();

            //                foreach (var item in AlımEmri)
            //                {
            //                    if (fiyat >= item.Item4)
            //                    {
            //                        var kar = (fiyat - item.Item2) * item.Item3 * KaldiracOrani;

            //                        SendMarketOrder(Symbol, item.Item3, OrderSide.Sell, ChartIcon.Down);
            //                        Debug($"Pozisyon Kapat. Maliyet: {item.Item2} - Hedef Fiyat: {item.Item4} Güncel Fiyat : {fiyat} - Kar: {kar}");

            //                        itemsToRemove.Add(item);
            //                    }
            //                }

            //                foreach (var itemToRemove in itemsToRemove)
            //                {
            //                    AlımEmri.Remove(itemToRemove);
            //                    Debug($"Öğe Silindi. Maliyet: {itemToRemove.Item2} - Hedef Fiyat: {itemToRemove.Item4}");
            //                }
            //            }

listedeki item4 hedef satış fiyatım bu bloğu ontimer içinde veya Ondataupdate içinde stratejinin çalıştığı periyot'u indikatör'e sabitleyip gönderdiğim bloğu 1 dakikalıkta takip ettirebilirsiniz.

Bende market emir gönderiyorum fakat kuruşu kuruşuna bir hesapla ilgilenmediğim ve kaymanın her piyasada olabileceğini göze aldığım için satış emri yolladığım anda listeyiden siliyorum.
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.



8,087 soru
8,058 cevap
4,580 yorum
14,727 kullanıcı