0 beğenilme 0 beğenilmeme
1,801 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,801 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,902 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,726 soru
8,669 cevap
4,862 yorum
20,487 kullanıcı