Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не реальное время.
Спасибо за информацию. Я не знал, что "OrderClosePrice()" буферизируется. Поэтому я полагаю, что ни "OrderClosePrice()", ни "Ask"/"Bid" не являются идеальным решением в реальном времени.
Однако, согласны ли вы, что "OrderClosePrice()" является лучшим общим решением, чем использование "Ask"/"Bid" после выполнения "OrderSelect()"?
А что касается решения для реального времени, если оно действительно необходимо, то я полагаю, что мы можем вернуться к альтернативным вариантам:
Почему вы снова пытаетесь изобрести колесо?
Посмотрите здесь - вы найдете все, что вам нужно.
Если нет, начните вносить изменения в исходный код.
Спасибо всем за помощь. Я думаю, что теперь я решил проблему с ошибкой 130, но есть что-то серьезное в моей функции OrderSelect, что, скорее всего, является причиной того, что она только иногда изменяет некоторые ордера. Ниже приведен список того, что я распечатал. OrderTicket # совершенно неправильный. Этот номер тикета принадлежит сделке, открытой для EURAUD. Хотя я не включил все результаты, есть несколько пар, где номера OrderTicket не соответствуют паре в торговом терминале.
Не мог бы кто-нибудь взглянуть и сообщить мне, что не так с OrderSelect? Спасибо
2016.04.18 16:04:38.602 Trailing_v19 EURUSD,M15: ticket = 0 Я думаю, что ticket должен выводить то же значение, что и OrdersTotal, так что, похоже, мой счетчик не работает.
2016.04.18 16:04:38.602 Trailing_v19 EURUSD,M15: OrderSelect = true
2016.04.18 16:04:38.602 Trailing_v19 EURUSD,M15: OrdersTotal = 11
2016.04.18 16:04:38.202 Trailing_v19 EURUSD,M15: Selectbypos = 0
2016.04.18 16:04:38.202 Trailing_v19 EURUSD,M15: Selectbyticket = 1
2016.04.18 16:04:38.202 Trailing_v19 EURUSD,M15: OrderTicket = 50213357
Привет всем. Спасибо за помощь. Я нашел ошибку и проблемы были решены. Поскольку я не использую стоплосс, значение OrderStopLoss() всегда равно 0. Это не проблема при модификации ордера на покупку, потому что 0 всегда меньше, чем Bid-TrailingStop*Pip. Но при модификации ордера на продажу 0 никогда не может быть больше, чем Ask+Trailingstop*Pip. Поэтому мне пришлось добавить or(|| OrderStopLoss()) в эту строку:
Спасибо большое за помощь. Да, определенно есть проблема с OrderSelect, потому что он работает только на некоторых графиках. Другая проблема в том, что я не могу включить MagicNumber, потому что сделки размещаются вручную. Я использовал часть кода, который я считаю релевантным, но я не могу заставить его компилироваться. Он показывает эту ошибку:
'MySelect' - функция может быть объявлена только в глобальной области видимости Trailing_v26.mq4 31 13
и строка 31 - вот эта:
Вот весь советник:
Да, определенно есть проблема с OrderSelect, потому что он работает только на некоторых графиках. Другая проблема в том, что я не могу включить MagicNumber, потому что сделки размещаются вручную. Я использовал часть кода, который я считаю релевантным, но я не могу заставить его компилироваться.
Я дал вам совершенно хороший скелет кода, на котором можно строить, который устраняет ваши проблемы и даже перечислил их до этого, но вы предпочитаете игнорировать его и продолжаете бороться, задаваясь вопросом, почему ваш код не делает то, что вы хотите!
Почему? Вы хотите, чтобы ваш код не работал? Используйте пример и проверьте его сами!