MatriksIQ Destek
Matriks Destek
Matriks Web Destek
Matriks Mobile Destek
0 beğenilme 0 beğenilmeme
93 kez görüntülendi

Pmax indikatöründe yukarı trendde olanlar ve inverse fisher transform on cci v2 indikatöründe -0.5/0.5 ara bölgede olan sembolleri bulmak için bir explorer yazmaya çalıştım ancak tarama sonucu herhangi bir veri dönmüyor. Nerede hata yapıyorum?


 

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(14)]
		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)
		{
			SetColumn(0, Math.Round(pmaxIndicator.StLine.CurrentValue, 2));
			SetColumn(1, Math.Round(pmaxIndicator.KLine.CurrentValue, 2));

			if (pmaxIndicator.KLine.CurrentValue > pmaxIndicator.StLine.CurrentValue){
				if (IFTCCIV2.Value[0][IFTCCIV2.CurrentIndex] > IFTCCIV2.Value[2][IFTCCIV2.CurrentIndex] && IFTCCIV2.Value[0][IFTCCIV2.CurrentIndex] < IFTCCIV2.Value[1][IFTCCIV2.CurrentIndex]){
					return true;
				}

			}

			return false;
		}
	}
}

 

önce Explorer kategorisinde (37 puan) tarafından | 93 kez görüntülendi

1 cevap

1 beğenilme 0 beğenilmeme

Merhaba,

mantık doğru ama döndürülen değer hep false olduğu için sonuç çıkmıyor. aşağıdaki yapıyı kullanabilirsiniz.

public override bool OnExplorer(List<BarDataEventArgs> bardatas)
		{
			SetColumn(0, Math.Round(pmaxIndicator.StLine.CurrentValue, 2));
			SetColumn(1, Math.Round(pmaxIndicator.KLine.CurrentValue, 2));

			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;
            }

			
		}

 

önce (5,761 puan) tarafından
0 0
Sadece yukarı trendde olanlar çıkıyor şimdi de. Malesef cci tarafı çalışmıyor
1,895 soru
1,801 cevap
1,742 yorum
1,293 kullanıcı