0 beğenilme 0 beğenilmeme
1,775 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,775 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,892 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.



8,636 soru
8,590 cevap
4,821 yorum
19,790 kullanıcı