Я проверил журнал на наличие полученной ошибки, и он прочитал 4051. Есть несколько ошибок 4051. В общем, это не работает, и мне интересно, решал ли кто-нибудь ранее эту проблему и имеет ли объяснение.
Когда у вас возникает проблема с функцией, читайте документацию по этой функции ... . OrderModify()<----- Click ME ! ! !
Вы не можете изменить цену открытия ордера на 0.0 ... если вы правильно выполнили OrderSelect(), используйте OrderOpenPrice() для второго параметра, который вы передаете в OrderModify().
Саймон, я прочитал документацию по функции OrderModify() и заметил, что в примере используется трейлинг-стоп. Я не хочу использовать трейлинг-стоп для советника. Это потому, что если я использую трейлинг-стоп, то (согласно примеру) советнику потребуется, чтобы рынок прошел x пунктов выше текущего sl, чтобы изменить sl на указанную цену. В принципе, это слишком сложно. Я просто хочу добавить стоп-лосс к ордеру ПОСЛЕ того, как ордер был отправлен на рынок.
В любом случае, в настоящее время я также пробую новые решения.
Спасибо.
Саймон, я прочитал документацию по функции OrderModify() и заметил, что в примере используется трейлинг-стоп. Я не хочу использовать трейлинг-стоп для советника. Это потому, что если я использую трейлинг-стоп, то (согласно примеру) советнику потребуется, чтобы рынок прошел x пунктов выше текущего sl, чтобы изменить sl на указанную цену. В принципе, это слишком сложно. Я просто хочу добавить стоп-лосс к ордеру ПОСЛЕ того, как ордер был отправлен на рынок.
В любом случае, в настоящее время я также пробую новые решения.
Спасибо.
Саймон,
Испытатель стратегий:
1. Визуальный режим
2. Скорость 31
3. 2010.12.29
4. EURUSD
5. M15
запускать"Только открытые цены", а не каждый тик.
MetaEditor: Edit -> Find... -> "// выбор 1."
выбор 1. = ошибок нет, но мне это явно не нужно.
выбор 2. = вкладка Журнал -> Журнал читает: "ошибка 4051".
Спасибо.
Очевидно, что использование функции OrderOpenPrice() внутри параметров OrderModify() считается "недопустимым параметром функции" в соответствии с ошибкой 4051. Я думаю "?" :) Я мог бы сохранить значение OrderOpenPrice() и включить его в параметры функции OrderModify(), чтобы сделать то, что я хочу, но неужели? Наверняка есть более простой способ! Я снова возвращаюсь к старой работе. ;)
Спасибо.
Очевидно, что использование функции OrderOpenPrice() внутри параметров OrderModify() считается "недопустимым параметром функции" в соответствии с ошибкой 4051.
Уильям,
Очевидно, я разместил советник в ссылке, чтобы вы могли скачать и просмотреть его в MetaEditor, если вы хотите оказать поддержку. Функция OrderSelect() в настоящее время не является проблемой. Знаете что? Я опубликую это специально для вас, Уильям.
//*************************************************** // EMERGENCY BUY ORDER STOP LOSS PROTECTION SECTION ; //*************************************************** OrderSelect(0,SELECT_BY_TICKET,MODE_TRADES); // was ticket. if(OrdersTotal()>0) { if(OrderType()==OP_BUY) { if(OrderSend1==true) { // if(iMA(NULL,0,1,0,MODE_SMMA,PRICE_CLOSE,1)<=OrderOpenPrice()-500*Point) { // choice 1. // {OrderModify(ticket,OrderOpenPrice(),Ask-500*Point,0,0,Blue);}}}} // choice 2. {OrderModify(ticket,OrderOpenPrice(),OrderOpenPrice()-500*Point,0,0,Blue);}}}}
Как вы и просили.
Спасибо.
Уильям,
Очевидно, я разместил советник в ссылке, чтобы вы могли скачать и просмотреть его в MetaEditor, если вы хотите оказать поддержку. Функция OrderSelect() в настоящее время не является проблемой. Знаете что? Я опубликую это специально для вас, Уильям.
Как вы и просили.
Спасибо.
Саймон, я проведу тесты, чтобы выяснить это.
Спасибо.
Ах-ха! Я поменял номер билета 0 на 1, после чего все заработало как часы. Да, я ошибался, Уильям... Проблема была в функции OrderSelect(). Очевидно, что функция OrderSelect() должна выбрать билет. Если номер билета равен 0, какой билет выберет эксперт? :O "?". Спасибо вам обоим за помощь.
Спасибо.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте форум MQL4,
Код выше работает, но перемещает sl вверх или вниз, когда цена спроса движется вверх или вниз.
В качестве решения я попробовал следующее...
(выбранный ордер - ордер на покупку).
Я проверил журнал на наличие полученной ошибки, и он прочитал 4051. Есть несколько ошибок 4051. В принципе, это не работает, и мне интересно, решал ли кто-нибудь ранее эту проблему и имеет ли объяснение.
Я не понимаю, почему это решение не будет работать (да, я верю, что правильно выбираю заказ, потому что первое неправильное решение OrderModify работает).
Спасибо.