Çaydanlıktan gelen sorular - sayfa 229

 
Rosh :

#property tester_file özelliği, tutamaçlarla hiçbir yere hiçbir şey koymamanızı sağlamak için özel olarak tasarlanmıştır.

tester_file

sicim

Uzantı dahil, çift tırnak içine alınmış (sabit bir dize olarak) test cihazı için dosyanın adı. Belirtilen dosya iş için test cihazına aktarılacaktır. Gerekirse test için giriş dosyaları her zaman belirtilmelidir


Program, terminal_directory\MQL5\ Files klasöründe bulunan datafile.csv verisine sahip bir dosya gerektiriyorsa, dosya test cihazı tarafından otomatik olarak test_agent_directory\MQL5\Files klasörüne aktarılacaktır (bunun için #property tester_file datafile . csv gereklidir).

Aynı şey, test dosyası terminalin paylaşılan klasöründeyken de geçerli mi?

Koda bir satır eklersem:

 #property tester_file "Test.txt"

...sonra şu hatayı alıyorum:


//---

Bir terminal paylaşımlı klasöründen buluta bir dosya yüklemek istiyorum. Nasıl yapılır?

 
tol64 :

Aynı şey, test dosyası terminalin paylaşılan klasöründeyken de geçerli mi?

Koda bir satır eklersem:

...sonra şu hatayı alıyorum:


//---

Bir terminal paylaşımlı klasöründen buluta bir dosya yüklemek istiyorum. Nasıl yapılır?

Bence bu zaten tartışıldı ve şimdiye kadar dosyaların buluta aktarılamayacağı öğrenildi.
 
lazarev-dm :


Bence bu zaten tartışıldı ve şimdiye kadar dosyaların buluta aktarılamayacağı öğrenildi.

O zaman bu konuyu tartışmak için bir bağlantıya ihtiyacınız var. Nerede tartışıldı?

Ben kendim geçmiş bazı tartışmalardan ve şu makaleden yola çıkıyorum: MQL5 Cloud Network hesaplamaları hızlandırıyor ama bir şeyler yolunda gitmiyor.

"Başlat" düğmesine basıyorsunuz ve optimizasyon işlemi başlıyor. Terminal, test aracıları için aşağıdakileri içeren bir görev hazırlar:

  • EX5 olarak derlenmiş EA dosyası;
  • #property tester_indicator ve #property tester_library yönergeleri ile bağlanan göstergeler ve EX5 kitaplıkları (bulutta DLL'ler kesinlikle yasaktır);
  • #property tester_file yönergesinde bulunan test için gerekli veri dosyaları;
  • test/optimizasyon koşulları (finansal aracın adı, test aralığı, simülasyon modu, vb.);
  • ticaret ortamı (karakter özellikleri, ticaret koşulları vb.);
  • gerekli geçişlerin tamamını oluşturan bir dizi uzman parametresi - görevler.

MetaTrader 5 terminali, MQL5 Bulut Ağının düğümleriyle iletişim kurar ve her bir düğüme belirli geçişleri gerçekleştirmesi için ayrı bir görev grubu verir. Her düğüm aslında bir proxy sunucusudur, çünkü bir görev ve bir dizi görev (tek geçiş) alır ve bundan sonra bu görevleri kendisine bağlı aracılar arasında dağıtmaya başlar. Aynı zamanda uzmanların dosyaları, göstergeler, kütüphaneler ve veri dosyalarının kendileri MQL5 Cloud Network sunucularının sabit disklerine kaydedilmez.

//---

Dosyayı optimizasyon için terminalin yerel klasörüne taşıdı. Bu durumda yukarıdaki hata oluşmaz. Tüm modlarda ve optimizasyonda testler iyi gidiyor, ancak bulutta optimizasyonu etkinleştirmeye çalıştığınızda günlük aşağıdaki mesajlarla dolar:

//---

Ve bazen sıfır optimizasyon sonuçları gelir. Oldukça uzun bir süre bekledim (on dakika), ama hiçbir şey olmuyor.

//---

Sonuç olarak, birçok sembol için buluttaki optimizasyonun "mevcut olmadığını" (çok para birimli EA) öğrendim. Sembol listesini manuel olarak değiştirmeye çalıştım ve bu sembolleri eklerseniz optimizasyonun başlamadığı ortaya çıktı (2010'dan günümüze):

NZDUSD,GBPUSD,EURJPY,EURGBP

Listeden çıkarılır çıkarılmaz her şey çalışmaya başlar. Ama erken sevinmiştim. Tarih sayısını arttırdığım anda yine aynı durum (sıfır sonuç). Uzman, şu kadar bellek kullanır:

//---

Nereye bakmalı, ne yapmalı?

 
tol64 :

O zaman bu konuyu tartışmak için bir bağlantıya ihtiyacınız var. Nerede tartışıldı?

Ben kendim geçmiş bazı tartışmalardan ve şu makaleden yola çıkıyorum: MQL5 Cloud Network hesaplamaları hızlandırıyor ama bir şeyler yolunda gitmiyor.

//---

Dosyayı optimizasyon için terminalin yerel klasörüne taşıdı. Bu durumda yukarıdaki hata oluşmaz. Tüm modlarda ve optimizasyonda testler iyi gidiyor, ancak bulutta optimizasyonu etkinleştirmeye çalıştığınızda günlük aşağıdaki mesajlarla dolar:

//---

Ve bazen sıfır optimizasyon sonuçları gelir. Oldukça uzun bir süre bekledim (on dakika), ama hiçbir şey olmuyor.

//---

Sonuç olarak, birçok sembol için buluttaki optimizasyonun "mevcut olmadığını" (çok para birimli EA) öğrendim. Sembol listesini manuel olarak değiştirmeye çalıştım ve bu sembolleri eklerseniz optimizasyonun başlamadığı ortaya çıktı (2010'dan günümüze):

NZDUSD,GBPUSD,EURJPY,EURGBP

Listeden çıkarılır çıkarılmaz her şey çalışmaya başlar. Ama erken sevinmiştim. Tarih sayısını arttırdığım anda yine aynı durum (sıfır sonuç). Uzman, şu kadar bellek kullanır:

//---

Nereye bakmalı, ne yapmalı?

Bir Uzman Danışmanın çalışmasında kullanmak üzere terminal dosyalarını ve klasörlerini bir şekilde diğer bilgisayarlara gönderebileceğinizi doğru anlıyor muyum?
 
lazarev-dm :
Bir Uzman Danışmanın çalışmasında kullanmak üzere terminal dosyalarını ve klasörlerini bir şekilde diğer bilgisayarlara gönderebileceğinizi doğru anlıyor muyum?
Evet, dosya terminalin paylaşılan klasöründe değilse bulutta kullanılabilir.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5
 
tol64 :

... Tüm modlarda ve optimizasyonda testler iyi gidiyor, ancak bulutta optimizasyonu etkinleştirmeye çalıştığınızda, günlük aşağıdaki mesajlarla dolar:

...

Günlükte bir hata yanıp söndü: geçmiş gönderme hatası

Tarihi olan bir şey. Bu durumda ne yapılmalı? 2000 yılından itibaren birçok karakter üzerinden parametreleri optimize etmek istiyorum.

 
lazarev-dm :

OnInit işlevi için değişken bildirimini çıkarın ve bool değerini atayın - her şey hem test cihazında hem de hata ayıklamada benim için çalıştı

Bu bölümde sık sık böyle "faydalı" tavsiyeler veriyor musunuz? Ve benim yerimde yeni biri olsaydı, böyle bir tavsiyeden sonra, böyle bir tavsiyeden sonra, bir yarım yıl daha sövenin nerede olduğunu arardı :)

Bool türü, sayısal gösterimi sırasıyla 1 veya 0 olan true (true) veya false (false) mantıksal değerlerini depolamak için tasarlanmıştır .

Onlar. 0 veya 1'i bilerek bir değişken yaparsınız ve sonra onu negatif bir sayı ile karşılaştırır ve her şeyin çalıştığı sonucuna varırsınız.

Soru geçerlidir - bu kod neden test cihazında çalışmayı reddediyor:

 int OnInit ()
  {
int cl_ctx;
if ((cl_ctx=CLContextCreate(CL_USE_ANY))==- 1 )
  {
     Print ( "OpenCL not found! Err: " , GetLastError ());
     return (- 1 );
  }
Print ( "Ok!!!" );
return ( 0 );
  }

void OnTick () {} 
 
MigVRN : bu kod neden test cihazında çalışmayı reddediyor:

Hangi hatayı döndürür?

OpenCL'i anlamıyorum, ancak bir şekilde OpenCL ve bir test cihazı hakkında bir konu gözüme çarptı. Belki de test cihazı bu özelliği desteklemiyor? OpenCL konusuna bakın: MQL5'te dahili uygulama testleri

 
Yedelkin :
Hangi hatayı döndürür?

Bu sürümde - 0 :)

OpenCL bulunamadı! Hata: 0
 
Yedelkin :

OpenCL'i anlamıyorum ama bir şekilde OpenCL ve bir test cihazı hakkında bir konuya rastladım. Belki de test cihazı bu özelliği desteklemiyor? OpenCL konusuna bakın: MQL5'te dahili uygulama testleri

Burada işe yaradığını söylüyorlar.