0 beğenilme 0 beğenilmeme
566 kez görüntülendi
merhabalar,

matrix ıq'de stochastic rsı ile fiyat arasında pozitif uyumsuzluk gösteren explorer ve indikatör tanımlamasını nasıl yapabiliriz
İndikator kategorisinde (24 puan) tarafından | 566 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme
En İyi Cevap

Merhabalar,

StochasticRsi ile fiyat arasındaki pozitif uyumsuzluk sonuçlarını veren explorer taraması aşağıdaki gibidir.

Lütfen inceleyiniz.

İndikatör tanımlama kısmında ise, Pozitif uyumsuzluk fiyatların düşüş trendinde olmasına rağmen RSI’ın değerinin artmasıdır. 

Dilerseniz grafik ekranınıza StochasticRsi indikatörünü ekleyerek teyit edebilirsiniz. Ekran görüntüsü aşağıda mevcuttur.

İyi çalışmalar.

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 StochasticRsiPozitifUyumsuzlukExp : Explorer
	{
		[Parameter(14)]
			public int StocrsiPeriod1;

		[Parameter(7)]
			public int StocrsiKPercent1;

		[Parameter(21)]
			public int BarSayısı;

		StocRSI stocRSI;

		public override void OnInit()
		{

			stocRSI = StocRSIIndicator(Symbol, SymbolPeriod, OHLCType.Close, StocrsiPeriod1, StocrsiKPercent1);

			AddColumns(5);
			SetColumnText(0, "Bar Count");
			SetColumnText(1, "Ref Low");
			SetColumnText(2, "Close");
			SetColumnText(3, "LLV(StocRsi)");
			SetColumnText(4, "StocRsi");

		}

		public override bool OnExplorer(List<BarDataEventArgs> bardatas)
		{

			var bardata = GetBarData();
			var BarDataIndex = bardatas.FirstOrDefault().BarDataIndex;
			var LLV = LowestLow(stocRSI, BarSayısı);

			if (LLV < stocRSI.CurrentValue)
			{
				for (int i = 1; i <= BarSayısı; i++)
				{
					int index = Ref(stocRSI, i) == LLV? i:0;
					if (index>1)
					{
						var refLow = bardata.Low[BarDataIndex - index];
						var close = bardata.Close[BarDataIndex];
						if (refLow >close)
						{
							SetColumn(0, index);
							SetColumn(1, refLow);
							SetColumn(2, close);
							SetColumn(3, Math.Round(LLV, 2));
							SetColumn(4, Math.Round(stocRSI.CurrentValue, 2));
							return true;
						}
					}
				}
			}
			return false;
		}
	}
}

 

(11,059 puan) tarafından
tarafından seçilmiş
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.



8,636 soru
8,590 cevap
4,821 yorum
19,789 kullanıcı