0 beğenilme 0 beğenilmeme
541 kez görüntülendi

Highshigh indikatörü ile hisselerin en yüksek değerini almaya çalıştım ancak herbirinde farklı bir period yazmak zorunda kalıyorum. kiminde bardata yetersiz diyor kiminin zirveri 500 barda kimininki 400 barda vs vs yani bir standart yok.

kodları karıştıtıken aşağıdaki kodu buldum. ancak çalıştırdığımda herzaman ilk daha updatede de değer 0 geliyor akabindeki dataupdate de gerçekten tarihi yüksek değeri geliyor. ilk data update de 0 gelmesi yüzünden algoda kullanamıyorum. 

ilk data update de 0 gelmemesinin bir yolu varmı veya farklı başka bir yolla bir hissenin tarihi en yüksek değerini alabilirmiyim.

GetMarketData(Symbol, SymbolUpdateField.TarihiYuksek)

27.02.2024 13:22:00.992  :var x = GetMarketData(Symbol, SymbolUpdateField.TarihiYuksek); : 0
27.02.2024 13:22:00.993  : 
27.02.2024 13:23:05.651  :var x = GetMarketData(Symbol, SymbolUpdateField.TarihiYuksek); : 81
27.02.2024 13:23:05.652  : 

 

27.02.2024 13:24:08.903  :var x = GetMarketData(Symbol, SymbolUpdateField.TarihiYuksek); : 0
27.02.2024 13:24:08.906  : 
27.02.2024 13:25:20.036  :var x = GetMarketData(Symbol, SymbolUpdateField.TarihiYuksek); : 29.8
27.02.2024 13:25:20.036  : 

 

 

 

Algoritmik Trading kategorisinde (110 puan) tarafından
tarafından düzenlendi | 541 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Yüzeysel veride kayıt işlemi tamamlanmadan veri çekilmek istendiğinde 0 değeri döndürebilir. yüzeysel veriye kayıt oluştururken SubscribeToSymbolUpdateField() fonksiyonunu kullanmakta sadece ilgili alana kayıt oluşturacağı için performans açısından daha uygun olacaktır. Aşağıdaki gibi değerin 0 dan farklı olma koşulunu ekleyip deneyebilirsiniz.

 

public override void OnInit()
		{
			AddSymbol(Symbol, SymbolPeriod);
			WorkWithPermanentSignal(true);
			SendOrderSequential(true);

			SubscribeToSymbolUpdateField(Symbol,SymbolUpdateField.TarihiYuksek);
			SetTimerInterval(1);
		}
		
		decimal enYuksek=0;
		
		public override void OnTimer(){
			if(enYuksek==0){
				enYuksek=GetMarketData(Symbol,SymbolUpdateField.TarihiYuksek);
			}
		}
		
		public override void OnDataUpdate(BarDataCurrentValues bd){
			enYuksek=GetMarketData(Symbol,SymbolUpdateField.TarihiYuksek);
			if(enYuksek!=0){
				// yapılacak işlemler
			}
		}

 

Unblocked Games offering a wide range of experiences: action, puzzle, platform, racing, clicker mechanics, strategy, sports, even horror. https://unblocked1games.github.io
(16,369 puan) tarafından
9,897 soru
9,870 cevap
5,320 yorum
60,742 kullanıcı
Codi