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.

4

İndikatörlerin görünümü

Soruldu
Kategori
Grafik
Görüntülenme
3.121 görüntülenme
Durum
Çözüldü

Örneğin macd, most vs. indikatörler data serisi üzerine eklendiğinde gelen çizgiler yerine sadece kesişim noktalarında aşağı kesince sat yukarı kesince al şeklinde görmek istiyorum. Bu mümkün mü?

Tradingview de bu şekilde kullanıyorum.

Paylaş

2 Cevap

4

Kabul edilen cevap

Merhabalar,

Yeni versiyonla birlikte bu özelliği kullanıcı indikatörü tanımlama bölümüne ekledik. Diğer indikatörlerinize örnek olması açısından Most indikatörünü yeni indikatör tanımlama kısmından düzenleyerek tekrar oluşturduk. 

Örnek görsel :

Not : Alttaki kodu kopyalayıp "BuySellicon" isimli oluşturacağınız indikatör oluştur penceresine yapıştırarak kullanabilirsiniz.

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

namespace Matriks.Lean.Algotrader
{
	//Ilk parametre indikatörün adı, sınıfın adıyla aynı olmalıdır.
	//Ikinci parametre indikatörün Dataserisinin üzerine mi yeni pencereye mi ekleneceğini belirtir. Yeni pencere için ->IndicatorDrawingArea.NewWindow , Data Serisi için IndicatorDrawingArea.OnDataSeries
	[IndicatorInformation("BuySellicon", IndicatorDrawingArea.OnDataSeries)]
	//Indikatörün çizgilerinin isimleri
	[IndicatorLineInformation(new []
		{
			"Most (0,1)", "ExMov (0,1)"
		})]
		public class BuySellicon : MatriksIndicator
	{

		//Indicator opsiyon panelinde değerleri değiştirebildiğimiz parametreler. Int, Bool, Decimal ve Enum değerleri alabilir.Tüm değişken tiplerini DefaultValue ile tanımlarız. 
		[DefaultValue(3)]
			public int Period
		{
			get; set;
		}

		[DefaultValue(2)]
			public decimal Percentage
		{
			get; set;
		}

		[DefaultValue(MovMethod.E)]
			public MovMethod Method
		{
			get; set;
		}

		MOST most;

		//Eklenmek istenen indikatorün imzasını burda belirtiyoruz.
		public ACCBands accBands;

		//Indicator değerleri hesaplanmadan önce yaratılacak indikatörler burda tanımlanıyor.
		public override void OnInit()
		{
			most = MOSTIndicator(Symbol, SymbolPeriod, OHLCType.Close, Period, Percentage, Method);
			PointTitle.Add(0, new Dictionary<int, IIndicatorIcons>());
		}

		/// <summary>
		/// Seçilen sembolün bardata'ları güncellendikçe bu fonksiyon tetiklenir. 
		/// </summary>
		/// <param name="currentBar">Güncellenen bardata'nın indexteki sırası</param>
		/// <param name="inputValue">Seçilen OHLC tipine göre gelen bardata'nın o anki değeri</param>
		/// <param name="barDateTime">Bardata'ya gelen güncelleme zamanı</param>
		public override void OnDataUpdate(int currentBar, decimal inputValue, DateTime barDateTime)
		{
			//SetLine, indikatörü grafiğe çizdirdiğimiz fonksiyondur
			SetLine(currentBar, most.CurrentValue);
			SetLine(1, currentBar, most.ExMOV.CurrentValue);
			
			//Seçilen sembolün bardatasına Instrument.SymbolBarData şeklinde ulaşabiliriz.
			var barDataModel = Instrument.SymbolBarData;

			if (CrossAbove(most.ExMOV, most))
			{
				//Grafikte gösterilecek al iconunun konumu
				var iconkonum = barDataModel.Low[currentBar];
				SetPointTitle(0, currentBar, "AL", IconLocation.BelowTheChart, iconkonum, true, "GREEN");
			}
			if (CrossBelow(most.ExMOV, most))
			{
				var iconkonum = barDataModel.High[currentBar];
				SetPointTitle(0, currentBar, "SAT", IconLocation.AboveTheChart, iconkonum, true, "RED");
			}

		}

	}
}

 

BağlantıBayrakladüzenlendi · emrahakOrçunMatriks Destek4.555
4

İndikatör çizgileri olmadan sadece şartınızı sağlandığı barlarda AL-SAT ikonları görmek için aşağıdaki kullanıcı indikatörü kullanabilirsiniz.

Kullanıcı indikatör adının buysell olmasına dikkat ediniz.

Görsel:

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

namespace Matriks.Lean.Algotrader
{
	//Ilk parametre indikatörün adı, sınıfın adıyla aynı olmalıdır.
	//Ikinci parametre indikatörün Dataserisinin üzerine mi yeni pencereye mi ekleneceğini belirtir. Yeni pencere için ->IndicatorDrawingArea.NewWindow , Data Serisi için IndicatorDrawingArea.OnDataSeries
	[IndicatorInformation("buysell", IndicatorDrawingArea.OnDataSeries)]
	//Indikatörün çizgilerinin isimleri
	[IndicatorLineInformation(new []
		{
			"Most (0,1)"
		})]
		public class buysell : MatriksIndicator
	{

		//Indicator opsiyon panelinde değerleri değiştirebildiğimiz parametreler. Int, Bool, Decimal ve Enum değerleri alabilir.Tüm değişken tiplerini DefaultValue ile tanımlarız. 
		[DefaultValue(3)]
			public int Period
		{
			get; set;
		}

		[DefaultValue(2)]
			public decimal Percentage
		{
			get; set;
		}

		[DefaultValue(MovMethod.E)]
			public MovMethod Method
		{
			get; set;
		}

		MOST most;

		//Eklenmek istenen indikatorün imzasını burda belirtiyoruz.
		public ACCBands accBands;

		//Indicator değerleri hesaplanmadan önce yaratılacak indikatörler burda tanımlanıyor.
		public override void OnInit()
		{
			most = MOSTIndicator(Symbol, SymbolPeriod, OHLCType.Close, Period, Percentage, Method);
			PointTitle.Add(0, new Dictionary<int, IIndicatorIcons>());
		}

		/// <summary>
		/// Seçilen sembolün bardata'ları güncellendikçe bu fonksiyon tetiklenir. 
		/// </summary>
		/// <param name="currentBar">Güncellenen bardata'nın indexteki sırası</param>
		/// <param name="inputValue">Seçilen OHLC tipine göre gelen bardata'nın o anki değeri</param>
		/// <param name="barDateTime">Bardata'ya gelen güncelleme zamanı</param>
		public override void OnDataUpdate(int currentBar, decimal inputValue, DateTime barDateTime)
		{
			//SetLine, indikatörü grafiğe çizdirdiğimiz fonksiyondur
			SetLine(0,currentBar, 0);
			
			//Seçilen sembolün bardatasına Instrument.SymbolBarData şeklinde ulaşabiliriz.
			var barDataModel = Instrument.SymbolBarData;

			if (CrossAbove(most.ExMOV, most))
			{
				//Grafikte gösterilecek al iconunun konumu
				var iconkonum = barDataModel.Low[currentBar];
				SetPointTitle(0, currentBar, "AL", IconLocation.BelowTheChart, iconkonum, true, "GREEN");
			}
			if (CrossBelow(most.ExMOV, most))
			{
				var iconkonum = barDataModel.High[currentBar];
				SetPointTitle(0, currentBar, "SAT", IconLocation.AboveTheChart, iconkonum, true, "RED");
			}

		}

	}
}

 

Unblocked Games offering a wide range of experiences: action, puzzle, platform, racing, clicker mechanics, strategy, sports, even horror.
https://unblocked1games.github.io
BağlantıBayraklaKripexMatriks Destek16.499

Yorumlar (8)

Cevabınız

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