[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 1093

 
У меня похожий вопрос как у Dimka-novitsek. А существует ли вообще такая возможность: если открыт ордер на продажу OP_SELL по нашему фин. инструменту, не закрывая изменить его на ордер на покупку OP_BUY по нашему фин. инструменту (может только изменится его номер или ещё что). Соответственно изменив при этом размер депозита в сторону результата сделки + или -, но сэкономив спрэд. Или только закрыть ордер на продажу OP_SELL и открыть новый на покупку OP_BUY, потеряв при этом спрэд? Если такая возможность существует, то можно глянуть готовый код?
 
kolyango:
У меня похожий вопрос как у Dimka-novitsek. А существует ли вообще такая возможность: если открыт ордер на продажу OP_SELL по нашему фин. инструменту, не закрывая изменить его на ордер на покупку OP_BUY по нашему фин. инструменту (может только изменится его номер или ещё что). Соответственно изменив при этом размер депозита в сторону результата сделки + или -, но сэкономив спрэд. Или только закрыть ордер на продажу OP_SELL и открыть новый на покупку OP_BUY, потеряв при этом спрэд? Если такая возможность существует, то можно глянуть готовый код?

Нельзя изменить направление ордера. Можно только закрыть 1 и открыть другой.
 
kolyango:
У меня похожий вопрос как у Dimka-novitsek. А существует ли вообще такая возможность: если открыт ордер на продажу OP_SELL по нашему фин. инструменту, не закрывая изменить его на ордер на покупку OP_BUY по нашему фин. инструменту (может только изменится его номер или ещё что). Соответственно изменив при этом размер депозита в сторону результата сделки + или -, но сэкономив спрэд. Или только закрыть ордер на продажу OP_SELL и открыть новый на покупку OP_BUY, потеряв при этом спрэд? Если такая возможность существует, то можно глянуть готовый код?

Посмотри OrderCloseBy()
 
Vinin:

Посмотри OrderCloseBy()

Функция OrderCloseBy()

bool OrderCloseBy(int ticket, int opposite, color Color=CLR_NONE)

Функция закрывает один рыночный ордер другим рыночным ордером, открытым по тому же финансовому инструменту, но в противоположном направлении. Функция возвращает TRUE при успешном завершении функции и FALSE при неудачном завершении функции.

Параметры:

ticket - Уникальный порядковый номер закрываемого ордера.

opposite - Уникальный порядковый номер противоположного ордера.

Color - Цвет стрелки закрытия на графике. Если параметр отсутствует или его значение равно CLR_NONE, то стрелка на графике не отображается.

Размеры встречных ордеров не обязательно должны совпадать. В случае несовпадения размеров ордеров торговая операция выполняется в размере меньшего объема одного из ордеров.

А если нет другого открытого рыночного ордера в противоположном направлении? Уже никак что ли? Если есть такой способ, помогите! Очень нуженнннн!!!!!!!!!!!!! Очень бы не хотелось терять ещё один спрэд в случае последовательного закрытия -> открытия...

 
kolyango:

Функция OrderCloseBy()

Функция закрывает один рыночный ордер другим рыночным ордером, открытым по тому же финансовому инструменту, но в противоположном направлении. Функция возвращает TRUE при успешном завершении функции и FALSE при неудачном завершении функции.

Параметры:

ticket - Уникальный порядковый номер закрываемого ордера.

opposite - Уникальный порядковый номер противоположного ордера.

Color - Цвет стрелки закрытия на графике. Если параметр отсутствует или его значение равно CLR_NONE, то стрелка на графике не отображается.

Размеры встречных ордеров не обязательно должны совпадать. В случае несовпадения размеров ордеров торговая операция выполняется в размере меньшего объема одного из ордеров.

А если нет другого открытого рыночного ордера в противоположном направлении? Уже никак что ли? Если есть такой способ, помогите! Очень нуженнннн!!!!!!!!!!!!! Очень бы не хотелось терять ещё один спрэд в случае последовательного закрытия -> открытия...


Посмотрел. А подумать немного?
 
kolyango:

Функция OrderCloseBy()

Функция закрывает один рыночный ордер другим рыночным ордером, открытым по тому же финансовому инструменту, но в противоположном направлении. Функция возвращает TRUE при успешном завершении функции и FALSE при неудачном завершении функции.

Параметры:

ticket - Уникальный порядковый номер закрываемого ордера.

opposite - Уникальный порядковый номер противоположного ордера.

Color - Цвет стрелки закрытия на графике. Если параметр отсутствует или его значение равно CLR_NONE, то стрелка на графике не отображается.

Размеры встречных ордеров не обязательно должны совпадать. В случае несовпадения размеров ордеров торговая операция выполняется в размере меньшего объема одного из ордеров.

А если нет другого открытого рыночного ордера в противоположном направлении? Уже никак что ли? Если есть такой способ, помогите! Очень нуженнннн!!!!!!!!!!!!!

Функция OrderCloseBy() не годится для переворотов. Она просто закрывает встречные ордера.

Для переворота надо либо закрыть один и открыть другой, противоположный первому, или открыть в противоположную сторону ордер с лотом вдвое больше первого.

После этого, если сочтете необходимым, можете воспользоваться функцией OrderCloseBy().

Пример:

Если открыт СЕЛЛ ЛОТ=0.1 для переворота откройте БАЙ ЛОТ=0.2 .

Можете функцией OrderCloseBy() "погасить" ЛОТ=0.1 и у СЕЛЛА и у БАЯ, оставив только БАЙ ЛОТ=0.1.

-

 
DhP:

Функция OrderCloseBy() не годится для переворотов. Она просто закрывает встречные ордера.

Для переворота надо либо закрыть один и открыть другой, противоположный первому, или открыть в противоположную сторону ордер с лотом вдвое больше первого.

После этого, если сочтете необходимым, можете воспользоваться функцией OrderCloseBy().

Пример:

Если открыт СЕЛЛ ЛОТ=0.1 для переворота откройте БАЙ ЛОТ=0.2 .

Можете функцией OrderCloseBy() "погасить" ЛОТ=0.1 и у СЕЛЛА и у БАЯ, оставив только БАЙ ЛОТ=0.1.

-


Да, но в таком случае никакой экономии спрэда нет! Это всё хорошо, НО если рынок пойдёт в выбраном вами направлении, А ЕСЛИ НЕТ - УБЫТОК!
 
kolyango:

Да, но в таком случае никакой экономии спрэда нет! Это всё хорошо, НО если рынок пойдёт в выбраном вами направлении, А ЕСЛИ НЕТ - УБЫТОК, ДА ЕЩЁ ВДВОЕ БОЛЬШЕ?


C Вас не берут в этом случае (при использовании функции) 2 спреда.

А в случае разворота рынка и при наличии двух ордеров Вы не получаете удвоенный убыток, т.к. первая открытая сделка начинает работать на прибыль. То есть у Вас посути открыт только один ЛОТ=0.1.

 


Если открыт СЕЛЛ ЛОТ=0.1 для переворота откройте БАЙ ЛОТ=0.2 .

Можете функцией OrderCloseBy() "погасить" ЛОТ=0.1 и у СЕЛЛА и у БАЯ, оставив только БАЙ ЛОТ=0.1.

А какой смысл? При открытии БАЙ ЛОТ=0.2 у вас итак возьмут в 2 раза больше, т.е. если бы вы просто закрыли ЛОТ=0.1 и открыли ЛОТ=0.1 получилось тоже самое!!!

 
kolyango:


Если открыт СЕЛЛ ЛОТ=0.1 для переворота откройте БАЙ ЛОТ=0.2 .

Можете функцией OrderCloseBy() "погасить" ЛОТ=0.1 и у СЕЛЛА и у БАЯ, оставив только БАЙ ЛОТ=0.1.

А какой смысл? При открытии БАЙ ЛОТ=0.2 у вас итак возьмут в 2 раза больше, т.е. если бы вы просто закрыли ЛОТ=0.1 и открыли ЛОТ=0.1 получилось тоже самое!!!


ВОзьмите и проверьте. Это же недолго сделать. Один советник с нормальным закрытием, второй использует OrderCloseBy().

Сравните результаты и тогда говорите

Причина обращения: