Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 534

 
MikeZv :

Vladimir, ilk soruyu yanıtladığın için teşekkürler, bu işlevleri kaçırdım.

Aynı göstergeyi MT4 ve MT5'e de koydum (tabii ki kod her platform için uyarlanmıştır).
Sıfır çubuğuna kadar aynı değerlere sahipler yani bir uçtan görülüyor... :)
Ve MT4'teki mevcut çubuktaki hesaplamayı kapattığınızda, MT5'te mevcut çubuğun altına hiçbir şey çizilmez - yanlış değerler.

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Yeni Başlayanlardan Sorular

Karputov Vladimir , 2016.03.08 15:13

... hata ayıklama zamanını kontrol edin - timeseries dizisinde hangi değer bulunur time[i] - böylece çubukları hesaplamaya hangi uçtan başladığınızı ve nerede "sıfır" bir çubuğun olduğunu anlayacaksınız.


 
MikeZv :
Ve böyle bir çek nasıl yapılır?

MetaEditore'da bir kesme noktası ekleyin ve hata ayıklamaya başlayın. Kesme noktasında bir mola olduğunda, saate time[0] ekleyin:

hata ayıklama

 
Karputov Vladimir :

MetaEditore'da bir kesme noktası ekleyin ve hata ayıklamaya başlayın. Kesme noktasında bir mola olduğunda, saate time[0] ekleyin:


Çıktıyı koda zaten ekledim

MT4 2016.03.08 18:37:04.710 mvt_Vlt EURUSD,H1: time[0] = 2016.03.08 17:00:00 time[rates_total-1] = 1971.01.04 00:00:00

MT5 2016.03.08 18:36:23.565 mvt_Vlt (EURUSD,H1) zamanı[0] = 2010.01.04 00:00:00 zamanı[rates_total-1] = 2016.03.08 17:00:00

MT5 koduna ArraySetAsSeries eklendi (zaman, doğru);
Şimdi çıktı:

MT5 2016.03.08 18:45:05.402 mvt_Vlt (EURUSD,H1) saat[0] = 2016.03.08 17:00:00 saat[rates_total-1] = 2010.01.04 00:00:00

Fiyat dizileri de yapabilir misiniz?


 
MikeZv :
Çıktıyı koda zaten ekledim

MT4 2016.03.08 18:37:04.710 mvt_Vlt EURUSD,H1: time[0] = 2016.03.08 17:00:00 time[rates_total-1] = 1971.01.04 00:00:00

MT5 2016.03.08 18:36:23.565 mvt_Vlt (EURUSD,H1) zamanı[0] = 2010.01.04 00:00:00 zamanı[rates_total-1] = 2016.03.08 17:00:00
Ve şimdi ne yapmalı?

Göstergenin her iki sürümüne de ArraySetAsSeries ekleyin - hesaplamalarınız için kullandığınız diziler için: yüksek[], düşük[] ve geçici olarak zaman[] dizisi - bu, "sıfır" çubuğunun nerede olduğunu anlamanıza yardımcı olacaktır. Böylece, her iki versiyondaki "sıfır" çubuğu grafiğin aynı tarafında olacak (sağda veya solda - ArraySetAsSeries'de ne ayarladığınıza bağlı olarak) ve göstergenin aynı hesaplanmış kısmını alacaksınız.

Eklendi: Ben yazarken doğru yolu buldunuz :)

 
Karputov Vladimir :


Eklendi: Ben yazarken doğru yolu buldunuz :)

Yolu el yordamıyla aradım ama yine de yanlış kabul ediliyor. :)
MT5 koduna eklendi:
   ArraySetAsSeries (ExtCalcVlBuffer, true ); 
   ArraySetAsSeries (ExtMovingBuffer, true );
   ArraySetAsSeries (ExtStdDevBuffer, true );
   ArraySetAsSeries (time, true );             
   ArraySetAsSeries (low, true );              
   ArraySetAsSeries (high, true ); 

Çıktılar:

Bu yalnızca ExtCalcVlBuffer'ı görüntüler, ancak ortalama ve sapmayı hesaplamaz ...
Ve yine de, olmamasına rağmen, mevcut çubukta görüntüleniyor.

 
MikeZv :
...

Ve olmamasına rağmen hala geçerli çubukta görüntüleniyor.

Neden olmasın?
 
Karputov Vladimir :
Neden olmasın?
Kapattım i<rates_total-1
 
MikeZv :
Kapattım i<rates_total-1
NİYE YA?!
 
Karputov Vladimir :
NİYE YA?!
Ve mevcut olana güvenmenize gerek yok, işlemciyi yüklemek boşuna ve bu değere ihtiyacınız yok.
 
MikeZv :
Ve mevcut olana güvenmenize gerek yok, işlemciyi yüklemek boşuna ve bu değere ihtiyacınız yok.

Bu yüzden hemen böyle bir İstek Listesi belirlemeniz gerekiyor :).

Durum aşağıdaki gibidir - grafikte bir çubuk varsa , gösterge arabelleğindeki bir hücre buna karşılık gelir. Siz bu hücreye bir şeyler yazana kadar çöpler bu hücrede depolanacaktır.