[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 250

 
как закрыть ордер частично? просто изменить объем сделки с OrderModify?
 
artmedia70:

А подумать над кодом функции? Найдите четыре отличия :) :




нашел ....отличия...))))) ух-ха...я просто в учебнике закапался по программированию говова не варит))
 
eddy:
как закрыть ордер частично? просто изменить объем сделки с OrderModify?
Нет. Закрывать позу меньшим лотом.
 
eddy:
как закрыть ордер частично? просто изменить объем сделки с OrderModify?

Открыть противоположный ордер лотом меньше. Разница - остаток, который должен продолжить существование.

Противоположный лот и часть существующего лота закрыть функцией OrderCloseBy().


 
coronel:

Открыть противоположный ордер лотом меньше. Разница - остаток, который должен продолжить существование.

Противоположный лот и часть существующего лота закрыть функцией OrderCloseBy().

В пятёрке такой фокус не пройдёт. Не забывайте о реквотах и проскальзываниях тоже...
 
artmedia70:
В пятёрке такой фокус не пройдёт. Не забывайте о реквотах и проскальзываниях тоже...

Простите, в какой пятёрке? )) Мы на MQL4.

Реквоты и проскальзывания не учитываю как естественный фактор. Суть не меняется.

 
coronel:

Простите, в какой пятёрке? )) Мы на MQL4.

Реквоты и проскальзывания не учитываю как естественный фактор. Суть не меняется.

Делайте что хотите - ваш выбор сделать две операции вместо одной.
 
artmedia70:
Делайте что хотите - ваш выбор сделать две операции вместо одной.
"две операции вместо одной" - поподробнее, пожалуйста. Может оказаться полезным.
 
coronel:
"две операции вместо одной" - поподробнее, пожалуйста. Может оказаться полезным.

Для частичного закрытия позиции лотом 1.0 можно сделать одну операцию, закрыв её меньшим лотом, например 0.5.

Стандартная функция:

__________________________________________________________________________________________________

bool OrderClose( int ticket, double lots, double price, int slippage, color Color=CLR_NONE)

Закрытие позиции. Возвращает TRUE при успешном завершении функции. Возвращает FALSE при неудачном завершении функции. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
Параметры:
ticket - Уникальный порядковый номер ордера.
lots - Количество лотов для закрытия.
price - Цена закрытия.
slippage - Значение максимального проскальзывания в пунктах.
Color - Цвет стрелки закрытия на графике. Если параметр отсутствует или его значение равно CLR_NONE, то стрелка на графике не отображается.

__________________________________________________________________________________________________

Вы же предлагаете сделать две операции:
1. Открыть противоположную позицию меньшим лотом;

2. Встречно их закрыть, чтобы осталась та позиция, лот которой был больше.

__________________________________________________________________________________________________

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

Закрытие одной открытой позиции другой позицией, открытой по тому же самому инструменту, но в противоположном направлении. Возвращает TRUE при успешном завершении функции. Возвращает FALSE при неудачном завершении функции. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
Параметры:
ticket - Уникальный порядковый номер закрываемого ордера.
opposite - Уникальный порядковый номер противоположного ордера.
Color - Цвет стрелки закрытия на графике. Если параметр отсутствует или его значение равно CLR_NONE, то стрелка на графике не отображается.

_________________________________________________________________________________________________

Соответственно увеличивается и количество неблагоприятных факторов вдвое на одну позицию.

Зачем?

 
artmedia70:

Для частичного закрытия позиции лотом 1.0 можно сделать одну операцию, закрыв её меньшим лотом, например 0.5.

Стандартная функция:

__________________________________________________________________________________________________

bool OrderClose( int ticket, double lots, double price, int slippage, color Color=CLR_NONE)

Закрытие позиции. Возвращает TRUE при успешном завершении функции. Возвращает FALSE при неудачном завершении функции. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
Параметры:
ticket - Уникальный порядковый номер ордера.
lots - Количество лотов для закрытия.
price - Цена закрытия.
slippage - Значение максимального проскальзывания в пунктах.
Color - Цвет стрелки закрытия на графике. Если параметр отсутствует или его значение равно CLR_NONE, то стрелка на графике не отображается.

__________________________________________________________________________________________________

Вы же предлагаете сделать две операции:
1. Открыть противоположную позицию меньшим лотом;

2. Встречно их закрыть, чтобы осталась та позиция, лот которой был больше.

__________________________________________________________________________________________________

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

Закрытие одной открытой позиции другой позицией, открытой по тому же самому инструменту, но в противоположном направлении. Возвращает TRUE при успешном завершении функции. Возвращает FALSE при неудачном завершении функции. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
Параметры:
ticket - Уникальный порядковый номер закрываемого ордера.
opposite - Уникальный порядковый номер противоположного ордера.
Color - Цвет стрелки закрытия на графике. Если параметр отсутствует или его значение равно CLR_NONE, то стрелка на графике не отображается.

_________________________________________________________________________________________________

Соответственно увеличивается и количество неблагоприятных факторов вдвое на одну позицию.

Зачем?



Да, Вы написали исчерпывающе подробно, но, тем не менее, я не увидел разницы.

А именно: отправить запрос на открытие лота (мой вариант) или команду на закрытие части лота (Ваш вариант) подвергаются одному и тому же риску реквоты и проскальзывания.

А закрытие по OrderCloseBy() не несет никакого риска, так как реквоты и проскальзывания теперь уже не имеют значения, ибо после открытия лота (мой вариант), де факто они не существуют, т.е взаимно исключают друг друга.

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