0 beğenilme 0 beğenilmeme
1,509 kez görüntülendi
Merhaba,

 

Referans, HighestHigh, LowestLow, Highest ve Lowest fonksiyonlarını bir satırda nasıl kullanabiliriz? Daha önce prime da kullandığım bu formülü C# ta yazamadım...

H>REF(HHV(H,20),-1),

L<REF(LLV(L,20),-1)
Algoritmik Trading kategorisinde (50 puan) tarafından | 1,509 kez görüntülendi

1 cevap

2 beğenilme 0 beğenilmeme

Merhaba,

IQ'da önceki değerlere Ref() fonksiyonu ile ulaşılabiliyor.

decimal _oncekiMovDegeri;
_oncekiMovDegeri=Ref(mov,-1);

Önceki HHV() ve LLV() değerlerini almak biraz farklı öncelikle iki tane değişken oluşturuyoruz.

Dictionary<int, decimal> _llv20 = new Dictionary<int, decimal>();
Dictionary<int, decimal> _hhv20 = new Dictionary<int, decimal>();

bu değişkenlerin içini ondataupdate methodunda dolduruyoruz.

var barDataModel = GetBarData();

var Index = barDataCurrentValues.LastUpdate.BarDataIndex;

var CurrentHigh = barDataCurrentValues.LastUpdate.High;

var CurrentLow = barDataCurrentValues.LastUpdate.Low;

_hhv20[Index] = HighestHigh(barDataModel, OHLCType.High, 20);
_llv20[Index] = LowestLow(barDataModel, OHLCType.Low, 20);

daha sonra şartınızı ondataupdate methodunda yazmalısınız

// H>REF(HHV(H,20),-1),
CurrentHigh>_hhv20[Index -1]
// L<REF(LLV(L,20),-1)
CurrentLow<_llv20[Index -1]

 

(15,852 puan) tarafından
0 0
Merhaba,

HighestHigh ve LowestLow fonksiyonlarını ve farz edelim matematiksel işlemle hazırlanan 4 çizgi daha ekrana çizdirmek istiyoruz. Bunu nasıl yapabiliriz? ALGO_Trader_IQ dokümanınızda public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues) kısmında bahsetmişsiniz lakin bir türlü ekranda gösterim yapamadım. Yardımcı olabilirseniz mutlu olurum. Teşekkürler
0 0

Merhaba,

çizdirmekten kastınız grafikte görmek ise oradaki yapı biraz farklı. öncelikle kullanıcı indikatöründe çizgilere isimler vermelisiniz. aşağıdaki örnekte highesthigh ve lowestlow adında iki tane çizgi oluşturdum.

[IndicatorLineInformationAttribute(new []
		{
			"HighestHigh", "LowestLow"
		})]

daha sonra ondataupdate kısmında çizgilere veri ekledim.

var barDataModel = GetBarData();

			if (currentBar < Period)
			{
				//SetLine fonksiyonu indikatördeki noktaları kuran fonksiyondur
				//Ilk paramatre indicatordeki hangi çizginin güncelleneceği bilgisidir.
				//Ikinci parametre güncellenecek çizginin hangi indexinin güncelleneceği bilgisidir.
				//Ucüncü parametre güncellenecek çizginin indexinin alacağı değerdir.
				SetLine(0, currentBar, 0);
				SetLine(1, currentBar, 0);
				return ;
			}

			SetLine(0, currentBar, HighestHigh(barDataModel, OHLCType.High, BarSayisi));
			SetLine(1, currentBar, LowestLow(barDataModel, OHLCType.Low, BarSayisi));

örnek indikatöre aşağıdaki linkten ulaşabilirsiniz.

https://destek.matriksdata.com/?qa=blob&qa_blobid=10157095876940184156

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,972 soru
7,951 cevap
4,536 yorum
13,102 kullanıcı