Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Насколько я понял, речь о файле-семафоре.
Все так. Но нужно понять как изначально в платформу заложена работа с общим между агентом файлами. 3 часа читаю доки, но не врублю...
Справочник MQL5 -> Программы MQL5 -> Тестирование торговых стратегий
По умолчанию все файловые операции в языке MQL5 производятся в пределах "файловой песочницы" и при тестировании эксперту доступна только собственная "файловая песочница". Для того чтобы индикатор и эксперт при тестировании работали с файлами из одной папки, использовался флаг FILE_COMMON. Пример кода из эксперта:
//--- откроем файл
file=FileOpen(filename,FILE_WRITE|FILE_CSV|FILE_COMMON,";");
//--- проверим успешность операции
if(file==INVALID_HANDLE)
{
PrintFormat("Не удалось открыть на запись файл %s. Код ошибки=%d",filename,GetLastError());
return;
}
else
{
//--- сообщим о записи в общую папку всех клиентских терминалов и ее местоположение
PrintFormat("Файл будет записан в папке %s",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
}
В индикаторе для чтения данных также использовался флаг FILE_COMMON, это позволило избежать переноса необходимых файлов вручную из одной папки в другую.
//--- откроем файл
int file=FileOpen(fname,FILE_READ|FILE_CSV|FILE_COMMON,";");
//--- проверим успешность операции
if(file==INVALID_HANDLE)
{
PrintFormat("Не удалось открыть на чтение файл %s. Код ошибки=%d",fname,GetLastError());
return;
}
else
{
//--- сообщим местонахождение общей папки всех клиентских терминалов
PrintFormat("Файл будет прочитан из папки %s",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
}