Hatalar, hatalar, sorular - sayfa 3029

 
Igor Makanu :

bu, göstergelerde düzgün çalışmamalıdır:

yanılmıyorsam, yardım, tüm zaman dilimleri için veri yüklemek için komut dosyasının bir ayrıştırmasını içerir ve göstergenin çalışması nedeniyle göstergeden geçmiş verileri bu şekilde talep edemeyeceğinize dair bir uyarı olmalıdır. asenkron olarak

Evet ve tutamacı bağladıktan sonra BarsCalculated() öğesinin bir kez kullanılması önerilir


UPD: takas geçmişi ve göstergelerde neden çalışmadığının açıklaması için komut dosyası: https://www.mql5.com/ru/docs/series/timeseries_access

Bu makale yalnızca, göstergedeki bir zaman dizisinden veri istemenin (veya bir döngüde SeriesInfoInteger isteme) istenmediğini söylüyor.


Güncellemeye neden olan gösterge ile aynı periyoda sahip bir zaman serisini güncellemek için bir istek göndermenin son derece istenmeyen olduğunu hatırlayın. veriler, göstergenin çalıştığı akışla aynı şekilde güncellenir. Bu nedenle, bir perçin olasılığı yüksektir."


Sadece SeriesInfoInteger'ı talep edersek ve yanlışsa, OnCalculate'den çıkarsak, buraya nasıl bir perçin gelebilir?

 

Herkese soru:

https://www.mql5.com/en/docs/series/timeseries_access yardımında şöyle diyor:

"Zaman dizilerinden herhangi bir veriyi kopyalayan fonksiyonları çağırırken, başlangıç parametresinin (fiyat verisini kopyalamaya başlayacağı çubuk numarası) her zaman terminalin mevcut geçmişinde olması gerektiğini unutmayın. Sadece 100 çubuğumuz varsa , o zaman indeks 500 olan çubuktan başlayarak 300 çubuğu kopyalamaya çalışmanın bir anlamı yoktur. Böyle bir istek hatalı olarak algılanacak ve işleme alınmayacaktır, yani ticaret sunucusundan hiçbir geçmiş yüklenmeyecektir."

CopyTime'ın -1 döndüreceği anlaşılabilir, ancak - bar sunucusundan 800'e (500+300) kadar bir zaman serisi / takas oluşturmak için sürecin kendisi başlatılacak mı?

Lütfen söyle.

Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
  • www.mql5.com
Организация доступа к данным - Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
mktr8591 :


1. Bu makale yalnızca bir göstergedeki bir zaman dizisinden veri istemenin (veya bir döngüde SeriesInfoInteger isteme) istenmediğini söylüyor.


Güncellemeye neden olan gösterge ile aynı periyoda sahip bir zaman serisini güncellemek için bir istek göndermenin son derece istenmeyen olduğunu hatırlayın. veriler, göstergenin çalıştığı akışla aynı şekilde güncellenir. Bu nedenle, bir perçin olasılığı yüksektir."


2. Eğer sadece SeriesInfoInteger'ı talep ederseniz ve eğer yanlışsa OnCalculate'den çıkarsanız, o zaman buraya nasıl bir perçin gelebilir?

1. Evet, çünkü gösterge akışını yavaşlatmak imkansızdır, çünkü senkronizasyon durumu için bir talep geçmiş sayfalamaya yol açacaktır, ancak bekleyemezsiniz.

2. Doğru. Veri hazır değilse, oncalk basitçe çıkacaktır ve senkronizasyon terminali başlayacaktır, ancak gösterge akışı yavaşlamayacaktır. Sonraki oncalc, yalnızca veriler hazır olduğunda ve istenen gösterge tam olarak hesaplandığında tamamen ve frensiz olarak yürütülebilir. Kodun yukarısına, istenen göstergenin her zaman hazır olmadığını gösteren bir baskı ekledim, ancak tüm göstergelerin en hızlı hesaplanması için, her tikte değil, yalnızca bir kez yeni bir çubuk hesaplamayı göze alabiliriz.

 
Andrey Dik :

Teşekkür ederim.

ayrıca soruma bakın: https://www.mql5.com/ru/forum/1111/page3028#comment_22557528

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2021.05.28
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 

Andrey Dik :

yukarıdaki koda bakın,

Kodunuzu düzeltin, çıktı ekleyin

   if ( SeriesInfoInteger ( Symbol (), OldTF, SERIES_SYNCHRONIZED ))
   {
     if ( iBars ( Symbol (), OldTF) != BarsCalculated (Handle))
     {
       Print ( "Баров " , iBars ( Symbol (), OldTF));
       Print ( "посчитано" , BarsCalculated (Handle));
       return 0 ;
     }
   }
   else
   {
     Print ( "Период " , OldTF, " не синхронизирован." );
     return 0 ;
   }

ve hamamböceklerinizi gördüğünüzde, monitörü bir tüpe sarın ve itin ... nerede olduğunu biliyorsunuz.

 
mktr8591 :

Teşekkür ederim.

ayrıca soruma bakın: https://www.mql5.com/ru/forum/1111/page3028#comment_22557528

Bu konuda %100 emin değilim (kontrol etmeniz gerekiyor), istenen tarihin sunucudaki ilk tarihten daha taze olduğundan emin olun, veri talep edebilirsiniz, geçmiş pompalanacaktır.

 
Andrey Dik :

Bu konuda %100 emin değilim (kontrol etmeniz gerekiyor), istenen tarihin sunucudaki ilk tarihten daha taze olduğundan emin olun, veri talep edebilirsiniz, geçmiş pompalanacaktır.

Teşekkürler,

Diğer yazımı sordum, tekrar link: https://www.mql5.com/en/forum/1111/page3028#comment_22557528

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2021.05.28
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 
Alexey Viktorov :

Kodunuzu düzeltin, çıktı ekleyin

ve hamamböceklerinizi gördüğünüzde, monitörü bir tüpe sarın ve itin ... nerede olduğunu biliyorsunuz.

Sözlerimi onaylıyorsun, yoldaş.

 
mktr8591 :

Teşekkürler,

Diğer yazımı sordum, tekrar link: https://www.mql5.com/en/forum/1111/page3028#comment_22557528

Kodunuzu tam olarak anlamadım. "dönüş 0"dan sonra ne olmalı; OnCalculate'e bir sonraki çağrıda?

0 döndürürüz, böylece henüz hiçbir şey hesaplamadığımızı ve bir sonraki çubukta ön hesaplamanın 1 artmayacağını beyan ederiz.

yani, geri dönene kadar daha yüksek TF'den veri istemeye başladığımız çubukta olacağız(rates_total)

 
Andrey Dik :

Sözlerimi onaylıyorsun, yoldaş.

1. Herkese teşekkürler - Göstergelerde biraz daha okuryazar oldum)))

2. Andrey, eğer biri senin uydurmalarını anlamıyorsa (ben dahil), o zaman bunun tek bir anlamı var: Resmi doğru çizmiyorsun! Daha doğrusu - birçok kişinin anlamadığı şekilde çiziyorsunuz ...