Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вот рядом аналогичная ветка - https://www.mql5.com/ru/forum/65506
Решите для себя, как долго может идти один проход тестера, и следите за записываемым файлом: если его размер не менялся заданное кол-во времени, значит оптимизация закончена.
Суть заключается в следующем: один из советников в одном терминале, назовем его советник1, при оптимизации создает файл, и другой советник, в другом терминале советник2, должен узнать когда закончится перезапись файла, то есть оптимизация советника1. Далее советник2 работает с созданным файлом, но это не важно.
Проблема в том, что советник2 ждет пока соптимизируется советник1 фиксированное кол-во секунд функцией sleep, и иногда советник1 оптмизируется слишком быстро, и получается в итоге советник2 простаивает время зря, либо, может быть обратная ситуация, советник1 все еще оптимизируется и следственно записан не до конца, а советник 2 его уже скопировал и обрабатывает.
Так вот, нужно решение которое бы решило эти проблемы, мне кажется советник2 должен с помощью какой-то dll из windows то и дело проверять, меняется ли размер файла, либо смотреть на дату изменения...
Можно выставлять флаг внутри файла, если скажем файле true "1" файл, готов для чтения, если false "0", то файл не готов.
Как тестирующийся советник узнает что сейчас последний проход оптимизации и нужно ставить флаг? Вообще я уже решил эту проблему, просто сравниваю дату изменения файла.
Как тестирующийся советник узнает что сейчас последний проход оптимизации и нужно ставить флаг? Вообще я уже решил эту проблему, просто сравниваю дату изменения файла.
Как узнает! советник который записывает файл просто в файле ставит метку что файл готов для чтения, советники которые должны считывать, считав эту метку, читают файл если метки, нет то они файл не читают.
Вы видимо чего-то не поняли, советник который записывает файл тестируется в режиме оптимизации, то есть он несколько тысяч раз открывает, записывает, и закрывает файл. Каким образом он узнает что именно сейчас последний проход оптимизации и нужно поставить флаг?
Здесь в момент начала оптимизации меняется значение, и момент завершения меняется значение, это говорит, о том готов ли файл для считывания или нет. А там вы его хоть миллион раз открывайте. На значении готов, сохраняются последние данные.
Я не понимаю что вы имеете в ввиду, что за значение? В момент завершения чего? На значении готов сохраняются последние данные? К чему это вообще? У меня записываются данные постоянно при каждом проходе.
Ну я вижу, вы уже дурковать начинаете. Тогда тема закрыта.
Лучше бы и не начинали писать, какую-то дичь написали, не разобравшись в задаче. Собственно уже были адекватные советы, благодаря которым эту проблему и решил.