Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
void OpenOrder(int Cmd) {
// тут наверное избыточность, но я решил обе проверки вставить в свой код... главное работает :)
if (Wait > TimeCurrent() || !IsTradeAllowed() || IsTradeContextBusy()) return;
Код предполагает, что сигнал устойчивый и после определенной паузы, заданной в переменной Wait попытка открыть ордер повториться.
Выделил то, что не нравится. Все нижесказанное ИМХО и можно не принимать во внимание.
IsTradeAllowed -- всегда ставлю в самом начале функции старт. Зачем напрягать проц если все равно торговать нельзя?
IsTradeContextBusy -- это проблема терминала, причем всегда недолгосрочная. Есть смысл подождать. У себя пользую такую простецкую функцию:
Работает на ура.всегда использую подобные конструкции при работе с торговыми функциями
всегда использую подобные конструкции при работе с торговыми функциями
Хорошая функция, взял на заметку. По сути тоже самое что и у меня, только цикл бесконечный. И звука у меня на компе нет, только наушники :-)
А почему вы советуете убрать функцию IsNewBar()? Ведь по сути каждый тик новой свечки будет запускать кучу проверок, и занимать вычислительную мощность компьютера. А если торговцев несколько? За 15минутную свечку тиков приходит несколько десятков, но мне кажется логичным использовать только завершенные свечи для анализа, закрылась последняя - открылась новая, проверили сигнал - есть - сделали ставку, нет - не сделали, ждем когда закроется новая. А так получится 100 тиков пришло - и мы 99 раз проверили зачем-то тоже самое что выяснили и в 1 раз.
я это решил из вашего кода.. т.к. есть условия разворота - сигнал в buy, то нужно закрыть sell, если он есть, и наоборот..
исходя из этого я понял, что сигнал на открытие ордера является приоритетным по отношению ко времени, когда его открывать..
может я, конечно, неправильно понял, и открытия ордеров должно быть только в начальный момент после формирования бара ?..
Да вы все верно поняли, только во избежание слишком уж частых переворотов, проверяется устойчивый сигнал чтобы свечка закрылась и открытие произошло только на следующей.