0 beğenilme 0 beğenilmeme
147 kez görüntülendi
Aşağıda ki indikatörü yazdığımda indikatörün bazen 1 alması gereken yerde birkac bar indikator 1 değerini aldıktan sonra koşul sağlanmaya devam etsede bir anda 1 bar sonra 0 değerini alıp sonra tekrar 1 değerini alıyor. Aynı şekilde -1 koşulunda da aynı şekilde. Bunun sebebi nedir acaba? Yardimci olabilirseniz sevinirim.

 

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

{

// indikatorun dogru sonuc vermesi icin 1 bar otelenmesi gerekmektedir.

[IndicatorInformationAttribute("rsiKapi2", IndicatorDrawingArea.NewWindow)]

[IndicatorLineInformationAttribute(new []

{

"rsiKapi2"

}

)]

public class rsiKapi2 : MatriksIndicator

{

[DefaultValue(10)]

public int hhPeriod

{

get; set;

}

[DefaultValue(10)]

public int llPeriod

{

get; set;

}

 

HighestHigh hh;

LowestLow ll;

MOV mov;

RSI rsi;

 

public sealed override void OnInit()

{

 

rsi = RSIIndicator(Symbol, SymbolPeriod, OHLCType.Close, 14);

mov = MOVIndicator(rsi, 10, MovMethod.Simple);

hh = HighestHighIndicator(mov, hhPeriod);

ll = LowestLowIndicator(mov, llPeriod);

}

 

 

 

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

{

 

 

if (currentBar < 1)

{

 

 

return;

}

 

 

decimal h1= hh.Value[0][hh.CurrentIndex -1];

decimal l1= ll.Value[0][ll.CurrentIndex -1];

 

 

if(mov.Value[0][mov.CurrentIndex] > h1)

{

SetLine(0,currentBar,1);

}

else if(mov.Value[0][mov.CurrentIndex] < l1)

{

SetLine(0,currentBar,-1);

}

else

{SetLine(0,currentBar,0); }

 

 

 

 

 

 

 

 

}

}

}
İndikator kategorisinde (19 puan) tarafından | 147 kez görüntülendi

Bu soruya cevap vermek için lütfen giriş yapınız veya kayıt olunuz.

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.



7,645 soru
7,642 cevap
4,448 yorum
11,065 kullanıcı