Çaydanlıktan gelen sorular - sayfa 108

 

testte sorun. EA'm bir csv dosyasından kalıp değerleri alıyor. Ticaret yaparken her şey çalışır, ancak test cihazında çalışmaz. csv dosyası nereye koyulur ve hangi klasör oluşturulur? Yardım

öyle yaptı

Dosya, MQL5\files alt klasöründeki (veya test durumunda test_agent_directory\MQL5\files) istemci terminal klasöründe açılır.

ama çalışmıyor ve test ajanı dizini nerede?

 
openlive :
testte sorun. EA'm bir csv dosyasından kalıp değerleri alıyor. Ticaret yaparken her şey çalışır, ancak test cihazında çalışmaz. csv dosyası nereye koyulur ve hangi klasör oluşturulur? Yardım
Sabit tester_file açıklaması için Referansa bakın
 
Yedelkin :
Sabit tester_file açıklaması için Referansa bakın

baktı, dosyayı Mql5\Tester\Files içine yerleştirdi

ama test cihazı hareketsiz duruyor

işte bilirkişi dosyası

Dosyalar:
 
openlive :

baktı, dosyayı Mql5\Tester\Files içine yerleştirdi

FileOpen() işlevinin açıklaması şöyle der: " Dosya, MQL5\files alt klasöründeki (veya test durumunda test_agent_directory\MQL5\files ) istemci terminal klasöründe açılır". Denemek:

a) tür dosyasının tam yolunu belirtin

 string filename= TerminalInfoString ( TERMINAL_DATA_PATH) + "\\MQL5\\Tester\\Files\\" + "file.csv" ;

b) dosyayı aracının dizinine itin.

Ben kendim bununla karşılaşmadım. Dosyalarla çalışmak için diğer işlevlerin açıklamasından, test durumunda dosyanın Mql5\Tester\Files içinde aranması gerektiği sonucu çıkar.

Ek. Evet, orada açık birkaç dosyanız var. Ve tester_file'da yalnızca bir tanesi belirtilir.

 
Yedelkin :

FileOpen() işlevinin açıklaması şöyle der: " Dosya, MQL5\files alt klasöründeki (veya test durumunda test_agent_directory\MQL5\files ) istemci terminal klasöründe açılır". Denemek:

a) tür dosyasının tam yolunu belirtin

b) dosyayı aracının dizinine itin.

Ben kendim bununla karşılaşmadım. Dizinde henüz test dosyasının nereye yerleştirilmesi gerektiğine dair doğrudan bir gösterge bulamadım.

Ek. Evet, orada açık birkaç dosyanız var. Ve tester_file'da yalnızca bir tanesi belirtilir.

a) yaptı - yardımcı olmadı

b) Nasıl yapacağımı bilmiyorum. Yalnızca MQL5\Tester\Files klasörüne sahibim ve test_agent_directory\MQL5\files ile hangi klasörün kastedildiğini çözemiyorum

 

İşte bulduğum bir tane daha: https://www.mql5.com/ru/forum/1111/page182#comment_31599 İki gönderiye bakın. Dosya \MQL5\Files içindeyse işe yaradı.

Peki, onu TerminalInfoString'deki ( TERMINAL_COMMONDATA_PATH ) paylaşılan bir klasöre taşımayı deneyebilirsiniz. Ve dosyayı açarken FILE_COMMON bayrağını ayarlayın.

 

Yedelkin :

İşte bulduğum bir tane daha: https://www.mql5.com/ru/forum/1111/page182#comment_31599 İki gönderiye bakın. Dosya \MQL5\Files içindeyse işe yaradı.

Peki, onu TerminalInfoString'deki ( TERMINAL_COMMONDATA_PATH ) paylaşılan bir klasöre taşımayı deneyebilirsiniz. Ve dosyayı açarken FILE_COMMON bayrağını ayarlayın.

dosyayı C:\ProgramData\MetaQuotes\Terminal\Common\Files içine yerleştirin, FILE_COMMON bayrağını ayarlayın

Yine de test cihazı sessizdir.

Yapılacak başka ne var bilmiyorum

 

Onlar. Dosyayı Mql5\Tester\Files, Mql5\Files içinde veya istemci terminallerinin paylaşılan klasöründe bulamıyor musunuz?

Çıktı ile birlikte bir FileIsExist() denetimi sağlayın.

Program tarafından kullanılan dosyaların geri kalanı tester_file kullanılarak mı kaydedildi?

Ana soruyla ilgili olmayan bir not. Sen

 int handle16= FileOpen ( "signal10000.csv" , FILE_WRITE | FILE_CSV , ";" );
int handle17= FileOpen ( "signal10000.dat" , FILE_WRITE | FILE_BIN , ";" ); 
int handle= FileOpen (filename, FILE_READ | FILE_CSV , ";" );

vb.

her tikte çağrılır. Bu çok zahmetli. Özel bir neden yoksa, dosya tanıtıcısı OnInit() işlevinde alınmalı, geçersizlik açısından kontrol edilmeli ve ardından FileOpen() işleviyle değil, açık dosya tanıtıcısıyla çalışmalıdır.

Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - Документация по MQL5
 
Yedelkin :

Onlar. Dosyayı Mql5\Tester\Files, Mql5\Files içinde veya istemci terminallerinin paylaşılan klasöründe bulamıyor musunuz?

Çıktı ile birlikte bir FileIsExist() denetimi sağlayın.

Program tarafından kullanılan dosyaların geri kalanı tester_file kullanılarak mı kaydedildi?

Ana soruyla ilgili olmayan bir not. Sen

vb.

her tikte çağrılır. Bu çok zahmetli. Özel bir neden yoksa, dosya tanıtıcısı OnInit() işlevinde alınmalı, geçersizlik açısından kontrol edilmeli ve ardından FileOpen() işleviyle değil, açık dosya tanıtıcısıyla çalışmalıdır.

dosyalar aslında her tik olarak adlandırılmaz... yeni bir çubuk için bir kontrol vardır. ama yine de teşekkürler düzelteceğim

Şimdi FileIsExist()'i deneyeceğim

 
openlive :

dosyalar aslında her tik olarak adlandırılmaz... yeni bir bar için bir kontrol vardır. ama yine de teşekkürler düzelteceğim

Evet, yakından bakmadım. Ama konuyu doğru anladın :)