0 beğenilme 0 beğenilmeme
259 kez görüntülendi
Gönderdiğiniz dosyayı inceledim, 60 dakkalık ve 240 dakkalık periyotları IF bloğunun içine ekleyim iki periyotta da gerçekleştiğinde sinyal vermesini sağlayamıyormuyuz. Bu haliyle sadece 60 dakkalık periyotta da oluşsa sinyal geliyor, 240 dakkalıkta tek başına da oluşsa sinyal geliyor. Ben 60 dakkalıkta sinyal oluştuğunda 240 dakkalık periyodu da kontrol etsin orda da şartlar karşılanıyorsa sinyal versin, şartlar karşılanmıyorsa sinyal vermesin istiyorum.
bir cevap ile ilgili: 2 indikatörle explorer taraması
Explorer kategorisinde (28 puan) tarafından | 259 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Explorer sihirbazında her periyot için indikatörleri ekleyip koşul oluşturduktan sonra kod içerisinde küçük bir dokunuşla periyotlardan bir tanesini Min240 eklenmesi yeterli olur. Aşağıdaki örneği inceleyip kullanabilirsiniz.

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 TestExplorer1 : 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(20)]
			public int BollingerPeriod1;

		[Parameter(2)]
			public decimal BollingerStandardDeviation1;

		[Parameter(MovMethod.S)]
			public MovMethod BollingerMovMethod1;

		[Parameter(14)]
			public int StochasticrsiRsiPeriod1;

		[Parameter(14)]
			public int StochasticrsiStochasticPeriod1;

		[Parameter(3)]
			public int StochasticrsiKPeriod1;

		[Parameter(3)]
			public int StochasticrsiDPeriod1;

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

		BOLLINGER bollinger,bollinger1;
		StochasticRSI stochasticRSI,stochasticRSI1;

		public override void OnInit()
		{
			bollinger = BollingerIndicator(Symbol, SymbolPeriod, OHLCType.Close, BollingerPeriod1, BollingerStandardDeviation1, BollingerMovMethod1);
			stochasticRSI = StochasticRSIIndicator(Symbol, SymbolPeriod, OHLCType.Close, StochasticrsiRsiPeriod1, StochasticrsiStochasticPeriod1, StochasticrsiKPeriod1, StochasticrsiDPeriod1, StochasticrsiSmoothMethod1);

			bollinger1 = BollingerIndicator(Symbol, SymbolPeriod.Min240, OHLCType.Close, BollingerPeriod1, BollingerStandardDeviation1, BollingerMovMethod1);
			stochasticRSI1 = StochasticRSIIndicator(Symbol, SymbolPeriod.Min240, OHLCType.Close, StochasticrsiRsiPeriod1, StochasticrsiStochasticPeriod1, StochasticrsiKPeriod1, StochasticrsiDPeriod1, StochasticrsiSmoothMethod1);

			AddColumns(5);
			SetColumnText(0, "kapanış");
			SetColumnText(1, "Bol Alt band");
			SetColumnText(2, "Bol Alt band min240");
			
			SetColumnText(3, "stochasticRSIK");
			SetColumnText(4, "stochasticRSIK min240");
		}

		public override bool OnExplorer(List<BarDataEventArgs> bardatas)
		{
			var barData1 = GetBarData(Symbol, SymbolPeriod);
			var ohlcData1 = GetSelectedValueFromBarData(barData1, OHLCType.Close);

			var bardata = bardatas.FirstOrDefault() ? .BarData;
		
			SetColumn(0, bardata.Close);
			SetColumn(1, bollinger.Value[2][bollinger.CurrentIndex]);
			SetColumn(2, bollinger1.Value[2][bollinger1.CurrentIndex]);
			
			SetColumn(3, stochasticRSI.Value[0][stochasticRSI.CurrentIndex]);
			SetColumn(4, stochasticRSI1.Value[0][stochasticRSI1.CurrentIndex]);

			if (bollinger.Value[2][bollinger.CurrentIndex] > ohlcData1 && 
				bollinger1.Value[2][bollinger1.CurrentIndex] > ohlcData1 && 
				stochasticRSI.Value[0][stochasticRSI.CurrentIndex] < 10m &&
				stochasticRSI1.Value[0][stochasticRSI1.CurrentIndex] < 10m)
			{
				return true;
			}
			return false;


		}
	}
}

 

(15,892 puan) tarafından
8,632 soru
8,586 cevap
4,819 yorum
19,773 kullanıcı