Скачать MetaTrader 5

Мультивалютное тестирование. мт5

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Заведи свой торговый сигнал и подключи мониторинг счета!
Alexey Oreshkin
3951
Alexey Oreshkin 2015.11.12 16:21 

1. Автоматически, роботом, подготовил файл test.txt. В нём перечислены валютные пары которые я хочу чтобы участвовали в мультивалютном тестировании. Так выглядит файл:


2. В роботе написал:  #property tester_file "test.txt"
3. Запускаю тестер и вижу следующее:



В маркетвотч евробакс есть, но только потому что робота запустил на этой паре. Если стартануть робота на любой другой паре, то евробакса в маркетвотч не будет. Путём экспериментов понял что эта ошибка возникает всегда на той паре, которая в файле test.txt стоит самой первой(верхней). В логах написано что файл test.txt добавлен и ошибок никаких нет.
Подозреваю что где то туплю, но не могу понять где. Поможите люди добрые и знающие.

Вот код робота:

#property tester_file "test.txt"

int   fh;

int OnInit()
  {
   fh=FileOpen("test.txt",FILE_READ|FILE_CSV);        
   FileSeek(fh,0,SEEK_SET);
   while(!FileIsEnding(fh)) SymbolSelect(FileReadString(fh),true); 
   FileClose(fh);
        
   return(INIT_SUCCEEDED);
  }

void OnTick()
  {            
      int total=SymbolsTotal(true);
      string txt="Всего символов: "+(string)total;
      MqlTick tick={0};      
      for(int i=0;i<total;i++){
         string smb=SymbolName(i,true);         
         SymbolInfoTick(smb,tick);
         txt=txt+"\n"+smb+": bid: "+DoubleToString(tick.bid,5);
      }
      Comment(txt);
  }
//+------------------------------------------------------------------+
Файлы:
test.txt 1 kb
Alexey Oreshkin
3951
Alexey Oreshkin 2015.11.12 22:23  
Неужели никто не знает?
Вообщем решения пока так и не найдено, но было и есть подозрение что, что-то пишется в файл не совсем верно, может есть какие то скрытые символы, хз прям. пробовл и FILE_ANSI и FILE_UNICODE - разницы никакой. Если символ несуществующий то он просто не добавляется в маркетвотч и всё, а тут именно ошибка постоянная.
Пошёл другим путём - создал не текстовый, а бинарный файл, проблема исчезла, но с бинарниками работать не так удобно. Пожалуй пока на этом и остановлюсь.
Igor Konyashin
3110
Igor Konyashin 2015.11.13 01:13  

Alexey Oreshkin:

Путём экспериментов понял что эта ошибка возникает всегда на той паре, которая в файле test.txt стоит самой первой(верхней).


Просмоторщик в Windows Commander говорит что файл юникодовский - в начале два служебных символа:


Думаю, надо попробовать перевести файл в обычный текстовый: открыть виндозовским блокнотом, выбрать "Файл -> Сохранить как", и в окне ввода имени файла выбрать кодировку ANSI.

Igor Konyashin
3110
Igor Konyashin 2015.11.13 01:19  
Alexey Oreshkin:
пробовал и FILE_ANSI и FILE_UNICODE - разницы никакой. Если символ несуществующий то он просто не добавляется в маркетвотч и всё, а тут именно
Есть еще флаг FILE_TXT. С ним пробовал?
Alexey Oreshkin
3951
Alexey Oreshkin 2015.11.13 10:21  
Igor Konyashin:
Есть еще флаг FILE_TXT. С ним пробовал?
Нет, с этим флагом не пробовал. сейчас гляну, но то что вначале должны быть левые символы - всё об этом и говорило, правда я их не видел сам.
пс: попробовал. разницы никакой. Вообщем уже всё переделал на бинарник и там всё отлично работает.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий