Hatalar, hatalar, sorular - sayfa 524

 
idispatch :
Ek olarak, zararı durdurarak kapatma, anladığım kadarıyla, test edenin sonuç raporunda (zarar veren ve karlı işlemlerin yüzdesinin burada olduğu) zarar eden işlemi ifade eder.
Kaybedilen işlemler, eksi işareti olan karlı işlemlerden farklıdır ve atamanın rengi, rapordaki işlemlerin dağılımını etkilemez.
 

Build 507'ye yükselttikten sonra test cihazında iki sorunum var:

1. Optimizasyon sırasında, test cihazı sekmelerini değiştirirken, terminal periyodik olarak (her zaman değil) çöküyor;

2. Optimize edilmiş parametre olarak bir numaralandırma seçilmişse , optimizasyon sonuçlarından birini çalıştırmaya çalışırken, Expert Advisor bu numaralandırmanın değerini görmez, yani. her zaman sıfırdır.

 
Diubakin :

Build 507'ye yükselttikten sonra test cihazında iki sorunum var:

1. Optimizasyon sırasında, test cihazı sekmelerini değiştirirken, terminal periyodik olarak (her zaman değil) çöküyor;

2. Optimize edilmiş parametre olarak bir numaralandırma seçilmişse , optimizasyon sonuçlarından birini çalıştırmaya çalışırken, Expert Advisor bu numaralandırmanın değerini görmez, yani. her zaman sıfırdır.

Lütfen maksimum ayrıntı ile hizmet masasına yazın.

Numaralandırmalarla ilgili bir optimizasyon sorunu olduğunu biliyoruz, ancak hatayı yeniden oluşturamıyoruz

 
Servis masasına yazdım...
 
Diubakin :
Servis masasına yazdım...

Başvurunuzu kabul ettim ve açıklayıcı sorular sordum

 

... Ve burada soru ortaya çıkıyor (retorik?) ...

Aynı değerlerin göstergesinde elbette aynı sonuçları veren birden fazla ek hesaplama vardır. Çözüm açık görünüyor: bir kez hesaplayın (geçmiş verilere ilk erişimde), her şeyi arabelleğe alın ve diğer durumlarda sakince bitmiş sonuçlara bakın. Ancak...

Göstergenin zaten düşünülemez sayıda tampon belleği vardır (tüm geçmişin hesaplanan verilerini birkaç farklı zaman diliminde depolamak için en az 10) - bunlara karşılık gelen başlangıçta hesaplanan veriler için zaten erişilir. Şimdi, teoride ve bir seçenek olarak, tampon sayısını ikiye katlamaya ihtiyaç var.

Tabii ki, her şey donanımın teknik parametrelerine bağlıdır: işlemcinin işlem gücü ve RAM miktarı. Ve sonra - kim kazanacak. Ancak, en yeni ev bilgisayarı değil, çok ortalama bir demir olarak ele alalım. Ve bu ve bu ne çok fazla ne de çok az. Hazırlıksız, tercih etmek zordur: ya belleği dağıtmak ya da bilgi işlem gücü.

Bu nedenle, bilgili halka bir soru: ne önerirsiniz? Belki de şu veya bu seçenek için hala argümanlar olacaktır... Veya hesaplanan gösterge arabelleklerini iki katına çıkararak belleği karıştırmayın, ancak işlemciyi ısıtın, her ihtiyaç duyulduğunda aynı şeyi hesaplayın veya tam tersi?

Teşekkür ederim.

 
x100intraday :

... Ve burada soru ortaya çıkıyor (retorik?) ...

...

Tabii ki, her şey donanımın teknik parametrelerine bağlıdır: işlemcinin işlem gücü ve RAM miktarı. Ve sonra - kim kazanacak. Ama hadi demiri çok ortalama bir tane olarak alalım - en yeni ev bilgisayarı değil. Ve bu ve bu ne çok fazla ne de çok az. Hazırlıksız, tercih etmek zordur: ya belleği dağıtmak ya da bilgi işlem gücü.

...

Yüzlerce dizi için gösterge yaptım ve hiçbir şey yapmadım, tavsiyem onu hafıza makinesine atmak (neyse ki şimdi pahalı değil).
 
x100intraday :

... Ve burada soru ortaya çıkıyor (retorik?) ...

Aynı değerlerin göstergesinde elbette aynı sonuçları veren birden fazla ek hesaplama vardır. Çözüm açık görünüyor: bir kez hesaplayın (geçmiş verilere ilk erişimde), her şeyi arabelleğe alın ve diğer durumlarda sakince bitmiş sonuçlara bakın. Ancak...

Göstergenin zaten düşünülemez sayıda tampon belleği vardır (tüm geçmişin hesaplanan verilerini birkaç farklı zaman diliminde depolamak için en az 10) - bunlara karşılık gelen başlangıçta hesaplanan veriler için zaten erişilir. Şimdi, teoride ve bir seçenek olarak, arabellek sayısını ikiye katlamaya ihtiyaç var.

Tabii ki, her şey donanımın teknik parametrelerine bağlıdır: işlemcinin işlem gücü ve RAM miktarı. Ve sonra - kim kazanacak. Ama hadi demiri çok ortalama bir tane olarak alalım - en yeni ev bilgisayarı değil. Ve bu ve bu ne çok fazla ne de çok az. Hazırlıksız, tercih etmek zordur: ya belleği dağıtmak ya da bilgi işlem gücü.

Bu nedenle, bilgili halka bir soru: ne önerirsiniz? Belki de şu veya bu seçenek için hala argümanlar olacaktır... Veya hesaplanan gösterge arabelleklerini iki katına çıkararak belleği karıştırmayın, ancak işlemciyi ısıtın, her ihtiyaç duyulduğunda aynı şeyi hesaplayın veya tam tersi?

Teşekkür ederim.

Alternatif olarak - neden ihtiyaçlarınız için veritabanlarını kullanmıyorsunuz? Hesapladık, yazdık .. zamanı geldi - en uygun haliyle çıkardık, kullanıyoruz.

Mimari çözüm, hesaplamaları ayırmaya ve sonuçların önbelleğe alınmasına izin verir.

 
Vladix :

Alternatif olarak - neden ihtiyaçlarınız için veritabanlarını kullanmıyorsunuz? Hesapladık, yazdık .. zamanı geldi - en uygun haliyle çıkardık, kullanıyoruz.

Mimari çözüm, hesaplamaları ayırmaya ve sonuçların önbelleğe alınmasına izin verir.

Bunu inkar etmiyorum, ancak her aramanın OnCalculate'de her tikte çalınacağı göz önüne alındığında, "zamanı geldi" ifadesi kulağa komik geliyor. Ya veritabanı tamamen RAM'de olmalı ya da diske yavaşça erişmeniz ve onu toz haline getirmeniz gerekecek. DBMS hakkında ne anlasam da...

Ancak MQL bir veritabanı sorgulama dili değil mi? Eğer öyleyse, o zaman diskten veritabanı ile çalışma zaten yapılıyor ve disk şimdilik canlı görünüyor. Burada yeni bir şey icat etmeye gerek yok.

Başka bir veritabanı ve ona erişmenin belirli (standart olmayan) bir yolunu kastediyorsanız, lütfen açıklayın. MQL5 etkileşiminin başka bir şeyle entegrasyonunu öneriyorsanız, bunu yapmak için benim için çok erken, MLQ çalışmaya yeni başladım ve gelişmiş bir kaynağa doğru ilerliyorum...

 

Çok sık sunucuyla bağlantı kopuyor. Aynı zamanda, gösterge sabit bir bağlantı gösterir:

Terminal geri bağlanmıyor. Manuel olarak oturum açmanız gerekiyor. Bunu MQL5 kullanarak programlı olarak yapmak mümkün müdür?