[ÇÖZÜLDÜ] Göstergeler, farklı çalışma zaman çerçevesine sahip bir Göstergeden çağrıldıklarında/oluşturulduklarında düzgün şekilde başlatılmıyor. - sayfa 2

 
Alain Verleyen :

"Örnekleme başarısız" ifadesini tekrarlıyorsunuz, ancak bu kesin değil. Gösterge her durumda somutlaştırılır.

Sorun şu ki, veriler eşzamanlı olarak mevcut değil, onunla uğraşmak zorundasınız. Bu bir MT5 hatası DEĞİL, ÖZELLİKTİR.

Tartışmayı durdurmayı ve SD yanıtını beklemeyi öneriyorum.

Belki de, döngü ve bekleme sayısı ne olursa olsun, (*edit) OnCalculate(); öğesinin ilk geçişinden sonra gösterge verilerine (farklı TF'lerin) erişemeyeceğinizi doğru bir şekilde ifade edemedim.

Yanılmış olabileceğimi kabul etmeye tamamen hazırım, bu yüzden aksini gösterebilirseniz 10 dolarlık ödülüm var. Lütfen... yanıldığımı kanıtla. Bu aptal hata için bir geçici çözüme ihtiyacım var, üzgünüm, "özellik" demek istiyorum.

 
nicholishen :

Belki de, döngü ve bekleme sayısı ne olursa olsun, (*edit) OnCalculate(); öğesinin ilk geçişinden sonra gösterge verilerine (farklı TF'lerin) erişemeyeceğinizi doğru bir şekilde ifade edemedim.

Yanılmış olabileceğimi kabul etmeye tamamen hazırım, bu yüzden aksini gösterebilirseniz 10 dolarlık ödülüm var. Lütfen... yanıldığımı kanıtla. Bu aptal hata için bir geçici çözüme ihtiyacım var, üzgünüm, "özellik" demek istiyorum.

İlk "geçişte" neden buna ihtiyacınız var? Gerekli veriler mevcut değilse, olana kadar bekleyin, hepsi bu.
 
Alain Verleyen :
İlk "geçişte" neden buna ihtiyacınız var? Gerekli veriler mevcut değilse, olana kadar bekleyin, hepsi bu.

Çünkü aynı göstergeden (aynı sembol) farklı bir zaman diliminde verilere erişimi gerektiren bir gösterge geliştiriyorum. İkinci tıklamadan sonra işlemeyeceğinden, bu, göstergenin çevrimdışı çalışmayacağı ve yalnızca ikinci tıklama geldiğinde çalıştığı anlamına gelir.

Bu hata yüzünden neden taviz vermeliyiz? Onu bu kadar şiddetle savunacak ne var?

 
nicholishen :

Çünkü aynı göstergeden (aynı sembol) farklı bir zaman diliminde verilere erişimi gerektiren bir gösterge geliştiriyorum. İkinci tıklamadan sonra işlemeyeceğinden, bu, göstergenin çevrimdışı çalışmayacağı ve yalnızca ikinci tıklama geldiğinde çalıştığı anlamına gelir.

Bu hata yüzünden neden taviz vermeliyiz? Onu bu kadar şiddetle savunacak ne var?

???

Hiçbir şeyi savunmuyorum ve kesinlikle "öfkeyle" de değilim. Lütfen sakin kalın.

 
Alain Verleyen :

???

Hiçbir şeyi savunmuyorum ve kesinlikle "öfkeyle" de değilim. Lütfen sakin kalın.

ServiceDesk'e yazmanızı önerebilirim ve lütfen cevaplarını buradan bildirin.


TAMAM.

Bu işi, herhangi birinin bir çatlak almakla ilgilenmesi durumunda yayınladım.

https://www.mql5.com/en/job/57516

 
nicholishen :

Bu, verilerin bir komut dosyası veya EA için hemen kullanılabilir olması durumunda Gösterge için de eşit olarak kullanılabilir olacağı anlamına gelir (bunda olduğu gibi bir veri kullanılabilirliği sorunu değildir). Gösterge, OnCalculate() öğesinin ikinci geçişinden (diğer bir deyişle ilk tik) önce somutlaşamıyor

"Kullanılabilirlik" kelimesini tam anlamıyla anlıyorsunuz. Terminal belleğinde bazı veriler bulunabilse de, terminalin kendisi, temel veriler bir (muhtemelen başka) bir zaman dilimi için kontrol edilirken herhangi bir zaman dilimi için güncellemeleri engelleyen bazı senkronizasyon mantığı içerebilir. Veya bir göstergeden kendi oluşturma işlemini tamamlayana kadar veri isteklerini engelleyebilirler (lütfen, göstergelerin tutamaçlar tarafından yönetildiğini, oysa uzmanlar ve komut dosyalarının yönetmediğini unutmayın) ve bu bana mantıklı geliyor. Bunlar sadece MQ geliştiricilerinin bakış açısından yaptığım tahminler. Onlara doğrudan hizmet masası aracılığıyla sorabilirsiniz.

3. nokta nedeniyle işinizi başarmak imkansız:

3. Başlatmada arabelleğe erişmeli

Bu sadece terminal mimarisine ve belgelerine aykırıdır:

Gösterge verilerine, oluşturulduktan hemen sonra başvuramazsınız, çünkü gösterge değerlerinin hesaplanması biraz zaman alır.

Ayrıca lütfen CopyBuffer işlevi hakkında bilgi edinin:

Not

İndikatörden veri istenirken, istenilen zaman serileri henüz oluşturulmamışsa veya sunucudan indirilmesi gerekiyorsa , fonksiyon hemen -1 dönecek , ancak indirme/inşa etme işlemi başlatılacaktır.

Bir Expert Advisor veya scriptten veri talep edilirken, eğer terminal bu verilere yerel olarak sahip değilse sunucudan indirme başlatılır veya yerel geçmişten veri oluşturulabiliyorsa ancak gerekli bir zaman serisinin oluşturulması başlatılır. henüz hazır. İşlev, zaman aşımı süresinin dolması anına kadar hazır olacak veri miktarını döndürür .

Bu nedenle, uzmanlar ve komut dosyaları önceden tanımlanmış bir zaman aşımına kadar eşzamanlı olarak işlenir, ancak göstergeler - eşzamansız olarak.

Documentation on MQL5: Technical Indicators
Documentation on MQL5: Technical Indicators
  • www.mql5.com
Technical Indicators - Reference on algorithmic/automated trading language for MetaTrader 5
 
Özel görevinize gelince, başka bir şekilde kolayca yapılabilir. Göstergede gösterge oluşturan ve çevrimdışı çalışmasını isteyen ilk kişi siz değilsiniz. Bir zamanlayıcı kullanın.
 
Stanislav Korotky :
Özel görevinize gelince, başka bir şekilde kolayca yapılabilir. Göstergede gösterge oluşturan ve çevrimdışı çalışmasını isteyen ilk kişi siz değilsiniz. Bir zamanlayıcı kullanın.
denedim. Çalışmadı.
 
nicholishen :
denedim. Çalışmadı.
Örnek bir kodla daha spesifik bir soru gönderin. Buggy olabilir. Yaklaşım benim için çalışıyor.
 
Stanislav Korotky :
Örnek bir kodla daha spesifik bir soru gönderin. Buggy olabilir. Yaklaşım benim için çalışıyor.
Halihazırda sahip olduğumdan daha spesifik nasıl olabilirim anlamıyorum...

Hiçbir zamanlayıcı veya döngü, Oncalculate en az bir kez dönene kadar göstergenin başlatılmayacağı gerçeğinin üstesinden gelemez. Özyineleme de çalışmıyor.