0 beğenilme 0 beğenilmeme
394 kez görüntülendi
Merhabalar , grafik üzerine ATR kanalı çizmek istedim ama başaramadım. Üst kanal çizgisi bulunduğumuz periyottaki mumun açılış değerine 14 periyotluk ATR değeri eklenmesiyle oluşacak ve alt kanal çizgisi de açılış fiyatından 14 periyotluk ATR değeri çıkarılmasıyla oluşacak. Eğer yardımcı olursanız ve hangi kodun kanal çizgilerini oluşturduğunu hangi kodun açılış fiyatı ve ATR toplama çıkarma işlemlerini yaptığını yorum satırlarıyla belirtirseniz daha sonraki aklıma gelen farklı indikatörleri kendim uğraşarak yapabilirim. Şimdiden teşekkürler.
İndikator kategorisinde (34 puan) tarafından | 394 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme
En İyi Cevap

Merhaba,

Aşağıdaki örneği inceleyebilirsiniz.

iyi çalışmalar.

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("AtrKanalKripex", IndicatorDrawingArea.OnDataSeries)]
	//Indikatörün çizgilerinin isimleri
	[IndicatorLineInformation(new []
		{
			"Up", "Down"
		})]
		public class AtrKanalKripex : MatriksIndicator
	{

		[DefaultValue(14)]
		public int Period
		{
			get; set;
		}

		ATR atr;

		public override void OnInit()
		{
			atr = ATRIndicator(Symbol, SymbolPeriod, OHLCType.Close, Period);
		}

		public override void OnDataUpdate(int currentBar, decimal inputValue, DateTime barDateTime)
		{
			if (currentBar < Period)
			{
				SetLine(currentBar, 0);
				SetLine(1, currentBar, 0);
				return;
			}

			// barın açılış değeri
			var _open=Instrument.SymbolBarData.Open[currentBar];
			// atr indikatörünün aktif değeri
			var _atr=atr.CurrentValue;
			
			// birinci çizgi
			SetLine(currentBar, _open+_atr);
			// ikinici çizgi
			SetLine(1, currentBar, _open-_atr);
		}

	}
}

 

(15,892 puan) tarafından
tarafından seçilmiş
0 0
Çok teşekkür ederim iyi çalışmalar
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,635 soru
8,589 cevap
4,821 yorum
19,779 kullanıcı