MatriksIQ Destek
Matriks Destek
Matriks Web Destek
Matriks Mobile Destek
0 beğenilme 0 beğenilmeme
650 kez görüntülendi
Iq için RSI pozitif ve Negatif uyumsuzluklar için Explorer tarama ve strateji olarak kod paylaşabilirmisiniz.
Algoritmik Trading kategorisinde (626 puan) tarafından
tarafından düzenlendi | 650 kez görüntülendi
0 0
Güncel yardımcı olursanız sevinirim.
0 0
Bu stratejileri kodun içinde fonksiyon olarak kullanabilirmiyiz?

2 Cevaplar

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

Merhabalar,

Rsi için pozitif ve negatif uyumsuzluk tarama kodları aşağıdadır. 

İyi çalışmalar

Rsi Pozitif Uyumsuzluk:

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

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

		RSI rsi;

		public override void OnInit()
		{
			rsi = RSIIndicator(Symbol, SymbolPeriod, OHLCType.Close, RsiPeriod);
			AddColumns(5);
			SetColumnText(0, "Bar Count");
			SetColumnText(1, "Ref Low");
			SetColumnText(2, "Close");
			SetColumnText(3, "LLV(Rsi)");
			SetColumnText(4, "Rsi");

		}

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

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

			if (LLV < rsi.CurrentValue)
			{
				for (int i = 1; i <= BarSayısı; i++)
				{
					int index = Ref(rsi, 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(rsi.CurrentValue, 2));
							return true;
						}
					}
				}
			}
			return false;
		}
	}
}

Rsi Negatif Uyumsuzluk:

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

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

		public override void OnInit()
		{
			rsi = RSIIndicator(Symbol, SymbolPeriod, OHLCType.Close, RsiPeriod);
			AddColumns(5);
			SetColumnText(0, "Bar Count");
			SetColumnText(1, "Ref High");
			SetColumnText(2, "Close");
			SetColumnText(3, "HHV(Rsi)");
			SetColumnText(4, "Rsi");

		}

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

			var bardata = GetBarData();
			var BarDataIndex = bardatas.FirstOrDefault().BarDataIndex;
			var HHV = HighestHigh(rsi, BarSayısı);

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

 

(3,238 puan) tarafından
tarafından seçilmiş
0 0
merhabalar bu uyumsuzlukları IQ ya nasıl tanımlıyoruz.?
0 0

Merhaba,

public class RsiNU : Explorer

satırındaki, RsiNU ifadesi stratejinin adıdır. Değiştirmek isterseniz buradan değiştirebilirsiniz.

IQ algo menüsü altında yeni explorer oluştur deyiniz.

Açılacak pencerede strateji adına burada yer alan strateji adınız yazınız.

Tamam dediğinizde, hazır temeli içeren kod açılır.

Orada tümünü silin ve yukarıdaki SADECE pozitif uyumsuzluk kodunun tümünü kopyalayıp oraya yapıştırın. 

Ve sol üst tarafta kodu derle butonu ile, sonuçlandırın. 

Bundan sonra, IQalgo penceresinde explorer listesi kısmında bu tarama stratejisini verdiğiniz isimle (Burada RsiPU) göreceksiniz. 

İyi çalışmalar

 

0 0

Merhaba hem pozitif hemde negatif kodlarını denediğimde aşağıdaki hatayı alıyorum.

 

0 0
Merhaba, strateji isimlendirmesinde sorun yaşıyorsunuz. Strateji isimlerinde büyük/küçük harfler önemli. Oluşturduğunuz explorer şablonuna pozitif için RsiPU ismini negatif için RsiNU ismini vermelisiniz. Yukarıda stratjenin nasıl ekleneceğine dair detaylı açıklamada bulunuyor oradan inceleyiniz.
Bu explorer nasıl kodun içine bir fonksiyon olarak ekliyebiliriz.
0 beğenilme 0 beğenilmeme
Merhaba.

Arkadaşlar üzerinde çalışıyor.

Yayınladığımızda duyururuz.

İyi çalışmalar
(4,717 puan) tarafından
0 0

Merhaba ilhan Bey ; 
  RsiPU algo içerisinde kullanmak istiyorum explorerdan yola çıkarak yapmaya çalıştım fakat tanımlamalarda bulunan,

public override bool OnExplorer(List<BarDataEventArgs> bardatas)
		{	var bardata = GetBarData();
			var BarDataIndex = bardatas.FirstOrDefault().BarDataIndex;
			var LLV = LowestLow(rsi, BarSayısı);

Explorerda tanımlı bun kısmı Algo için aşağıda kodu kullandım ama sanırım hata yapıyorum kontrol edebiliri misiniz., sağlıklı şekilde çalışması için nasıl yazmalıyım. 

public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues)
{	//var BarDataIndex = bardatas.FirstOrDefault().BarDataIndex; 
     //Yukarıdaki kod için aşağıda ki kodu kullandım.
	var BarDataIndex = barDataCurrentValues.GetLastUpdateForSymbol(Symbol, SymbolPeriod).BarDataIndex;
			

 

0 0
ilhan bey algoda kullanabileceğim kod için yardımınız lazım
1 0

Merhaba,

AL-SAT stratejisi hali linktedir.

RSI Uyumsuzluk Alım Satım Stratejisi:

https://destek.matriksdata.com/?qa=blob&qa_blobid=5898078922698212624

İnceleyiniz lütfen. 

İyi çalışmalar

 

0 0
Cok makbul olacaktır herkese ellerinize, emeğinize sağlık . Teşekkür ederim.
2,171 soru
2,028 cevap
1,841 yorum
1,500 kullanıcı