Merhaba,

Manuel olarak çizdiğim yükselen ve alçalan trendleri grafikten Algo Kodu Kopyala ile tıklayarak Algo code ortamına alıyorum. Bu trend leri kullanarak al-sat yapmak istiyorum. Ancak bot olarak çalıştırdığım

drawthisDirenc.CurrentValue

değerlerinde hiçbirşey gelmiyor. Bunu nasıl sağlayabiliriz hocam. Önemli olduğu için sizden yardım istiyorum.

Kodu aşağıdaki şekilde paylaştım

Teşekkür ederim.

 

using System;
using System.Collections.Generic;
using System.Linq;
using Matriks.Data.Symbol;
using Matriks.Engines;
using Matriks.Indicators;
using Matriks.Symbols;
using Matriks.AlgoTrader;
using Matriks.Trader.Core;
using Matriks.Trader.Core.Fields;
using Matriks.Trader.Core.TraderModels;
using Matriks.Lean.Algotrader.AlgoBase;
using Matriks.Lean.Algotrader.Models;
using Matriks.Lean.Algotrader.Trading;
using System.Windows.Media;
//

namespace Matriks.Lean.Algotrader
{
                public class TrendTakip_dene : MatriksAlgo
                {
                               // Strateji çalıştırılırken kullanacağımız parametreler. Eğer sembolle ilgili bir parametre ise,
                               // "SymbolParameter" ile, değilse "Parameter" ile tanımlama yaparız. Parantez içindeki değerler default değerleridir.

                               [SymbolParameter("ENJ_USDT_BIN")]
                               public string Symbol;

                               [Parameter(620)]
                               public int Quantity;

                               [Parameter(SymbolPeriod.Min)]
                               public SymbolPeriod SymbolPeriod;

                               ITrend drawthisDirenc; //Cizdirecegimiz trend objesini burada tanimliyoruz
                               ITrend drawthisDestek; //Cizdirecegimiz trend objesini burada tanimliyoruz


                               public override void OnInit()
                               {
                                               AddSymbol(Symbol, SymbolPeriod);

                                               //Cizilebilecek/grafikten kopyalanmis farkli trend ornekleri
                                               //drawthis = MyTrend(Symbol, SymbolPeriod, new DateTime(2020, 4, 21, 10, 0, 0), 6733.27333184572m, new DateTime(2020, 4, 22, 15, 0, 0), 6897.78552467496m);
                                               //drawthis = MyTrend(Symbol, SymbolPeriod, new DateTime(2020, 4, 30, 3, 0, 0), new DateTime(2020, 5, 5, 14, 0, 0), TrendType.Decreasing);

                                               //drawthisDirenc = MyTrend(Symbol, SymbolPeriod, new DateTime(2021, 4, 9, 12, 0, 0), 3.97464590588235m, new DateTime(2021, 6, 6, 12, 0, 0), 1.60053199965177m);
                                               drawthisDirenc = MyTrend(Symbol, SymbolPeriod, new DateTime(2021, 4, 8, 12, 0, 0), 3.48572398074866m, new DateTime(2021, 6, 26, 12, 0, 0), 0.9427m, true);


                                               DrawTrend(drawthisDirenc, Colors.Green);        //Olusturdugumuz trend objesini cizdirmek icin DrawTrend fonksiyonunu kullaniyoruz, bu satirsa renklendirme ornegi de goruluyor
                                               //DrawTrend(drawthis, Color.FromRgb(255, 0, 255)); //Renk atamasini RGB olarak belirlemek istersek bu satiri acarak ederek deneyebiliriz


                                               drawthisDestek = MyTrend(Symbol, SymbolPeriod, new DateTime(2021, 5, 19, 16, 0, 0), 0.887453178609626m, new DateTime(2021, 6, 6, 12, 0, 0), 1.4795859848622m, true);
                                               DrawTrend(drawthisDestek, Colors.Red);            //Olusturdugumuz trend objesini cizdirmek icin DrawTrend fonksiyonunu kullaniyoruz, bu satirsa renklendirme ornegi de goruluyor


                                               SendOrderSequential(true);
                                               WorkWithPermanentSignal(true);
                               }

                               /// <summary>
                               /// Init islemleri tamamlaninca, bardatalar kullanmaya hazir hale gelince bu fonksiyon tetiklenir. Data uzerinde bir defa yapilacak islemler icin kullanilir
                               /// </summary>
                               public override void OnInitComplated()
                               {

                               }

                               /// <summary>
                               /// Eklenen sembollerin bardata'ları ve indikatorler güncellendikçe bu fonksiyon tetiklenir. 
                               /// </summary>
                               /// <param name="barData">Bardata ve hesaplanan gerçekleşen işleme ait detaylar</param>
                               public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues)
                               {
                                               var barDataModel = GetBarData();

                                               var index = barDataCurrentValues.LastUpdate.BarDataIndex;

                                               var CurrentClose = barDataModel.Close[index];
                                               var prevClose = barDataModel.Close[index -1];

                                               var CurrentTrend = drawthisDirenc.CurrentValue;
                                               var prevTrend = drawthisDirenc.ValueAtRef(1);

                                               Debug("CurrentClose= " + CurrentClose);
                                               Debug("prevClose= " + prevClose);
                                               Debug("CurrentTrend= " + CurrentTrend);
                                               Debug("prevTrend= " + prevTrend);

                                               if (CurrentClose >= CurrentTrend)
                                               {
                                                               SendMarketOrder(Symbol, Quantity, OrderSide.Buy);
                                                               Debug("Alış emri gönderildi= " + CurrentClose + "; " + CurrentTrend);
                                               }

                                               /*
                                               if (prevClose<prevTrend && CurrentClose > CurrentTrend)
                                               {
                                                               SendMarketOrder(Symbol, Quantity, OrderSide.Buy);
                                                               Debug("Alış emri gönderildi= " + CurrentClose);
                                               }

                                               if (prevClose>prevTrend && CurrentClose < CurrentTrend)
                                               {
                                                               SendMarketOrder(Symbol, Quantity, OrderSide.Sell);
                                                               Debug("Satis emri gonderildi= " + CurrentClose);
                                               }
                                               */
                               }

                               /// <summary>
                               /// Gönderilen emirlerin son durumu değiştikçe bu fonksiyon tetiklenir.
                               /// </summary>
                               /// <param name="barData">Emrin son durumu</param>
                               public override void OnOrderUpdate(IOrder order)
                               {
                                               if (order.OrdStatus.Obj == OrdStatus.Filled)
                                               {

                                               }
                               }
                }
}