Explorer sihirbazında oluştruduğum explorerda son bar için değil genel olarak hareketli ortalamı kıran tüm enstrumanlar çıkıyor yada son bar için istediğimde ise henüz kapanmamış bar için bunu kesenleri oluşturabiliyoruz. Ama benim istediğim 100 günlük ortalama da son barda kapanış yapmış ve henüz yeni barı yeni açmış olanları bulmak istiyorum.yani açık olan bardan bir önceki barın kapanış yapanları bulmak istyiorum.
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 SMAEXPLORER : 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(100)]
public int SmaPeriod1;
SMA sma;
public override void OnInit()
{
sma = SMAIndicator(Symbol, SymbolPeriod, OHLCType.Close, SmaPeriod1);
AddColumns(0);
}
/// <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 bool OnExplorer(List<BarDataEventArgs> bardatas)
{
var barData1 = GetBarData(Symbol, SymbolPeriod);
var bardata = bardatas.FirstOrDefault() ? .BarData;
if (CrossBelow(sma, barData1, OHLCType.Close, 0))
{
return true;
}
return false;
}
}
}