Explorer sihirbazında her periyot için indikatörleri ekleyip koşul oluşturduktan sonra kod içerisinde küçük bir dokunuşla periyotlardan bir tanesini Min240 eklenmesi yeterli olur. Aşağıdaki örneği inceleyip kullanabilirsiniz.
using System;
using System.Collections.Generic;
using System.Linq;
using Matriks.Data.Symbol;
using Matriks.Engines;
using Matriks.Indicators;
using Matriks.Symbols;
using Matriks.Trader.Core;
using Matriks.Trader.Core.Fields;
using Matriks.Lean.Algotrader.AlgoBase;
using Matriks.Lean.Algotrader.Models;
using Matriks.Lean.Algotrader.Trading;
using Matriks.AI;
using Matriks.AI.AiParameters;
using Matriks.AI.Data;
using Matriks.Trader.Core.TraderModels;
namespace Matriks.Lean.Algotrader
{
public class TestExplorer1 : Explorer
{
// 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.
[Parameter(20)]
public int BollingerPeriod1;
[Parameter(2)]
public decimal BollingerStandardDeviation1;
[Parameter(MovMethod.S)]
public MovMethod BollingerMovMethod1;
[Parameter(14)]
public int StochasticrsiRsiPeriod1;
[Parameter(14)]
public int StochasticrsiStochasticPeriod1;
[Parameter(3)]
public int StochasticrsiKPeriod1;
[Parameter(3)]
public int StochasticrsiDPeriod1;
[Parameter(MovMethod.E)]
public MovMethod StochasticrsiSmoothMethod1;
BOLLINGER bollinger,bollinger1;
StochasticRSI stochasticRSI,stochasticRSI1;
public override void OnInit()
{
bollinger = BollingerIndicator(Symbol, SymbolPeriod, OHLCType.Close, BollingerPeriod1, BollingerStandardDeviation1, BollingerMovMethod1);
stochasticRSI = StochasticRSIIndicator(Symbol, SymbolPeriod, OHLCType.Close, StochasticrsiRsiPeriod1, StochasticrsiStochasticPeriod1, StochasticrsiKPeriod1, StochasticrsiDPeriod1, StochasticrsiSmoothMethod1);
bollinger1 = BollingerIndicator(Symbol, SymbolPeriod.Min240, OHLCType.Close, BollingerPeriod1, BollingerStandardDeviation1, BollingerMovMethod1);
stochasticRSI1 = StochasticRSIIndicator(Symbol, SymbolPeriod.Min240, OHLCType.Close, StochasticrsiRsiPeriod1, StochasticrsiStochasticPeriod1, StochasticrsiKPeriod1, StochasticrsiDPeriod1, StochasticrsiSmoothMethod1);
AddColumns(5);
SetColumnText(0, "kapanış");
SetColumnText(1, "Bol Alt band");
SetColumnText(2, "Bol Alt band min240");
SetColumnText(3, "stochasticRSIK");
SetColumnText(4, "stochasticRSIK min240");
}
public override bool OnExplorer(List<BarDataEventArgs> bardatas)
{
var barData1 = GetBarData(Symbol, SymbolPeriod);
var ohlcData1 = GetSelectedValueFromBarData(barData1, OHLCType.Close);
var bardata = bardatas.FirstOrDefault() ? .BarData;
SetColumn(0, bardata.Close);
SetColumn(1, bollinger.Value[2][bollinger.CurrentIndex]);
SetColumn(2, bollinger1.Value[2][bollinger1.CurrentIndex]);
SetColumn(3, stochasticRSI.Value[0][stochasticRSI.CurrentIndex]);
SetColumn(4, stochasticRSI1.Value[0][stochasticRSI1.CurrentIndex]);
if (bollinger.Value[2][bollinger.CurrentIndex] > ohlcData1 &&
bollinger1.Value[2][bollinger1.CurrentIndex] > ohlcData1 &&
stochasticRSI.Value[0][stochasticRSI.CurrentIndex] < 10m &&
stochasticRSI1.Value[0][stochasticRSI1.CurrentIndex] < 10m)
{
return true;
}
return false;
}
}
}