Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В документации такого нет, следовательно, разговаривать не о чем. У некоторых брокеров в цену закрытия хоть 0 ставь (у а-ри, например), будет закрываться по текущей бид или аск-цене. У других - будет ошибка.
Если-бы мы все жили исключительно по правилам и документациям, то и сейчас ездили на кобылах и быках.
Читайте справку внимательно. Скрипт такой сами сумеете написать?
Там такая строчка среди прочего: Alert(StringSubstr((string)OrderTicket(),7), types[OrderType()], Ask, " ", Bid, " ",OrderClosePrice());
Ничего он не перепутал. Всё именно так и работает на ура. Только есть некоторые опасности и Ренат об этом предупреждал. Если ордер не закрылся, по какой либо причине, то изменение цены Ask или Bid можно обновить вызвав соответствующую функцию, а для обновления OrderClosePrice() надо ордер ещё раз выбрать обновив свойства ордера.
Ищите и читайте. Этот вопрос обсуждался лет 12-15 назад.
ticket=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,Black);
В данной строке (предварительно ордерселект на ордертикет конечно) OrderClosePrice() = 0, а не нулевое значение он получает после закрытия ордера. Что правильного в такой записи. Цена закрытия либо Аск либо Бид. Как она может быть другой.
Где-то сработает, а где-то даст ошибку, при нулевом значении. А при не нулевом значении всегда даст ошибку.
Читайте справку внимательно
Это после закрытия ордера присваивается значение, при открытом ордере оно равно нулю. Это уже исторические ордера / позиции.
Читайте справку внимательно
Это Вы читайте справку двумя глазами.
Выдержку из справки, подтверждающую мои слова я привел.
В данной строке (предварительно ордерселект на ордертикет конечно) OrderClosePrice() = 0, а не нулевое значение он получает после закрытия ордера. Что правильного в такой записи. Цена закрытия либо Аск либо Бид. Как она может быть другой.
Где-то сработает, а где-то даст ошибку, при нулевом значении. А при не нулевом значении всегда даст ошибку.
Проверял?
Читайте внимательно сообщения разработчиков.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Применение функция OrderClosePrice() к открытым ордерам
Renat Fatkhullin, 2006.09.11 18:14
В общем случае нельзя. OrderClosePrice содержит закешированное значение на момент вызова OrderSelect и это значение может устареть к моменту вызова OrderClose.А в частном случае, когда идет такая вот последовательность:
то можно использовать. Но если будут появляться сообщения об частых реквотах или ошибках, то стоит серьезно подумать над более корректной реализацией.
Читайте справку внимательно. Скрипт такой сами сумеете написать?
Там такая строчка среди прочего: Alert(StringSubstr((string)OrderTicket(),7), types[OrderType()], Ask, " ", Bid, " ",OrderClosePrice());
У одного брокера прокатит, у другого нет. Потом будете бегать по форумам и удивляться почему не работает.
Это Вы читайте справку двумя глазами. Выдержку из справки, подтверждающую мои слова я привел.
Справку надо читать, да. Но еще ее надо осмысливать. В вашей выдержке отсутствует указание на закрытый ордер.
В справке говорится, то функция OrderClosePrice() дает цену закрытия ордера.
А если ордер еще не закрыт, то это цена, по которой его СЕЙЧАС можно закрыть.
У одного брокера прокатит, у другого нет. Потом будете бегать по форумам и удивляться почему не работает.
Вы прежде чем что-то утверждать, напишите скрипт и проверьте разных брокеров.
Функции языка MQL обеспечивает терминал, а не брокеры
Вы прежде чем что-то утверждать, напишите скрипт и проверьте разных брокеров.
Функции языка MQL обеспечивает терминал, а не брокеры
Платите доллары, напишу. Проверять будете сами у разных брокеров.
Осмыслите эту часть справки: