0 beğenilme 0 beğenilmeme
1,429 kez görüntülendi
Matriks IQ da Tilson T3 indikatörünün TMOV olarak kayıtlı olduğunu belirtmissiniz

ancak bu indikatör Matriks Prime daki gibi AL ve SAT seviyelerini renklendirmiyor.

AL ve SAT seviyelerinin renkli olmassı için nasıl bir yol izlemeliyim.
İndikator kategorisinde (20 puan) tarafından | 1,429 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Merhabalar,

İndikatördeki renk değişimini indikatörü seçtikten sonra Yüks.Düş.Renk Kullan ikonuna tıklayabilirsiniz.

Bahsettiğiniz durum bütün barların kırmızı ya da yeşil olması ise, lütfen aşağıdaki kod yapısını MatriksIQ'ya indikatör olarak ekleyiniz.

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;
using System.Windows.Media;

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("barboyama", IndicatorDrawingArea.OnDataSeries)]
	//Indikatörün çizgilerinin isimleri
	[IndicatorLineInformation(new []
		{
			"barboyama(0,1)"
		})]
		public class barboyama : 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 TillsonPeriod
		{
			get; set;
		}

		[DefaultValue(0.7)]
		public decimal TillsonA
		{
			get; set;
		}

		TMOV tmov;



		//Eklenmek istenen indikatorün imzasını burda belirtiyoruz.


		//Indicator değerleri hesaplanmadan önce yaratılacak indikatörler burda tanımlanıyor.
		public override void OnInit()
		{

			tmov = TMOVIndicator(Symbol, SymbolPeriod, OHLCType.Close, TillsonPeriod, TillsonA);

			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>

		int sayac = 0;

		public override void OnDataUpdate(int currentBar, decimal inputValue, DateTime barDateTime)
		{

			var barData = GetBarData();
			var RefTilson1 = Ref(tmov, -1);
			var RefTilson2 = Ref(tmov, -2);
			//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;

			// al sat
			if (tmov.CurrentValue>RefTilson1 && RefTilson1 <= RefTilson2)
			{
				var iconkonum = barDataModel.Low[currentBar];
				SetPointTitle(0, currentBar, "AL", IconLocation.BelowTheChart, iconkonum, true, "GREEN");

			}
			if (tmov.CurrentValue<RefTilson1 && RefTilson1 >= RefTilson2)
			{
				var iconkonum = barDataModel.High[currentBar];
				SetPointTitle(0, currentBar, "SAT", IconLocation.AboveTheChart, iconkonum, true, "RED");

			}

			// bar boyama
			if (tmov.CurrentValue>RefTilson1)
			{
				PaintBar(currentBar, Colors.Green.ToString());

			}

			if (tmov.CurrentValue<RefTilson1)
			{
				PaintBar(currentBar, Colors.Red.ToString());
			}

		}

	}
}

 

İyi çalışmalar.

(11,059 puan) tarafından
8,636 soru
8,590 cevap
4,821 yorum
19,789 kullanıcı