Merhaba
Hazır Exp. listesinde PMAX_Bull veya PMAX_Bear ile tarama yapıyorum. Gelen sonuçlar örneğin PMAX_Bull ile tüm AL pozisyonunda olanları gösteriyor. Halbuki ben "Son Bar" da AL pozisyonuna geçeni yada "SAT" pozisyonuna geçeni görmek istiyorum. Pozisyonun içinde olanı görmek istemiyorum.
Şurada bu konuyu tartışmıştık. İQ güncellenmeden önce Pmax i import edip bir şekilde desteğinizle çalıştırmıştık. Şimdi bu konunun sonundaki kodlarda çalışmyor. Sanırım kodların güncellenmesi gerek.
Şöyle birşey denedim. Kodlar hata vermiyor ama yukarıdaki tanıma uygun şekilde de çalışmıyor.
Desteğinizi rica ederim.
Amacımız : Son barda AL veya SAT pozisyonuna geçenleri görmek, sonrasında taramayı örneğin 30 dakikada tekrarla şeklinde takip edebilmek.
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 PmaxNev : Explorer
{
[Parameter(10)]
public int ATRPeriod;
[Parameter(10)]
public int MovPeriod;
[Parameter(3)]
public decimal Coefficient;
[Parameter(MovMethod.E)]
public MovMethod MovMethod;
PMaxIndicator pmaxIndicator;
public override void OnInit()
{
pmaxIndicator = PMaxIndicators(Symbol, SymbolPeriod, ATRPeriod, MovPeriod, Coefficient, MovMethod);
AddColumns(2);
SetColumnText(0, "PMAX_ST");
SetColumnText(1, "PMAX_KLine");
SetColumnText(2, "EmirYönü");
}
public override bool OnExplorer(List<BarDataEventArgs> bardatas)
{
var currentBar = bardatas.Last().BarDataIndex;
SetColumn(0, Math.Round(pmaxIndicator.StLine.CurrentValue, 4));
SetColumn(1, Math.Round(pmaxIndicator.KLine.CurrentValue, 4));
if (pmaxIndicator.KLine.CurrentValue > pmaxIndicator.StLine.CurrentValue)
return true;
return false;
if (pmaxIndicator.Value[1][currentBar - 1] < pmaxIndicator.Value[0][currentBar - 1] && pmaxIndicator.Value[1][currentBar] > pmaxIndicator.Value[0][currentBar])
{
SetColumn(2, "AL");
return true;
}
else if (pmaxIndicator.Value[0][currentBar - 1] < pmaxIndicator.Value[1][currentBar - 1] && pmaxIndicator.Value[0][currentBar] > pmaxIndicator.Value[1][currentBar])
{
SetColumn(2, "SAT");
return true;
}
}
}
}

