Merhabalar,
İstediğiniz tarama aşağıdaki gibidir.
Dilerseniz inceleyiniz.
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 MaxMinExp : Explorer
{
[Parameter(20)]
public int MovPeriod1;
[Parameter(MovMethod.S)]
public MovMethod MovMovMethod1;
[Parameter(50)]
public int MovPeriod2;
[Parameter(MovMethod.S)]
public MovMethod MovMovMethod2;
[Parameter(100)]
public int MovPeriod3;
[Parameter(MovMethod.S)]
public MovMethod MovMovMethod3;
[Parameter(200)]
public int MovPeriod4;
[Parameter(MovMethod.S)]
public MovMethod MovMovMethod4;
[Parameter(5)]
public decimal yuzde;
MOV mov;
MOV mov2;
MOV mov3;
MOV mov4;
public override void OnInit()
{
mov = MOVIndicator(Symbol, SymbolPeriod, OHLCType.Close, MovPeriod1, MovMovMethod1);
mov2 = MOVIndicator(Symbol, SymbolPeriod, OHLCType.Close, MovPeriod2, MovMovMethod2);
mov3 = MOVIndicator(Symbol, SymbolPeriod, OHLCType.Close, MovPeriod3, MovMovMethod3);
mov4 = MOVIndicator(Symbol, SymbolPeriod, OHLCType.Close, MovPeriod4, MovMovMethod4);
AddColumns(0);
SetColumnText(0, "max");
SetColumnText(1, "min");
}
decimal max, min;
public override bool OnExplorer(List<BarDataEventArgs> bardatas)
{
max = Math.Max(mov.CurrentValue, Math.Max(mov2.CurrentValue, Math.Max(mov3.CurrentValue, mov4.CurrentValue)));
min = Math.Min(mov.CurrentValue, Math.Min(mov2.CurrentValue, Math.Min(mov3.CurrentValue, mov4.CurrentValue)));
SetColumn(0, max);
SetColumn(1, min);
if (yuzde>(max - min) * 100 / min)
{
return true;
}
return false;
}
}
}
İyi çalışmalar.