Merhaba,
Aşağıdaki şekilde test amaçlı yazdığımı bir kod mevcut. Backtest optimizasyonunda indikatörün farklı zaman dilimlerinden değerlerini kullanmak istiyorum yalnız sadece Gün periyodunda backtest gerçekleşiyor. Diğer zaman dilimlerinin herhangi birine sıra geldiğinde optimizasyon sonlanıyor. Yorumlarınızı rica 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 Matriks.Data.Tick;
using Matriks.Enumeration;
using Matriks.IntermediaryInstitutionAnalysis.Enums;
using Newtonsoft.Json;
namespace Matriks.Lean.Algotrader
{
public class Strateji1 : MatriksAlgo
{
[SymbolParameter("GARAN")]
public string Symbol;
[Parameter(SymbolPeriod.Day)]
public SymbolPeriod SymbolPeriod;
[Parameter(1)]
public decimal BuyOrderQuantity;
[Parameter(SymbolPeriod.Day)]
public SymbolPeriod ATTimePeriod;
[Parameter(14)]
public int ATPeriod;
[Parameter(1)]
public decimal ATCoeff;
public bool IsATActive
{
get; set;
}
public override void OnInit()
{
alphaTrend = AlphaTrendIndicator(Symbol, ATTimePeriod, OHLCType.Close, ATPeriod, ATCoeff, Momentum.MFI);
IsATActive = false;
AddSymbol(Symbol, SymbolPeriod);
WorkWithPermanentSignal(true);
}
public override void OnDataUpdate(BarDataEventArgs barData)
{
IsATActive = CrossAbove(alphaTrend, alphaTrend, 1, 0) ? true: IsATActive;
IsATActive = CrossBelow(alphaTrend, alphaTrend, 1, 0) ? false: IsATActive;
if(IsATActive)
{
//Code...
}
else
{
//Code...
}
}
}
}