Matriks Destek ve Yardım Platformu

Matriks Ürünleri ile ilgili tüm sorularınız için bizlere buradan ulaşabilirsiniz. Daha önce sorulan soruları ve verilen cevapları ilgili sekmelerden ve arama üzerinden inceleyebilirsiniz. Sağ taraftaki kategoriler üzerinden İlgilendiğiniz özelliklerle ilgili soruları filtreleyebilirsiniz. Soru ve cevapları sosyal medyada paylaşabilirsiniz. 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.

0

Most DI al verenler tarama

Soruldu
Görüntülenme
1.379 görüntülenme
Durum
Cevaplandı
Merhaba ,
Bir tarama formülü oluşturmak istiyorum son 5 barda most al vermiş ve aynı zaman d+ d- yi yukarı keserek al verenlerin taramasını oluşturmak istiyorum. Kendi oluşturduğum formülde ikiside ayrı ayrı oluyor . Yardımcı olursanız sevinirim.
Paylaş

1 Cevap

0

Merhabalar,

İstemiş olduğunuz tarama hem most'un hem de di2nin son beş barda al vermesi ise,

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 omerbor_ : 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 DiPeriod1;

		[Parameter(3)]
			public int MostPeriod1;

		[Parameter(2)]
			public decimal MostPercentage1;

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

		[Parameter(3)]
			public int BarSayisi;

		DI di;
		MOST most;



		public override void OnInit()
		{
			di = DIIndicator(Symbol, SymbolPeriod, OHLCType.Close, DiPeriod1);
			most = MOSTIndicator(Symbol, SymbolPeriod, OHLCType.Close, MostPeriod1, MostPercentage1, MostMovMethod1);

		}


		/// <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 bardata = bardatas.FirstOrDefault() ? .BarData;

			for (int i = 1; i<BarSayisi; i++)
			{
				if (most.Value[1][most.CurrentIndex - i] > most.Value[0][most.CurrentIndex - i]
					&& most.Value[0][most.CurrentIndex - (i + 1)] > most.Value[1][most.CurrentIndex - (i + 1)]
					&& di.Value[0][di.CurrentIndex - i] > di.Value[1][di.CurrentIndex - i]
					&& di.Value[1][di.CurrentIndex - (i + 1)] > di.Value[0][di.CurrentIndex - (i + 1)])
					
					
					//CrossAbove(di, di, 0, 1))
				{
					return true;
				}
			}


			return false;


		}
	}
}

 

Fakat most'un son beş barda al vermesi ve di'nin son barda al vermesi ise,

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 omerbor : 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 DiPeriod1;

		[Parameter(3)]
			public int MostPeriod1;

		[Parameter(2)]
			public decimal MostPercentage1;

		[Parameter(MovMethod.E)]
			public MovMethod MostMovMethod1;
		
				[Parameter(3)]
			public int BarSayisi;

		DI di;
		MOST most;



		public override void OnInit()
		{
			di = DIIndicator(Symbol, SymbolPeriod, OHLCType.Close, DiPeriod1);
			most = MOSTIndicator(Symbol, SymbolPeriod, OHLCType.Close, MostPeriod1, MostPercentage1, MostMovMethod1);

		}


		/// <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 bardata = bardatas.FirstOrDefault() ? .BarData;

			for (int i = 1; i<BarSayisi; i++)
			{
				if (most.Value[1][most.CurrentIndex - i] > most.Value[0][most.CurrentIndex - i]
					&& most.Value[0][most.CurrentIndex - (i + 1)] > most.Value[1][most.CurrentIndex - (i + 1)] 
					&& CrossAbove(di, di, 0, 1))
				{
					return true;
				}
			}
				
		
			return false;


		}
	}
}

İyi çalışmalar.

BağlantıBayraklaasiyangMatriks Destek11.113

Cevabınız

Cevap yazmak için giriş yapın.Giriş yapKayıt ol