Kodum aşağıda. Çalıştırdığım zaman pmax yukarı trendde olanları listeliyor. Belirlediğim cci koşullarını sağlasa da sağlamasa da listede gözüküyor. Amacım hem pmax yukarı trendde hem de iftcciv2 alt çizgi ve üst çizgi aralığında bulunan pariteleri bulan explorer yazmak. Yardımcı olabilecek var mı acaba?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Matriks.Data.Symbol;
using Matriks.Engines;
using Matriks.Lean.Algotrader.AlgoBase;
using Matriks.Lean.Algotrader.Models;
using Matriks.Indicators;
namespace Matriks.Lean.Algotrader
{
public class PMAX_IFTonCCI : Explorer
{
[Parameter(5)]
public int ATRPeriod;
[Parameter(15)]
public int MovPeriod;
[Parameter(3)]
public decimal Coefficient;
[Parameter(MovMethod.VAR)]
public MovMethod MovMethod;
[Parameter(100)]
public int İftcciv2UpLevel1;
[Parameter(-100)]
public int İftcciv2DownLevel1;
[Parameter(21)]
public int İftcciv2CciPeriod1;
[Parameter(9)]
public int İftcciv2MovPeriod1;
PMaxIndicator pmaxIndicator;
MatriksIndicator IFTCCIV2;
public override void OnInit()
{
pmaxIndicator = PMaxIndicators(Symbol, SymbolPeriod, ATRPeriod, MovPeriod, Coefficient, MovMethod);
AddColumns(2);
SetColumnText(0, "PMAX_ST");
SetColumnText(1, "PMAX_KLine");
IFTCCIV2 = new IFTCCIV2();
IFTCCIV2.SetIndicatorParameters("UpLevel", İftcciv2UpLevel1);
IFTCCIV2.SetIndicatorParameters("DownLevel", İftcciv2DownLevel1);
IFTCCIV2.SetIndicatorParameters("CciPeriod", İftcciv2CciPeriod1);
IFTCCIV2.SetIndicatorParameters("MovPeriod", İftcciv2MovPeriod1);
}
public override bool OnExplorer(List<BarDataEventArgs> bardatas)
{
if (pmaxIndicator.KLine.CurrentValue > pmaxIndicator.StLine.CurrentValue
&& IFTCCIV2.Value[0][IFTCCIV2.CurrentIndex] > -0.5m
&& IFTCCIV2.Value[0][IFTCCIV2.CurrentIndex] < 0.5m)
{
return true;
}else
{
return false;
}
}
}
}