Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Да, я понимаю всю корявость конструкции.
Будет ли так правильно:
У вас алгоритм не верно составлен изначально.
В OnTick() проверяете условия для входа и вход, и вызываете функцию модификации существующих позиций.
В функции модификации (своеобразный трал тейка) в цикле выбираете поочерёдно каждую позицию по индексу (не по тикету), проверяете условие на модификацию её стоп-приказов и вызываете функцию модификации собственно стоп-приказа.
Спасибо, но мой предыдущий ответ относился к изменению времени проверки бара... С тикетом я ничего тут не менял еще.
Но если говорить о тикете, то:
1. номер тикета я задаю при установке советника (руками вбиваю), поэтому он выбирается без проблем, по крайней мере на демо это работало.
2. Да, мне необходимо менять только тот ордер, тикет которого я вбиваю.
3. Почему неправильно? Ордер выбирался и менялся. Но я не настаиваю, может Вы и правы, но тогда поясните, пожалуйста, в чем ошибка.
1. Программа может модифицировать только один-единственный ордер, который вы жёстко задаёте в настройках - по-меньшей мере это очень не оптимально.
2. Если вам так нужно, то делайте так.
3. Ордер у вас выбирается всегда, даже тогда, когда он уже закрыт. Но вот когда он уже закрыт, его тейк модифицировать невозможно, и соответственно в журнал сыплется куча ошибок.
3.1. Т.е., если вы выбираете ордер по тикету, то выбирать его для модификации нужно так:
или так:
1. Программа может модифицировать только один-единственный ордер, который вы жёстко задаёте в настройках - по-меньшей мере это очень не оптимально.
2. Если вам так нужно, то делайте так.
3. Ордер у вас выбирается всегда, даже тогда, когда он уже закрыт. Но вот когда он уже закрыт, его тейк модифицировать невозможно, и соответственно в журнал сыплется куча ошибок.
3.1. Т.е., если вы выбираете ордер по тикету, то выбирать его для модификации нужно так:
или так:
Спасибо, ценное замечание насчет ошибок модификации закрытого ордера. Поправил, правда чуть в другое место условие проверки закрытого ордера поставил.
Верно?
А вот насчет "В OnTick() проверяете условия для входа и вход" не понял, извините. Можете более детально помочь? Мне знаний не хватает :(
Спасибо, ценное замечание насчет ошибок модификации закрытого ордера. Поправил, правда чуть в другое место условие проверки закрытого ордера поставил.
Верно?
А вот насчет "В OnTick() проверяете условия для входа и вход" не понял, извините. Можете более детально помочь? Мне знаний не хватает :(
Откуда у вас берётся позиция, тейк которой вы хотите модифицировать?
От вручную установленного лимитного ордера.
Алгоритм простой.
Вручную поставил лимитник. Активировал советник. Если ордер открылся, то советник проверяет закрытие прошлого бара по вручную установленной цене (checkline). Если говорить о покупке, то checkline всегда ниже цены открытия, поэтому неоткрытый (неактивированный) ордер модифицироваться не должен.
Если последний бар закрылся ниже установленной цены, то происходит модификация тейка. Если не закрывается ниже - ничего не происходит.
Как-то так, все просто.
Вообще я сейчас проверил на демо его работу - вроде работает. Ошибок не пишет, модифицировал ордер при выполнении условия. Во время модификации было несколько ошибок "off quotes", но цена чуть упала и все, ордер модифицировался и дальше без ошибок.
Но если, конечно, заметите какие-то еще явные ошибки - скажите, пожалуйста.
Единственное, несколько смущает вот это (выдается во вкладке "Эксперты" по моему запросу "print"
Что за ненормальные цифры? Я ведь устанавливал обычные пятизначные, без кучи девяток на концах...
От вручную установленного лимитного ордера.
Алгоритм простой.
Вручную поставил лимитник. Активировал советник. Если ордер открылся, то советник проверяет закрытие прошлого бара по вручную установленной цене (checkline). Если говорить о покупке, то checkline всегда ниже цены открытия, поэтому неоткрытый (неактивированный) ордер модифицироваться не должен.
Если последний бар закрылся ниже установленной цены, то происходит модификация тейка. Если не закрывается ниже - ничего не происходит.
Как-то так, все просто.
1. Выбираете ордер по заданному тикету
2. Проверяете тип ордера. Он должен быть OP_BUY или OP_SELL. Т.е., if(OrderType()>1) {// выбрана не рыночная позиция и модифицировать ничего не нужно}
3. Если выбран OP_BUY или OP_SELL, то проверить время его закрытия и, если оно равно нулю, то при наличии условия на модификацию, модифицировать тейк
....
Ну вот как-то так... Не проверял ничего - "на коленке" набросал:
Вообще я сейчас проверил на демо его работу - вроде работает. Ошибок не пишет, модифицировал ордер при выполнении условия. Во время модификации было несколько ошибок "off quotes", но цена чуть упала и все, ордер модифицировался и дальше без ошибок.
Но если, конечно, заметите какие-то еще явные ошибки - скажите, пожалуйста.
Единственное, несколько смущает вот это (выдается во вкладке "Эксперты" по моему запросу "print"
Что за ненормальные цифры? Я ведь устанавливал обычные пятизначные, без кучи девяток на концах...
1. Выбираете ордер по заданному тикету
2. Проверяете тип ордера. Он должен быть OP_BUY или OP_SELL. Т.е., if(OrderType()>1) {// выбрана не рыночная позиция и модифицировать ничего не нужно}
3. Если выбран OP_BUY или OP_SELL, то проверить время его закрытия и, если оно равно нулю, то при наличии условия на модификацию, модифицировать тейк
....
Ну вот как-то так... Не проверял ничего - "на коленке" набросал:
Скомплировалось без ошибок, но модификация произошла только через 1 бар. Т.е. должно (и было в моем варианте) так: закрылся бар и выполнено условие - сразу на открытии нового бара идет модификация. А сейчас, почему-то, только на следующем баре сработало...
А в журнале что пишет?
Подозреваю, что на новом баре активировалась отложка. Далее в коде идёт ожидание открытия следующего бара, и только потом, на открытии очередного бара, модификация рыночной позиции.