ну а расширение файла-то почему .xls, раз .csv создаете
и разделитель не обязательно устанавливать. по умолчанию ; будет
Друзья, помогите, плз. Никак не могу разобраться. Хочу, чтобы робот в тестере стратегий записывал в файл csv для статистической обработки информацию по совершенным сделкам: тип ордеров (покупка, продажа), цены открытия, цены закрытия, минимумы цены с открытия до закрытия, максимумы цены с открытия до закрытия.
Но файл не создается.
Что неправильно в коде? Или я не там ищу файл (каталог данных/ MQL4/ эксперты/) ? Вообще-то и поиском его искали везде - нигде не нашли.
Думал, что дело в том, что записываются только данные массивов. Но вообще-то и вот этот код (нашел в интернете) файл при тестировании не создает:
Как правильно написать код, записывающий в файл нужные данные?
Не там, он в MQL4\files
Как сказал Максим, расширение должно быть .csv. Вообще говоря, оно может быть любым, но потом Exel не сможет импортировать.
Вот мой код для создания и записи
int LogFileAllOrders = -1; // пишет ордера по всем символам bool OpenLogFiles() { string LogFileName; if(EnableLogAllOrders) { if(LogFileAllOrders > 0) FileClose(LogFileAllOrders); if(IsRunOnTester()) // если работаем в тестере { LogFileName = MQLInfoString(MQL_PROGRAM_NAME) + "_AllOrders" + "_Testing.ord"; LogFileAllOrders = FileOpen(LogFileName, FILE_CSV | FILE_WRITE, ','); } else { LogFileName = MQLInfoString(MQL_PROGRAM_NAME) + "_AllOrders" + ".ord"; LogFileAllOrders = FileOpen(LogFileName, FILE_CSV | FILE_READ | FILE_WRITE | FILE_SHARE_READ | FILE_SHARE_WRITE, ','); } if(LogFileAllOrders == INVALID_HANDLE) Alert("Не могу открыть лог-файл " + LogFileName); else { Print(LogFileName + " is opened"); FileSeek(LogFileAllOrders, 0, SEEK_END); } } } /* write message to log-file */ void WriteMsg(string msg0, int cmd, int orderTicket, string orderSymbol, string msg1) { string dts = TimeToStr(TimeCurrent(), TIME_DATE | TIME_MINUTES | TIME_SECONDS); string op; switch (cmd) { case OP_BUY: op = "BUY"; break; case OP_SELL: op = "SELL"; break; case OP_BUYLIMIT: op = "BUYLIMIT"; break; case OP_BUYSTOP: op = "BUYSTOP"; break; case OP_SELLLIMIT: op = "SELLLIMIT"; break; case OP_SELLSTOP: op = "SELLSTOP"; break; default: op = "NONE"; break; } if (LogFileAllOrders> 0) FileWrite(LogFileAllOrders, dts, " " + msg0, " Ticket= " + IntegerToString(orderTicket), " " + op, " " + orderSymbol, " " + msg1); }
Не там, он в MQL4\files
Как сказал Максим, расширение должно быть .csv. Вообще говоря, оно может быть любым, но потом Exel не сможет импортировать.
Вот мой код для создания и записи
Да, файлы пишет, нашлись они в тестере/файлах.
ЛОгика только у меня неправильная была. Поэтому файл и не создавался ))
Всем спасибо за поддержку. Буду логику дорабатывать

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Друзья, помогите, плз. Никак не могу разобраться. Хочу, чтобы робот в тестере стратегий записывал в файл csv для статистической обработки информацию по совершенным сделкам: тип ордеров (покупка, продажа), цены открытия, цены закрытия, минимумы цены с открытия до закрытия, максимумы цены с открытия до закрытия.
Но файл не создается.
Что неправильно в коде? Или я не там ищу файл (каталог данных/ MQL4/ эксперты/) ? Вообще-то и поиском его искали везде - нигде не нашли.
Думал, что дело в том, что записываются только данные массивов. Но вообще-то и вот этот код (нашел в интернете) файл при тестировании не создает:
Как правильно написать код, записывающий в файл нужные данные?