Merhabalar,
"Ema(7)[5 Dakika] > Ema(13)[5 Dakika] > Ema(21)[5 Dakika]" ve "Ema(7)[60 Dakika] > Ema(13)[60 Dakika] > Ema(21)[60 Dakika]" koşullarını sağlayan kripto paraları listeleyecek bir explorer yazmak istiyorum.
Matriks IQ'da oldukça yeniyim. Algoritma Sihirbazı aracılığıyla bir strateji oluşturdum fakat bu stratejiye uyan explorer çalıştırmayı başaramadım. Bu hususta hangi adımları uygulamam gerekir?
Ayrıca yazdığım strateji ve hazır explorerları kurcalayarak -aşağıda kodlarını bulacağınız- bir explorer yazdım ve kodu derlediğimde herhangi bir hata ile karşılaşmadım. Ancak çalıştırmak istediğimde "SymbolPeriod" isimli bir değişkenim olmadığı halde arayüz ekranında bu isimde bir parametre çıkıyor ve "Strateji çalıştırılırken bir hata oluştu : Bir veya daha fazla hata oluştu" mesajını alıyorum ve explorer çalışmıyor.
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 GC : Explorer
{
[Parameter(SymbolPeriod.Min5)]
public SymbolPeriod SymbolPeriod1;
[Parameter(SymbolPeriod.Min60)]
public SymbolPeriod SymbolPeriod2;
[Parameter(7)]
public int MovPeriod1;
[Parameter(13)]
public int MovPeriod2;
[Parameter(21)]
public int MovPeriod3;
MOV mov;
MOV mov2;
MOV mov3;
MOV mov4;
MOV mov5;
MOV mov6;
public override void OnInit()
{
mov = MOVIndicator(Symbol, SymbolPeriod1, OHLCType.Close, MovPeriod1, MovMethod.E);
mov2 = MOVIndicator(Symbol, SymbolPeriod2, OHLCType.Close, MovPeriod1, MovMethod.E);
mov3 = MOVIndicator(Symbol, SymbolPeriod1, OHLCType.Close, MovPeriod2, MovMethod.E);
mov4 = MOVIndicator(Symbol, SymbolPeriod2, OHLCType.Close, MovPeriod2, MovMethod.E);
mov5 = MOVIndicator(Symbol, SymbolPeriod1, OHLCType.Close, MovPeriod3, MovMethod.E);
mov6 = MOVIndicator(Symbol, SymbolPeriod2, OHLCType.Close, MovPeriod3, MovMethod.E);
}
public override bool OnExplorer(List<BarDataEventArgs> bardatas)
{
SetColumn(0, Math.Round(mov.CurrentValue, 4));
SetColumn(1, Math.Round(mov2.CurrentValue, 4));
SetColumn(2, Math.Round(mov3.CurrentValue, 4));
SetColumn(3, Math.Round(mov4.CurrentValue, 4));
SetColumn(4, Math.Round(mov5.CurrentValue, 4));
SetColumn(5, Math.Round(mov6.CurrentValue, 4));
if ((CrossAbove(mov,mov3) && (CrossAbove(mov3,mov5)) && (CrossAbove(mov2,mov4) && (CrossAbove(mov4,mov6)))))
return true;
return false;
}
}
}
Bu konuda desteklerinizi beklemekteyim.
Şimdiden teşekkür ederim.