0 beğenilme 0 beğenilmeme
881 kez görüntülendi

Merhaba 

Ekteki görselde de göreceğiniz üzere tradingview da yaptığım tarama koşullarını matriks iq da expoler tarama ile yapmak istiyorum.

kodunu paylaşırsanız sevinirim.

 

https://disk.yandex.com.tr/i/RwFqHQbQ9VkqdQ

Explorer kategorisinde (12 puan) tarafından | 881 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Merhabalar,

İstediğiniz tarama Hacim Ağırlıklı Ortalama koşulu hariç aşağıda verildiği gibidir.

(Hacim Ağırlıklı Hareketli Ortalama yapısı gereği şu an için Explorer taramalarında kullanılamıyor. Durumla alakalı ilgili birimlere gerekli geri dönüş yapıldı. Explorer taramalarında kullanılabilir hale geldiğinde tarama kodu için revizesi yapılacaktır.)

Lütfen inceleyiniz.

using System;
using System.Collections.Generic;
using System.Linq;
using Matriks.Data.Symbol;
using Matriks.Engines;
using Matriks.Indicators;
using Matriks.Symbols;
using Matriks.Trader.Core;
using Matriks.Trader.Core.Fields;
using Matriks.Lean.Algotrader.AlgoBase;
using Matriks.Lean.Algotrader.Models;
using Matriks.Lean.Algotrader.Trading;
using Matriks.AI;
using Matriks.AI.AiParameters;
using Matriks.AI.Data;
using Matriks.Trader.Core.TraderModels;

namespace Matriks.Lean.Algotrader
{
	public class TWExp : Explorer
	{
		// Strateji çalıştırılırken kullanacağımız parametreler. Eğer sembolle ilgili bir parametre ise,
		// "SymbolParameter" ile, değilse "Parameter" ile tanımlama yaparız. Parantez içindeki değerler default değerleridir.
		[Parameter(14)]
			public int RsiPeriod1;

		[Parameter(0.02)]
			public decimal ParabolicsarAcc1;

		[Parameter(0.2)]
			public decimal ParabolicsarMaxAcc1;

		[Parameter(21)]
			public int CmfPeriod1;

		[Parameter(20)]
			public int SmaPeriod1;

		[Parameter(14)]
			public int RsiPeriod2;

		[Parameter(3)]
			public int StochasticfastPeriodK1;

		[Parameter(3)]
			public int StochasticfastPeriodD1;

		[Parameter(MovMethod.E)]
			public MovMethod StochasticfastMovMethod1;

		[Parameter(3)]
			public int StochasticslowPeriodK1;

		[Parameter(3)]
			public int StochasticslowPeriodD1;

		[Parameter(14)]
			public int StochasticslowPeriodSlowK1;

		[Parameter(MovMethod.E)]
			public MovMethod StochasticslowMovMethod1;

		[Parameter(14)]
			public int MfiPeriod1;

		RSI rsi;
		ParabolicSAR parabolicSar;
		CMF cmf;
		VOLUME volume;
		SMA sma;
		RSI rsi2;
		StochasticFast stochasticFast;
		StochasticSlow stochasticSlow;
		MFI mfi;



		public override void OnInit()
		{
			rsi = RSIIndicator(Symbol, SymbolPeriod, OHLCType.Close, RsiPeriod1);
			parabolicSar = ParabolicSARIndicator(Symbol, SymbolPeriod, ParabolicsarAcc1, ParabolicsarMaxAcc1);
			cmf = CMFIndicator(Symbol, SymbolPeriod, OHLCType.Close, CmfPeriod1);
			volume = VolumeIndicator(Symbol, SymbolPeriod);
			sma = SMAIndicator(volume, SmaPeriod1);
			rsi2 = RSIIndicator(volume, RsiPeriod2);
			stochasticFast = StochasticFastIndicator(Symbol, SymbolPeriod, OHLCType.Close, StochasticfastPeriodK1, StochasticfastPeriodD1, StochasticfastMovMethod1);
			stochasticSlow = StochasticSlowIndicator(Symbol, SymbolPeriod, OHLCType.Close, StochasticslowPeriodK1, StochasticslowPeriodD1, StochasticslowPeriodSlowK1, StochasticslowMovMethod1);
			mfi = MFIIndicator(Symbol, SymbolPeriod, MfiPeriod1);

			AddColumns(8);
			SetColumnText(0, "RSI");
			SetColumnText(1, "ParabolicSar");
			SetColumnText(2, "CMF");
			SetColumnText(3, "Göreceli Hacim");
			SetColumnText(4, "RSI/VOL");
			SetColumnText(5, "StochasticF");
			SetColumnText(6, "StochasticS");
			SetColumnText(7, "MFI");
		}


		/// <summary>
		/// Eklenen sembollerin bardata'ları ve indikatorler güncellendikçe bu fonksiyon tetiklenir. 
		/// </summary>
		/// <param name="barData">Bardata ve hesaplanan gerçekleşen işleme ait detaylar</param>
		public override bool OnExplorer(List<BarDataEventArgs> bardatas)
		{
			var barData1 = GetBarData(Symbol, SymbolPeriod);
			var ohlcData1 = GetSelectedValueFromBarData(barData1, OHLCType.Close);

			var bardata = bardatas.FirstOrDefault() ? .BarData;
			var gh = sma.Value[0][sma.CurrentIndex] / volume.Value[0][volume.CurrentIndex];

			SetColumn(0, Math.Round(rsi.Value[0][rsi.CurrentIndex], 2));
			SetColumn(1, Math.Round(parabolicSar.Value[0][parabolicSar.CurrentIndex], 2));
			SetColumn(2, Math.Round(cmf.Value[0][cmf.CurrentIndex], 2));
			SetColumn(3, Math.Round( sma.Value[0][sma.CurrentIndex] / volume.Value[0][volume.CurrentIndex], 2));
			SetColumn(4, Math.Round(stochasticFast.Value[0][stochasticFast.CurrentIndex], 2));
			SetColumn(5, Math.Round(stochasticSlow.Value[0][stochasticSlow.CurrentIndex], 2));
			SetColumn(6, Math.Round(mfi.Value[0][mfi.CurrentIndex], 2));





			if (rsi.Value[0][rsi.CurrentIndex] < 70m
				&& parabolicSar.Value[0][parabolicSar.CurrentIndex] < ohlcData1
				&& cmf.Value[0][cmf.CurrentIndex] > 0.03m
				&& sma.Value[0][sma.CurrentIndex] / volume.Value[0][volume.CurrentIndex] >1.5m
				&& mfi.Value[0][mfi.CurrentIndex] > 65m
				&& stochasticFast.Value[0][stochasticFast.CurrentIndex] > stochasticSlow.Value[0][stochasticSlow.CurrentIndex])
			{
				return true;
			}
			return false;


		}
	}
}

İyi çalışmalar.

 

(11,059 puan) tarafından
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,721 soru
8,667 cevap
4,862 yorum
20,452 kullanıcı