Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2253
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
О! Спс. Разберу код.
Есть вариант для mql5? (Общий подход)
Нужен цикл для суммирования цены открытия (нахождения средней цены по годам) - одинаковых дней например по 3-м или 5-ти годам.
По сути нужен оптимальный вариант цикла перебора дней по годам для суммирования их цен открытий (закрытий можно) (по соответствующим дням (одинаковым) по годам) - для нахождения средней цены открытия или закрытия дня по например 3 или 5 годам - для примера.
На всякий случай: для ускорения, вместо полного перебора дней в поисках нужной даты (TimeToStruct - довольно "дорогая" функция) можно от заданной даты (индекса бара) отнимать (или прибавлять) среднее число торговых дней в году (около 200 для биржи) и уже от этого дня (бара) искать перебором вперёд или назад.
На всякий случай: для ускорения, вместо полного перебора дней в поисках нужной даты (TimeToStruct - довольно "дорогая" функция) можно от заданной даты (индекса бара) отнимать (или прибавлять) среднее число торговых дней в году (около 200 для биржи) и уже от этого дня (бара) искать перебором вперёд или назад.
В индикаторах полный перебор осуществляется только при первом запуске, или при изменении истории. В остальное время просчитывается только текущий бар, либо текущий и предыдущий - при открытии нового бара.
Не думаю, что один раз пройти полным циклом будет критично для первого запуска индикатора в обмен на более простой код.
Как взять цены например, 10 авг сего года, прошлого и позапрошлого?
Результат
В индикаторах полный перебор осуществляется только при первом запуске, или при изменении истории. В остальное время просчитывается только текущий бар, либо текущий и предыдущий - при открытии нового бара.
Не думаю, что один раз пройти полным циклом будет критично для первого запуска индикатора в обмен на более простой код.
Я не про перебор рассчитываемых баров в индикаторе, а про перебор баров для поиска данных для расчёта - т.е., для поиска баров, отстоящих ровно на n лет от текущего. Функция StringToTime гораздо более "дорогая", чем TimeToStruct, стоит по возможности ограничить её использование, особенно для критичного по времени/загрузке проца кода.
...
О! Спс за подход. Вечером вкурю....
Исправьте эту строку
Спасибо, исправил...
Подскажите, пожалуйста, ваш блок:
определяет день, когда был достигнут профит, и далее идет сравнение с текущей датой?
Но, я все же не могу понять, как это все совместить воедино.
Мой блок кода:
отвечает за флаг, в случае прибыльной сделки, и при наличии флага торговля прекращается. Моя цель - прибыль получена, торговля прекращена до конца дня (это уже реализовано) , флаг в начале следующей свечи (в моем случае D1) сброшен на false... Подскажите, пожалуйста, что нужно добавить , чтобы это реализовать.
Спасибо!
Спасибо, исправил...
Подскажите, пожалуйста, ваш блок:
определяет день, когда был достигнут профит, и далее идет сравнение с текущей датой?
Но, я все же не могу понять, как это все совместить воедино.
Мой блок кода:
отвечает за флаг, в случае прибыльной сделки, и при наличии флага торговля прекращается. Моя цель - прибыль получена, торговля прекращена до конца дня (это уже реализовано) , флаг в начале следующей свечи (в моем случае D1) сброшен на false... Подскажите, пожалуйста, что нужно добавить , чтобы это реализовать.
Спасибо!
Функция определяет день закрытия профитной сделки и добавляет время до начала следующего дня.
А здесь уже идет сравнение в текущим временем
и если текущее время больше - значит можно торговать.Спасибо, исправил...
Исправьте еще одну ошибку
К сожалению, не работает.... после получения профита, продолжает открывать сделки до конца дня....
Вы что-то не так прописали.
Все работает