12.04.2023
0
1
244
100
  • Anıl Özekşi'nin OTT indikatörü ile oluşturduğu fırsatçı trend olarak adlandırılan formülün indikatör halidir.
  • veri terminali tanımlaması : MOV(C,opt1,VAR)>(OTT(C,opt1,3)+REF(OTT(C,opt1,3)-(OTT(C,opt1,7)-OTT(C,opt1,3)),-100))/2 


𝕿𝖗𝖆𝖓𝖘𝖑𝖆𝖙𝖊𝖉 𝓑𝔂 ⒶⓀⒾⓃ ℍü𝓃𝑒𝓇𝓁𝒾

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
	[IndicatorInformationAttribute("FirsatciTrendINDICATOR", IndicatorDrawingArea.OnDataSeries)]
	//Indikatörün çizgilerinin isimleri
	[IndicatorLineInformationAttribute(new []
		{
			"FirsatciTrendINDICATOR"
		})]

	public class FirsatciTrendINDICATOR : 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(20)]
			public int MajorTrend_OttPeriod
		{
			get; set;
		}[DefaultValue(7)]
			public decimal MajorTrend_OttOPT
		{
			get; set;
		}
		[DefaultValue(20)]
			public int FirsatciTrend_OttPeriod
		{
			get; set;
		}[DefaultValue(3)]
			public decimal FirsatciTrend_OttOpt
		{
			get; set;
		}
		OTT ott, ott1;
		public sealed override void OnInit()
		{
			ott = OTTIndicator(Symbol, SymbolPeriod, OHLCType.Close, FirsatciTrend_OttPeriod, FirsatciTrend_OttOpt, MovMethod.VAR, true);
			ott1 = OTTIndicator(Symbol, SymbolPeriod, OHLCType.Close, MajorTrend_OttPeriod, MajorTrend_OttOPT, MovMethod.VAR, true);
		}
		public override void OnDataUpdate(int currentBar, decimal inputValue, DateTime barDateTime)
		{
			var Ftrend = (ott.Value[0][ott.CurrentIndex]+ott.Value[0][ott.CurrentIndex -100]-ott1.Value[0][ott1.CurrentIndex-100]+ott.Value[0][ott.CurrentIndex-100])/2m;
			SetLine(0, currentBar, Ftrend);
		}


	}
}

0 Yorum