Marketteki ürünlerin otomatik kontrolü (soru ve öneriler) - sayfa 6

 
Andrey Khatimlianskii :

Evet, gerçekten de "@global_initializations"ı unutmuşum.

Çizim çubuklarının ve gösterge arabelleklerinin çok fazla zaman aldığı ortaya çıktı?

Ve görselleştiriciyi aynı süre boyunca serbest bırakmak ve çalıştırmak için derlerseniz, sağa kaydırarak ("..'ye kadar atla"), ne kadar sürer?

Ne kadar?

 
Prostocar :
Merhaba, terminalimde pazar kayboldu, pazardan danışmanlar ve göstergeler yükleyemiyorum, terminali yeniden yüklemek yardımcı olmadı ve piyasada daha önce satın alınan ürünler güncellenmiyor, sorunun nasıl çözüleceğini kim bilebilir

Hala soruyu cevaplamadın:

Bunu terminalde, Araçlar penceresinde, "Günlük" sekmesinde kontrol edebilirsiniz.


İkinci soru: hangi sunucuya bağlanıyorsunuz? MetaQuotes-Demo'ya bağlanmayı deneyin.

 
MetaQuotes Software Corp. :

Otomatik doğrulayıcıdan alınan günlükler, M1 testinin bir saat içinde aylık bir aralığı geçemeyeceğini gösterdi.

H1'deyken aynı gösterge testi birkaç dakika içinde geçer.

Kodunuzda nedeni arayın.

Bunun yerine, neden otomatik doğrulayıcıda aranmalıdır. Sorunların bir şekilde kene tarihinin işlenmesiyle ilgili olduğunu bulmak mümkün oldu.

İlk OnCalculate olayını işlerken, gösterge, CopyTicksRange işlevini kullanarak çubuk çubuk ile son gün için onay geçmişini yüklemeye çalışır. Her çubuk en az birkaç onay alırsa, sonuç geçmişi çizilir ve ardından onaylar çevrimiçi olarak işlenir. Geçmişin bazı çubukları tek bir onay almadıysa, OnCalculate işleyicisi 0 döndürür ve 5 saniyelik bir zamanlayıcı başlatır. Aşağıdaki OnCalculate olaylarında gösterge, onay geçmişini indirmeye çalışmaya devam ediyor. OnTimer işleyicisinde, zamanlayıcı durur ve OnCalculate'e yapılan tüm çağrılar son 5 saniye içinde geçmişi yükleyemezse, ChartSetSymbolPeriod (0, NULL, 0) çağrılarak bir yenileme isteği yapılır.

Her şeyin asenkron olarak gerçekleştirildiğine ve mantıksal donmalar olmadığına dikkatinizi çekiyorum. En kötü durumda, işaret tabanının herhangi bir nedenle mevcut olmadığını varsayarsak, 5 saniyelik bir dizi yenileme elde ederiz. Ancak gösterge hiç hesaplanmadı, çünkü Veri yok. Yenilemelerin etkisi araştırıldı, değil - aşağıdaki nota bakın.

Bu kod benim için farklı sunucularda, farklı sembollerde/zaman dilimlerinde ve test cihazında çevrimiçi olarak iyi çalışıyor.

Aynı kod, sözde otomatik doğrulayıcıda bir yerde asılı kalıyor. Rastgele (iyi bir şekilde normal geri bildirim, günlükler vb. Olmaması gereken), aşağıdakileri buldum.

Günlük kene geçmişinin alındığını yorumlarsanız, gösterge otomatik doğrulamadan normal şekilde geçer.

Birçok geçmiş sorgu faktörü olduğundan, otomatik doğrulayıcının tam olarak ne ve hangi kombinasyonda "askıda kaldığını" söyleyemem:

  • CopyTicksRange, tarihsel kenelerin yokluğunda (nasıl yok olabilir? ama hiçbiri olmasa bile, gösterge hesaplanmaz, kontrolü hemen ortama geri verir, çevrimiçi keneler serbestçe "tıklamaya" devam eder, böyle bir durumu taklit ettim - donma yok);
  • zamanlayıcı;
  • ChartSetSymbolPeriod (stres testi olarak, göstergeyi aşırı modda (her tikte) bu yenileme ile çalıştırdım ve bu, CPU'da herhangi bir yavaşlamaya ve gözle görülür bir yüke yol açmıyor, bu istek de eşzamansız);
  • Belirli sayıda denemeden sonra onları durdurmak için başarısız bir yenileme sayacı ekledim (5), ancak bu başarıyı etkilemiyor.

OnTimer işleyicisinden bir yenileme istenirse, otomatik doğrulama başarısız olur. Yenileme OnCalculate'e aktarılırsa, otomatik doğrulama geçer. Bu nedenle, ChartSetSymbolPeriod'u OnTimer'dan çağırmanın olumsuz bir etkisi olduğuna dair dolaylı işaretler vardır. Bu kombinasyonu özellikle test cihazında çalıştırdım - sorun değil. Açıkçası, otomatik doğrulayıcı, halka açık test cihazından farklıdır.

Doğrulamayı geçmek için belirlenen koşullar çok net olmadığından (en azından garip) ve yazarak kodun yapay olarak karmaşıklaştırılmasını gerektirdiğinden, serbest bırakma ürünü için kabul edilemezler.

 
Tünaydın! Lütfen yardım edin, otomatik doğrulama sırasında bir göstergenin yokluğu hakkında bir hata veriyor, gösterge resus üzerinden ayarlanıyor, diğer terminallerde derlenen dosya hem testte hem de gerçek hayatta sorunsuz çalışıyor. Ne yanlış olabilir?
Dosyalar:
2yr38jvml4.png  32 kb
 
RODION SLOTIN :
Tünaydın! Lütfen yardım edin, otomatik doğrulama sırasında bir göstergenin yokluğu hakkında bir hata veriyor, gösterge resus üzerinden ayarlanıyor, diğer terminallerde derlenen dosya hem testte hem de gerçek hayatta sorunsuz çalışıyor. Ne yanlış olabilir?

Çift açılım ve tire kullanmamaya çalışın. Sadece hazırlıksız.

 
RODION SLOTIN :


Lütfen bana tam olarak nerede olduğunu söyle?

#resource "\\Göstergeler\\guru.ex4"

double SigUp= iCustom(Symbol(),0,"\\Experts\\SnowyOwl.v1-1.eng.ex4::Indicators\\guru.ex4",Sensitivity,PopUp_Alert,5,0);


Şu şekilde yazılmalıdır (örnek):

 #resource "\\Indicators\\trend_channel.ex4"

iCustom ( Symbol (), 0 , "::Indicators\\trend_channel.ex4" ,kstd,bars,shift, 0 ,bars);

ve saçma sapan şeyler yazmışsın

 
Orada, nedense, Kitaplıklar klasörü de günlükte belirtilir. Nedenmiş? Eugene, kaynağa erişim hakkında doğru bir şekilde yazdı. Yerel olarak bu şekilde çalışması gerekir (eğer tüm klasörler varsayılan olarak MQL4/Experts, MQL4/Indicators ise). Yerel başlatmayı düzelttiğinizde, büyük olasılıkla otomatik doğrulayıcıda çalışacaktır.
 

Merhaba.

Ürünümü Market'e yüklemeye çalışıyorum. Otomatik doğrulama aşağıdaki hatayı veriyor:

EURUSD üzerinde test,H1 (netleştirme) 2019.05.01 00:00:30 dizisi 'Anchored VWAP with no Volume.mq5' (387.30) aralığında değil Ancak bu olamaz. Başlangıç noktasının fare ile hareket ettiği VWAP'ı yayınlıyorum. Komut dosyası hatasız derlenir ve her şey yolunda gider. Belki de otomatik doğrulama, bir başlangıç noktası seçmeniz gereken komut dosyalarıyla etkileşime giremez?

Nedeni başka ne olabilir? Göstergenin bir seçeneği vardır - hacimlerle veya hacimsiz hesaplamak için. Varsayılan "yok"tur, ancak belki de doğrulayıcı tüm olası parametreleri inceler ve döviz çiftlerindeki hacimlerle hesaplamada tökezler. Ne yapalım?

 
Anton Polkovnikov :

Merhaba.

Ürünümü Market'e yüklemeye çalışıyorum. Otomatik doğrulama aşağıdaki hatayı veriyor:

EURUSD üzerinde test,H1 (netleştirme) 2019.05.01 00:00:30 dizisi 'Anchored VWAP with no Volume.mq5' (387.30) aralığında değil Ancak bu olamaz. Başlangıç noktasının fare ile hareket ettiği VWAP'ı yayınlıyorum. Komut dosyası hatasız derlenir ve her şey yolunda gider. Belki de otomatik doğrulama, bir başlangıç noktası seçmeniz gereken komut dosyalarıyla etkileşime giremez?

Nedeni başka ne olabilir? Göstergenin bir seçeneği vardır - hacimlerle veya hacimsiz hesaplamak için. Varsayılan "yok"tur, ancak belki de doğrulayıcı tüm olası parametreleri inceler ve döviz çiftlerindeki hacimlerle hesaplamada tökezler. Ne yapalım?

Derlenmiş dosyaları (hatta EX4/EX5) ve DLL'leri içe aktarmaya çalışmak

Market aracılığıyla dağıtılan programların kullanıcılar için güvenli olduğu garanti edilmelidir. Bu nedenle, derlenmiş EX4/EX5 dosyalarından DLL'leri veya işlevleri kullanma girişimi bir hata olarak kabul edilir. Bu tür ürünler Market'te yayınlanmayacaktır.

Programınızın dağıtıma dahil olmayan ek göstergeler kullanması gerekiyorsa,   Kaynaklar


iCustom() aracılığıyla özel göstergelere erişme

Programınız özel gösterge verilerine erişim gerektiriyorsa, gerekli tüm göstergeleri   Kaynaklar Market'ten alınan ürünler her türlü hazırlıksız ortamda çalışmaya hazır olmalıdır, bu nedenle ihtiyaç duydukları her şeyi EX4/EX5 dosyalarında içermelidir. Önerilen ilgili makaleler:


https://www.mql5.com/ru/articles/2555#dll_and_libraries_prohibited

 
Anton Polkovnikov :

EURUSD üzerinde test,H1 (netleştirme) 2019.05.01 00:00:30 dizisi 'Anchored VWAP with no Volume.mq5' (387.30) aralığında değil Ancak bu olamaz.

387. satırda 30. satırda dizi dışına çıkın. Aynısı yazılır. Diziyi kontrol etmemiz gerekiyor.