Merhaba,
Daha önce buradan aldığım aşağıdaki Trend kesişim stratejisinde, grafikten kopyaladığım trendi "MyTrend(Symbol, SymbolPeriod, new DateTime(2021, 2, 24, 13, 45, 0), 65.7366871165644m, new DateTime(2021, 3, 1, 10, 0, 0), 56.8471165644172m)" şeklinde parametre olarak girmek istiyorum. Hata veriyor. Yardımcı olabilir misiniz?
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 TrendKır : 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("GARAN")]
public string Symbol;
[Parameter(1)]
public int Quantity;
[Parameter(SymbolPeriod.Min5)]
public SymbolPeriod SymbolPeriod;
[Parameter()]
public ITrend trend;
ITrend drawthis; //Cizdirecegimiz trend objesini burada tanimliyoruz
public override void OnInit()
{
AddSymbol(Symbol, SymbolPeriod);
drawthis = trend;
// drawthis = MyTrend(Symbol, SymbolPeriod, new DateTime(2021, 2, 3, 11, 30, 0), 9.83834273412271m, new DateTime(2021, 2, 4, 12, 35, 0), 10.0987517761033m); //MyTrend fonksiyonunu kullanarak trend cizdirip bunu drawthis objesine atiyoruz
DrawTrend(drawthis, Colors.Gold); //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
SendOrderSequential(true);
WorkWithPermanentSignal(true);
}
///
/// Init islemleri tamamlaninca, bardatalar kullanmaya hazir hale gelince bu fonksiyon tetiklenir. Data uzerinde bir defa yapilacak islemler icin kullanilir
///
public override void OnInitComplated()
{
}
///
/// Eklenen sembollerin bardata'ları ve indikatorler güncellendikçe bu fonksiyon tetiklenir.
///
/// Bardata ve hesaplanan gerçekleşen işleme ait detaylar
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 = drawthis.CurrentValue;
var prevTrend = drawthis.ValueAtRef(1);
if (prevClose CurrentTrend)
{
SendMarketOrder(Symbol, Quantity, OrderSide.Buy);
Debug("Alış emri gönderildi");
}
if (prevClose>prevTrend && CurrentClose < CurrentTrend)
{
SendMarketOrder(Symbol, Quantity, OrderSide.Sell);
Debug("Satis emri gonderildi");
}
}
///
/// Gönderilen emirlerin son durumu değiştikçe bu fonksiyon tetiklenir.
///
/// Emrin son durumu
public override void OnOrderUpdate(IOrder order)
{
if (order.OrdStatus.Obj == OrdStatus.Filled)
{
}
}
}
}