Merhaba

Son  Bar_Say değişkeninde verilen bar da Mov 50 ve 200 de Cross varmı taraması yapmak istiyorum

Ancak sonuclar tutarsız çıkıyor . Yardımcı olabilirmisiniz ?

 

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 EMAStrateji : Explorer

{

[Parameter(50)]

public int MovPeriod1;

 

[Parameter(MovMethod.S)]

public MovMethod MovMovMethod1;

 

[Parameter(200)]

public int MovPeriod2;

 

[Parameter(MovMethod.S)]

public MovMethod MovMovMethod2;

 

[Parameter(10)]

public int Bar_Say

{

get; set;

}

 

int Kros = 0;

int Degisim = 0;

 

MOV mov;

MOV mov2;

 

 

 

public override void OnInit()

{

mov = MOVIndicator(Symbol, SymbolPeriod, OHLCType.Close, MovPeriod1, MovMovMethod1);

mov2 = MOVIndicator(Symbol, SymbolPeriod, OHLCType.Close, MovPeriod2, MovMovMethod2);

 

 

AddColumns(0);

 

 

}

 

 

 

public override bool OnExplorer(List<BarDataEventArgs> bardatas)

{

var barData1 = GetBarData(Symbol, SymbolPeriod);

var ohlcData1 = GetSelectedValueFromBarData(barData1, OHLCType.Close);

 

var bardata = bardatas.FirstOrDefault() ? .BarData;

 

        if (mov.Value[0][mov.CurrentIndex] > mov2.Value[0][mov2.CurrentIndex])

{

for (int i = 1; i <= Bar_Say; i++)

{

if (mov.Value[0][mov.CurrentIndex - i] < mov2.Value[0][mov2.CurrentIndex - i])

{

Kros = 1;

i = Bar_Say ;

}

else

{

Kros = 0;

}

}

if (Kros == 1m )

{

return true;

}

}

// mov.Value[0][mov.CurrentIndex] < ohlcData1 &&

 

return false;

}

}

}