Да, Дмитрий, это можно сделать даже без WinAPI, только с помощью скрипта на AutoIT.
При этом неуютно начинают себя чувствовать не только советники, которые работают на дневках, но даже советники, которые работают на пятиминутках.
На мой взгляд, наиболее разумным является именно остановка работы тестера за месяц до текущей даты. Но вот что делать, когда переводится дата на компьютере ?
Идея у меня - каким-то образом получить из тестера реальное время последних котировок из терминала. Но, пока не приложу ума, как это сделать. К тому же, очень не хочется связываться с дополнительными самописными DLL, они также "отпугивают" клиентов.
Да, Дмитрий, это можно сделать даже без WinAPI, только с помощью скрипта на AutoIT.
При этом неуютно начинают себя чувствовать не только советники, которые работают на дневках, но даже советники, которые работают на пятиминутках.
На мой взгляд, наиболее разумным является именно остановка работы тестера за месяц до текущей даты. Но вот что делать, когда переводится дата на компьютере ?
Идея у меня - каким-то образом получить из тестера реальное время последних котировок из терминала. Но, пока не приложу ума, как это сделать. К тому же, очень не хочется связываться с дополнительными самописными DLL, они также "отпугивают" клиентов.
Дата в терминале не переводится. TimeCurrent() выдает последнее время сервера. от него и надо плясать.
Так ведь TimeCurrent() в тестере моделируется... Или я чего-то не понимаю? Нужно ведь из тестера узнать реальное текущее время.
По идее, можно заморочиться с WebRequest, запрашивая реальное текущее время с какого-то сервера (в т. ч. со своего). А требованием для теста стратегии будет внесение адреса этого сервера в терминале.
Так ведь TimeCurrent() в тестере моделируется... Или я чего-то не понимаю? Нужно ведь из тестера узнать реальное текущее время.
Из тестера можно узнать текущее время компьютера.
Проблема одна - пользователь со злым умыслом может сильно его изменить.
По идее, можно заморочиться с WebRequest, запрашивая реальное текущее время с какого-то сервера (в т. ч. со своего). А требованием для теста стратегии будет внесение адреса этого сервера в терминале.
George Merts:
Следовательно, необходимо в тестере получить текущую дату, и позволять работать советнику только до даты, на месяц меньше.
--
[]...попался ушлый пользователь, который, как оказалось, переводит время на компьютере вперед, и спокойно считывает из тестера совершенные сделки.
Получать время у третьей, независимой стороны - либо через DLL, либо WebRequest-ом, как советовали выше. Других вариантов, подозреваю что нет.
Из тестера можно узнать текущее время компьютера.
Проблема одна - пользователь со злым умыслом может сильно его изменить.
Так и я о том же. Только вот TimeCurrent() тоже не подходит в тестере.
TimeCurrent() - вобще не проходит, оно же возвращает не текущее время компьютера, а время котировки, которое зависит от настроек тестера стратегий.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Приветствую всех.
Вопрос в заголовке. Стоит задача защитить советник от использования на реальных данных, но при этом позволять прогонять его в тестере стратегий. Чтобы демо-версию можно было бы запускать в тестере стратегий, и видеть, что она работает, но копировать сделки, перенося их вручную в другой терминал было бы нельзя.
Проблема в том, что сделки советника могут длиться неделями. А значит, недобросовестный пользователь без особого напряжения может запускать демо-версию в тестере стратегий, и с опозданием на день открывать те же сделки руками в другом терминале. При этом он теряет не сильно много профита.
Соответственно, было принято решение, что в тестере советник должен работать только до даты на месяц раньше текущей. При этом, по мере наступления новых дат, и советник должен позволять работать в тестере все дольше и дольше.
Жестко прописанная дата конца работы в тестере не годится - пользователи начинают подозревать, что именно до этой даты в советнике просто записаны котировки, поэтому он и торгует. Следовательно, необходимо в тестере получить текущую дату, и позволять работать советнику только до даты, на месяц меньше.
Получить текущую дату из тестера с трудом, но удалось. Однако, попался ушлый пользователь, который, как оказалось, переводит время на компьютере вперед, и спокойно считывает из тестера совершенные сделки.
Как не допустить запуска на тестере по котировкам за последний месяц ?
Что предложите делать, коллеги ?