Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Судя по вашему коду, вы хотите выставить ордер точно в заданную минуту. Однако, если в эту минуту от сервера не приходил ни один тик на терминал, то следовательно, процедура int start()
незапускалась ни разу в эту минуту. Последствия очевидны - условие не может быть выполнено, т.к. в ту самую минуту для которого оно предназначено, условие не проходит проверку. Start запускается только по приходу новой цены, но никак не в заданное время.
Получается, что если ставить вручную ордер, то берется последний пришедший тик?
Если так, то как програмно реализовать выставление ордеров по последнему тику в заданное время?
Здесь поможет зацикленный скрипт.
Здесь поможет зацикленный скрипт.
А подскажите где пример поглядеть
Типа вот этого правила?
" организовать программу таким образом, чтобы основной код эксперта исполнялся постоянно, без пауз между тиками. Для этого необходимо в специальной функции start() эксперта организовать бесконечный цикл, в который следует вставить весь основной код программы. Если в начале каждого цикла принудительно обновлять информацию об окружении, то вся конструкция может успешно работать. Недостатком зацикленного эксперта является невозможность открыть панель настроек. Попробуйте зациклить эксперт - и вы не сможете его настроить.
Эту же идею можно успешно реализовать с помощью скрипта, то есть организовать бесконечный цикл в нём. Но скрипт не имеет настраиваемых переменных.
Обеспечить настраиваемость торговой системы и своевременность исполнения всех распоряжений пользователя путём поддержания непрерывной работы можно лишь используя одновременно эксперт для настроек и скрипт для немедленного исполнения."
Судя по вашему коду, вы хотите выставить ордер точно в заданную минуту. Однако, если в эту минуту от сервера не приходил ни один тик на терминал, то следовательно, процедура int start()
незапускалась ни разу в эту минуту. Последствия очевидны - условие не может быть выполнено, т.к. в ту самую минуту для которого оно предназначено, условие не проходит проверку. Start запускается только по приходу новой цены, но никак не в заданное время.
Получается, что если ставить вручную ордер, то берется последний пришедший тик?
Если так, то как програмно реализовать выставление ордеров по последнему тику в заданное время?
Получается, что если ставить вручную ордер, то берется последний пришедший тик? -->
Немного не так, выставляя ордер вручную вам либо нужна текущая цена и брокер вам её сообщит, либо не нужна, если это отложенный ордер. Тоже самое произойдет, если принудительно запустить процедуру start в вашу целевую минуту - эксперт получит цену и откроет ордер. Можно зациклить советник, как вам и посоветовали, но я воздерживаюсь от подобных трюков - не лежит душа. Новая цена, пришедшая даже после вашей целевой минуты меня бы удовлетворила.Если так, то как програмно реализовать выставление ордеров по последнему тику в заданное время? -->
К сожалению, нельзя предсказать какой тик будет последний перед той минутой, в которой вы хотите выставить ордер. Возможно, что новой цены не будет в течение нескольких минут перед вашей целевой минутой. Увы, нет новой цены - нет тика - нет запуска start.
К сожалению, нельзя предсказать какой тик будет последний перед той минутой, в которой вы хотите выставить ордер. Возможно, что новой цены не будет в течение нескольких минут перед вашей целевой минутой. Увы, нет новой цены - нет тика - нет запуска start.
Вы немного не поняли меня. Ничего предсказывать ненужно
Нужно взять последний уже пришедший тик 1 минуту-5 минут назад и выставить на основе этой цены два ордера в заданную минуту
Здесь поможет зацикленный скрипт.
А подскажите где пример поглядеть
Типа вот этого правила?
" организовать программу таким образом, чтобы основной код эксперта исполнялся постоянно, без пауз между тиками. Для этого необходимо в специальной функции start() эксперта организовать бесконечный цикл, в который следует вставить весь основной код программы. Если в начале каждого цикла принудительно обновлять информацию об окружении, то вся конструкция может успешно работать. Недостатком зацикленного эксперта является невозможность открыть панель настроек. Попробуйте зациклить эксперт - и вы не сможете его настроить.
Эту же идею можно успешно реализовать с помощью скрипта, то есть организовать бесконечный цикл в нём. Но скрипт не имеет настраиваемых переменных.
Обеспечить настраиваемость торговой системы и своевременность исполнения всех распоряжений пользователя путём поддержания непрерывной работы можно лишь используя одновременно эксперт для настроек и скрипт для немедленного исполнения."
Делаете скрипт, не забывая в заголовке указать #property show_inputs , для установки переменных. В скрипте делаете конструкцию типа:
Спасибо.
Пойду разбираться :-)
Геморой, однако :-)
Не поделитесь куском кода для примера?
К сожалению, нельзя предсказать какой тик будет последний перед той минутой, в которой вы хотите выставить ордер. Возможно, что новой цены не будет в течение нескольких минут перед вашей целевой минутой. Увы, нет новой цены - нет тика - нет запуска start.
Вы немного не поняли меня. Ничего предсказывать ненужно
Нужно взять последний уже пришедший тик 1 минуту-5 минут назад и выставить на основе этой цены два ордера в заданную минуту
Да, точно. Это возможно. Необходимо только запустить start в нужный вам момент.
Геморой, однако :-)
Не поделитесь куском кода для примера?
Вот вам код, рабочий, только что проверил. Но учтите время(час, минута, секунда) надо выставлять локальное.