
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Странно то что если я в своем классе переопределяю функцию CheckOpenLong() и CheckOpenLong()
то советник вообще не входит в рынок, притом второй if можно не указывать, т.е. вся логика ломается об первое условие
В данном случае - видимо, PositionSelect() возвращает false, ведь позиции у вас нет, после чего происходит выход из функции. В рынок, действительно, так не войдешь.
Пройдитесь в дебаггере - посмотрите, куда идет управление.
В данном случае - видимо, PositionSelect() возвращает false, ведь позиции у вас нет, после чего происходит выход из функции. В рынок, действительно, так не войдешь.
Пройдитесь в дебаггере - посмотрите, куда идет управление.
Вход в рынок был в другом месте, ну да ладно, я пошел другим путем...
Судя по поведению генерированного советника надо половину его методов переопределить, чтобы работал как задумано.
Решил городить свой велосипед, но для упрощения жизни использовать классы.
Включил необходимые файлы и объявил две переменные:
Далее в коде:
Т.е. если нет открытой позиции - покупаем. Результат нулевой, советник сделку не открывает вообще.
Совсем уже голова не варит... наконец-то заработал мой советник, остался еще один вопрос, по изменению уровня тейк профита. По умолчанию у меня выставляется тейк профит в 50 пунктов, но если рынок идет не в ту сторону - каждые 50 пунктов мы "доливаемся". Соответственно меняется и результирующая цена по позиции, соответственно нужно двигать и тейк профит. Т.е. если мы купили по по цене 1,500, а рынок ушел до 1,450, советник делает еще одну сделку тем же объемом 0.1 и цена позиции становиться 1,475. Тейк профит нужно сдвинуть с 1.550 на 1.525. Но не могу корректно рассчитать уровень тейк профита, т.к. position.
PriceCurrent() после доливки не равняется 1,475. Либо же я не понимаю назначение этой функции.
Совсем уже голова не варит... наконец-то заработал мой советник, остался еще один вопрос, по изменению уровня тейк профита. По умолчанию у меня выставляется тейк профит в 50 пунктов, но если рынок идет не в ту сторону - каждые 50 пунктов мы "доливаемся". Соответственно меняется и результирующая цена по позиции, соответственно нужно двигать и тейк профит. Т.е. если мы купили по по цене 1,500, а рынок ушел до 1,450, советник делает еще одну сделку тем же объемом 0.1 и цена позиции становиться 1,475. Тейк профит нужно сдвинуть с 1.550 на 1.525. Но не могу корректно рассчитать уровень тейк профита, т.к. position.
PriceCurrent() после доливки не равняется 1,475. Либо же я не понимаю назначение этой функции.
PriceCurrent() - это, насколько я понимаю, текущая цена символа, в котором открыта позиция. С чего бы это она будет равна 1.465 ?
Это должна быть цена позиции, т.к. переменная position имеет тип CPositionInfo, а не CSymbolInfo.
Посмотрел еще раз сгенерированный советник, и свой и решил попробовать использовать CTrailingStop для трейлинга позиции, даже заработало и впринципе неплохо.
Почитав документацию понял, что для определения входить или не входить в рынок используются сигналы (некоторый их набор). Теперь озадачился как сделать свой собственный сигнал, добавить его как поставщика сигналов к имеющимся Adaptive Moving Avarage и Stohastic и поставить ему наивысший приоритет. т.к. переопределять кучу методов имеющихся стандартных классов не хочется. В своем сигнале хочу запретить переворачивать позицию или входить в рынок в противоположном направлении, если есть открытая позиция (то что и спрашивал в самом начале)
Это должна быть цена позиции, т.к. переменная position имеет тип CPositionInfo, а не CSymbolInfo.
Ну, что "должно быть" - можно спорить, а реально все сводится к получению переменной позиции типа POSITION_PRICE_CURRENT, и что она конкретно означает - определяется разработчиками.
Теперь озадачился как сделать свой собственный сигнал, добавить его как поставщика сигналов к имеющимся Adaptive Moving Avarage и Stohastic и поставить ему наивысший приоритет. т.к. переопределять кучу методов имеющихся стандартных классов не хочется. В своем сигнале хочу запретить переворачивать позицию или входить в рынок в противоположном направлении, если есть открытая позиция (то что и спрашивал в самом начале)
Все верно, именно такой принцип в Стандартной Библиотеке и используется. Есть цикл статей, там с примерами показано, как сделать такой сигнал.