работа советника в определенные часы - страница 3

 
Dmitiry Ananiev:

Я с самого начала указал что надо по МТ4.

все мои примеры были написаны в МТ4 и там же использовались, Вы почему то не используете  все возможности МТ4 

эти же примеры будут работать без изменений и в МТ5, под МТ5 не будет только этот пример работать без доработки

if(Session.CheckSession(Hour())<0) { Comment("Запрет торговли по времени");  return;  }


ЗЫ: перефразирую статью МТ4 - это больше чем можно представить!


Dmitiry Ananiev:

Как видите интервала уже 4. И ваш код тут не поможет. 

мои все 3 примера масштабируются хоть в 101 интервал временных диапазонов или путем копирования строк инициализации обьектов или путем создания массива экземпляров обьектов, что в первом что во втором случае это занимает 2-3 минуты ;)

Dmitiry Ananiev:

Приму любую критику для улучшения работы кода. 

Вас устраивает?  мне не нравятся во входных переменных использовать string   - в оптимизаторе не работает и есть вероятность не правильного ввода данных пользователем - это усложняет код и требует дополнительных проверок, вывод предупреждений и т.п. 


Dmitiry Ananiev:

Но все равно спасибо за участие. 

пожалуйста

 
Igor Makanu:

все мои примеры были написаны в МТ4 и там же использовались, Вы почему то не используете  все возможности МТ4 

эти же примеры будут работать без изменений и в МТ5, под МТ5 не будет только этот пример работать без доработки


ЗЫ: перефразирую статью МТ4 - это больше чем можно представить!


Вас устраивает?  мне не нравятся во входных переменных использовать string   - в оптимизаторе не работает и есть вероятность не правильного ввода данных пользователем - это усложняет код и требует дополнительных проверок, вывод предупреждений и т.п. 

Зачем-же вывод предупреждений? Ведь если вместо "09:00" ввели "9" то можно обработать и приравнять к должному времени. Не вижу проблем в строковых представлениях времени.

 
Alexey Viktorov:

Зачем-же вывод предупреждений? Ведь если вместо "09:00" ввели "9" то можно обработать и приравнять к должному времени. Не вижу проблем в строковых представлениях времени.

как бы обьяснить проблему....  как пример, пользователь забыл  отпустить шифт и вместо 4 получил ;  - при вводе строки это без проблем запишется в string - нужно обрабатывать  не корректный ввод данных

при вводе цифр input int  - терминал не даст ввести ; вместо 4 - эту ситуацию не нужно обрабатывать в ошибках ввода

ЗЫ: но основное - это оптимизатор, код там должен работать я так считаю, иначе вообще в 2 клика проще в исходнике написать время работы  и не нужно ничего изобретать

 
Igor Makanu:

как бы обьяснить проблему....  как пример, пользователь забыл  отпустить шифт и вместо 4 получил ;  - при вводе строки это без проблем запишется в string - нужно обрабатывать  не корректный ввод данных

при вводе цифр input int  - терминал не даст ввести ; вместо 4 - эту ситуацию не нужно обрабатывать в ошибках ввода

ЗЫ: но основное - это оптимизатор, код там должен работать я так считаю, иначе вообще в 2 клика проще в исходнике написать время работы  и не нужно ничего изобретать

Ну, да. Все причуды дурака предусмотреть невозможно, но надо, на мой взгляд, больше рассчитывать на нормальных пользователей. Хотя мысль интересная. Надо будет предусмотреть замену таких символов в строковых переменных. И есть всё-же одно преимущество в строковом представлении времени относительно числового. Это возможность задать время с минутами в одной строке. Например "9:23" или "09:23" обработка одинаковая.

 
Alexey Viktorov:

И есть всё-же одно преимущество в строковом представлении времени относительно числового. Это возможность задать время с минутами в одной строке. Например "9:23" или "09:23" обработка одинаковая.

вижу только одно преимущество input string перед input int  - уменьшение общего кол -ва настроек советника, других преимуществ для себя не увидел

 
Igor Makanu:

вижу только одно преимущество input string перед input int  - уменьшение общего кол -ва настроек советника, других преимуществ для себя не увидел

Это на любителя. Спорить не имеет смысла, равно как о фломастерах. На цвет разные, а на вкус одинаковые.

 
Igor Makanu:

вижу только одно преимущество input string перед input int  - уменьшение общего кол -ва настроек советника, других преимуществ для себя не увидел

В случае сей темы нет смысла делать отдельные выключатели для каждого часа, что бы можно было оптимизировать в тестере. Если включать/выключать каждый час времени суток отдельно, получается 2^24 вариантов, а это равно 16777216. Такой количество никто не будет оптимизировать. Поэтому сделать в данном случае строковую переменную - вполне разумно. 

Но вообще, не совсем полезный подход. Лучше сделать 2-3 сессии, у которых задается начало и конец, тогда будет возможность оптимизировать.

Наверно оптимальным будет сделать один набор переменных int для одной сессии, что бы оптимизировать (две сессии сразу оптимизировать тоже нет смысла) и строку для возможности ввода любого количества сессий (для поклонников неограниченных возможностей).

Да и лучше задавать не начало и конец сессии, а начало и длительность - это лучше для оптимизации.

 

вот реализация через строку - нашёл на просторах форексфактори, функция вместе с полноценной торговой панелькой с кнопочками, нахаляву потому что не моё


Файлы:
 
Я предпочитаю делать время старта и сколько минут/часов торговать. Тогда не нужно прописывать на неделю все периоды, если допустим делаем старт в понедельник в 01:00 (5*24*60-90=7110 минут торгуем) и стоп в пятницу 23:30. Хотя тут конечно на любителя, вариантов вагон.
 
Dmitry Fedoseev:

В случае сей темы нет смысла делать отдельные выключатели для каждого часа, что бы можно было оптимизировать в тестере. Если включать/выключать каждый час времени суток отдельно, получается 2^24 вариантов, а это равно 16777216. Такой количество никто не будет оптимизировать. Поэтому сделать в данном случае строковую переменную - вполне разумно. 

Но вообще, не совсем полезный подход. Лучше сделать 2-3 сессии, у которых задается начало и конец, тогда будет возможность оптимизировать.

Наверно оптимальным будет сделать один набор переменных int для одной сессии, что бы оптимизировать (две сессии сразу оптимизировать тоже нет смысла) и строку для возможности ввода любого количества сессий (для поклонников неограниченных возможностей).

Да и лучше задавать не начало и конец сессии, а начало и длительность - это лучше для оптимизации.

Спасибо. Возьму на вооружение и допилю свой класс.

Причина обращения: