MatriksIQ Destek
Matriks Destek
Matriks Web Destek
Matriks Mobile Destek
0 beğenilme 0 beğenilmeme
62 kez görüntülendi

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)
                                               {

                                               }
                               }
                }
}
imageimage

 

Algoritmik Trading kategorisinde (77 puan) tarafından | 62 kez görüntülendi

Bu soruya cevap vermek için lütfen giriş yapınız veya kayıt olunuz.

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.



2,591 soru
2,485 cevap
2,079 yorum
1,814 kullanıcı