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);
}
}
}