0 beğenilme 0 beğenilmeme
424 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;
		}
	}
}

 

Explorer kategorisinde (47 puan) tarafından | 424 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;
            }

			
		}

 

(15,572 puan) tarafından
0 0
Sadece yukarı trendde olanlar çıkıyor şimdi de. Malesef cci tarafı çalışmıyor
Hoş geldiniz, Matriks Destek Platformu sizlere sorularınızın hızlıca cevaplanması için bir ortam sağlar. Sorduğunuz ve cevapladığınız soruların ve yorumlarınızın aldığı oylar üzerinden puan kazanırsınız. Puan sistemine bağlı kampanyamızla ücretsiz kullanım avantajlarından faydalanabilirsiniz.



7,611 soru
7,614 cevap
4,444 yorum
10,755 kullanıcı