![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо, деинициализации или удаления - нет. Мне кажется, что проблема в том, что м ассив данных создается в OnTick() , а используется в OnDeinit () .
Вы как сегодня тестируете? При завершении тестирования по-моему OnDeinit() не выполняется. Для проверки я вынес всё что должно выполняться в OnDeinit() в отельную функцию и вызвал её в определённый момент.
Пробуйте ещё и ещё. Должно помочь. Я проверил. И исправьте эту строку
так
Ещё можно добавить
тогда после закрытия тестера файл не потеряется.
проблема в том, что я могу записать в файл.
В событии OnTick() создается массив дат тиков.
При событии OnDeinit () я хочу этот массив передать в файл.
Но не могу , хотя Print() массив отображается корректно, но при записи в файл FileWrite(), не передается массив. Даже ArraySize() записывает "0", а при Print() - "12".
проблема в том, что я могу записать в файл.
В событии OnTick() создается массив дат тиков.
При событии OnDeinit () я хочу этот массив передать в файл.
Но не могу , хотя Print() массив отображается корректно, но при записи в файл FileWrite(), не передается массив. Даже ArraySize() записывает "0", а при Print() - "12".
А вы пробовали ArraySize вынести за пределы FileWrite в виде отдельной переменной, а в FileWrite просто писать эту переменную?
проблема в том, что я могу записать в файл.
В событии OnTick() создается массив дат тиков.
При событии OnDeinit () я хочу этот массив передать в файл.
Но не могу , хотя Print() массив отображается корректно, но при записи в файл FileWrite(), не передается массив. Даже ArraySize() записывает "0", а при Print() - "12".
Для записи массива надо пользоваться функцией
и не беда, что глазами прочесть невозможно. Но это самый действенный способ записи массивов.
Соответственно для чтения этого массива используется
А размер массива записывается даже в вашем примере без проблем. Какие изменения я делал в вашем коде я указал в предыдущем сообщении.А вы пробовали ArraySize вынести за пределы FileWrite в виде отдельной переменной, а в FileWrite просто писать эту переменную?
Для записи массива надо пользоваться функцией
и не беда, что глазами прочесть невозможно. Но это самый действенный способ записи массивов.
Соответственно для чтения этого массива используется
А размер массива записывается даже в вашем примере без проблем. Какие изменения я делал в вашем коде я указал в предыдущем сообщении.Спасибо, но у меня такой вопрос:
после функции OnTick() переменная TickCounter принимает определенное значение (например , 12).
При вызове Print , отображается , но при запис в файл FileWrite() , записывается в файл не "12", а изначалое значение "0". В чем ошибка, не могу понять
Спасибо, но у меня такой вопрос:
после функции OnTick() переменная TickCounter принимает определенное значение (например , 12).
При вызове Print , отображается , но при запис в файл FileWrite() , записывается в файл не "12", а изначалое значение "0". В чем ошибка, не могу понять
Да поймите вы наконец-то, я всё это сделал с вашим кодом. Какие делал изменения уже сказано
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
експорт в файл
Alexey Viktorov, 2019.09.01 19:46
Пробуйте ещё и ещё. Должно помочь. Я проверил. И исправьте эту строку
так
Ещё можно добавить
тогда после закрытия тестера файл не потеряется.
Ещё менял дату так, чтобы максимально ограничить количество тиков. У меня получалось 15 и 15 было записано в файл.
Вот ещё раз проверил уже на реальных тиках. Пришлось сделать ещё некоторые добавки, но они касаются исключительно array out of range
Выделены строки которые я добавил.
Да поймите вы наконец-то, я всё это сделал с вашим кодом. Какие делал изменения уже сказано
Ещё менял дату так, чтобы максимально ограничить количество тиков. У меня получалось 15 и 15 было записано в файл.
Вот ещё раз проверил уже на реальных тиках. Пришлось сделать ещё некоторые добавки, но они касаются исключительно array out of range
Выделены строки которые я добавил.
Спасибо, но у меня , почему-то, файл не создается. Когда же убираю "| FILE_COMMON " и остается : int file_handle = FileOpen(InpDirectoryName + "\\" + InpFileName, FILE_READ | FILE_WRITE | FILE_CSV , то файл создается, но результат в файл записивается "0".
Спасибо, но у меня , почему-то, файл не создается. Когда же убираю "| FILE_COMMON " и остается : int file_handle = FileOpen(InpDirectoryName + "\\" + InpFileName, FILE_READ | FILE_WRITE | FILE_CSV , то файл создается, но результат в файл записивается "0".
Он создаётся, только в другом месте. Документацию почитайте, там написано, где именно. И ещё... Попробуйте удалить FILE_READ и проверьте результат.
Он создаётся, только в другом месте. Документацию почитайте, там написано, где именно. И ещё... Попробуйте удалить FILE_READ и проверьте результат.
Ну зачем советовать заведомо бесполезные варианты? Вы советуете читать документацию, а сами её плохо читали.