01.08.2023
0
0
51
0
YİĞİT KAYNAK tarafından oluşturulan ZUU indikatörünün IQ ya uyarlanmış halidir.

 YGT1:= 3;
 YGT2:= 1;
 NET:= Mov(Mov(C - Ref(C, -1), YGT1, ww), YGT2, ww) / Mov(Mov(Abs(C - Ref(C, -1)), YGT1, ww), YGT2, ww) * 100;
 TET:= mov(NET, 2, VAR);
 NET; TET:0
 
𝕿𝖗𝖆𝖓𝖘𝖑𝖆𝖙𝖊𝖉 𝓑𝔂 ⒶⓀⒾⓃ ℍü𝓃𝑒𝓇𝓁𝒾
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
{
	/*YİĞİT KAYNAK tarafından oluşturulan ZUU indikatörünün IQ ya uyarlanmış halidir.

	YGT1:= 3;
	YGT2:= 1;
	NET:= Mov(Mov(C - Ref(C, -1), YGT1, ww), YGT2, ww) / Mov(Mov(Abs(C - Ref(C, -1)), YGT1, ww), YGT2, ww) * 100;
	TET:= mov(NET, 2, VAR);
	NET; TET:0
	
	𝕿𝖗𝖆𝖓𝖘𝖑𝖆𝖙𝖊𝖉 𝓑𝔂 ⒶⓀⒾⓃ ℍü𝓃𝑒𝓇𝓁𝒾
	*/
	[IndicatorInformationAttribute("ZUU", IndicatorDrawingArea.NewWindow)]
	[IndicatorLineInformationAttribute(new []
		{
			"ZUU", "ZUU"
		})]

	public class ZUU : MatriksIndicator
	{

		[DefaultValue(3)]
			public int YGT1
		{
			get; set;
		}
		[DefaultValue(1)]
			public int YGT2
		{
			get; set;
		}

		MOV mov, mov1, mov2, mov3, mov4;

		public sealed override void OnInit()
		{
			mov = new MOV(YGT1, MovMethod.Wilders);
			mov1 = new MOV(YGT2, MovMethod.Wilders);
			mov2 = new MOV(YGT1, MovMethod.Wilders);
			mov3 = new MOV(YGT2, MovMethod.Wilders);
			mov4 = new MOV(2, MovMethod.VAR);

		}
		public override void OnDataUpdate(int currentBar, decimal inputValue, DateTime barDateTime)
		{
			if (currentBar< Math.Max(YGT1, YGT2))
			{
				SetLine(currentBar, 0); SetLine(1, currentBar, 0); return;
			}
			var ref1 = Instrument.SymbolBarData.Close[currentBar] - Instrument.SymbolBarData.Close[currentBar -1];
			var ref2 = Math.Abs(Instrument.SymbolBarData.Close[currentBar] != Instrument.SymbolBarData.Close[currentBar-1]?  Instrument.SymbolBarData.Close[currentBar] - Instrument.SymbolBarData.Close[currentBar -1]:(Instrument.SymbolBarData.Close[currentBar]+0.01m) - (Instrument.SymbolBarData.Close[currentBar-1]));
			mov.Update(ref1, currentBar, barDateTime);
			mov1.Update(mov.CurrentValue, currentBar, barDateTime);
			mov2.Update(ref2, currentBar, barDateTime);
			mov3.Update(mov2.CurrentValue, currentBar, barDateTime);
			var NET = mov1.CurrentValue / (mov3.CurrentValue) * 100m;
			mov4.Update(NET, currentBar, barDateTime);
			var TET = mov4.CurrentValue;
			SetLine(currentBar, NET);
			SetLine(1, currentBar, TET);
		}


	}
}

0 Yorum