Проблема сокращения размера позиции путём отправки ордера советником

 

Всем добрый день!

Хотелось бы услышать ответ, желательно от разработчиков на следующий вопрос:

Как правильно сократить размер позиции при автоматической торговле?

Перепробовал все варианты (стопы уже открытой позиции, нулевые стопы, стопы в направлении ордера (обратном открытой позиции), стопы в направлении открытой позиции, но другие).

Те же варианты и на том же счёте выполненные вручную работают (кроме несовпадающих стопов в направлении открытой позиции).

Коды ошибок 10016 и 10021.

Скриншоты прилагаются.

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Свойства позиций - Торговые константы - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Andrey Kotrin:

Всем добрый день!

Хотелось бы услышать ответ, желательно от разработчиков на следующий вопрос:

Как правильно сократить размер позиции при автоматической торговле?


Через отправку ордера противоположного направления.

https://www.mql5.com/ru/docs/trading/ordersend

Документация по MQL5: Торговые функции / OrderSend
Документация по MQL5: Торговые функции / OrderSend
  • www.mql5.com
OrderSend - Торговые функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Разумеется именно этой функцией я и пользуюсь.

Прекрасно удается добавить к существующей позиции, перевернуть позицию как одним так и двумя ордерами. 

Проблема только в уменьшении размера. В скриншотах приведены несколько вариантов заполнения стандартной структуры запроса - ни один из них не был выполнен.

Помимо  приведенных перепробовал варианты с заполнением цены как текущей, так и цены открытия существующей позиции. 

 
У вас всюду deviation=0
 
Andrey Kotrin:

Всем добрый день!

Хотелось бы услышать ответ, желательно от разработчиков на следующий вопрос:

Как правильно сократить размер позиции при автоматической торговле?

Перепробовал все варианты (стопы уже открытой позиции, нулевые стопы, стопы в направлении ордера (обратном открытой позиции), стопы в направлении открытой позиции, но другие).

Те же варианты и на том же счёте выполненные вручную работают (кроме несовпадающих стопов в направлении открытой позиции).

Коды ошибок 10016 и 10021.

Скриншоты прилагаются.

А вы уверены что заполнение должно быть ORDER_FILLING_RETURN

Режим исполнения\Политика заполнения

Все/Ничего (FOK ORDER_FILLING_FOK)

Все/Частично (IOC ORDER_FILLING_IOC)

Вернуть (Return ORDER_FILLING_RETURN )

Немедленное исполнение

(SYMBOL_TRADE_EXECUTION_INSTANT)

+ (независимо от настройки символа)

+ (независимо от настройки символа)

+ (всегда)

Исполнения по запросу

SYMBOL_TRADE_EXECUTION_REQUEST

+ (независимо от настройки символа)

 

+ (независимо от настройки символа)

+ (всегда)

Исполнение по рынку

SYMBOL_TRADE_EXECUTION_MARKET

+ (задается в настройках символа)

+ (задается в настройках символа)

- (запрещено при любых настройках символа)

Биржевое исполнение

SYMBOL_TRADE_EXECUTION_EXCHANGE

+ (задается в настройках символа)

+ (задается в настройках символа)

+ (всегда)

 
Andrey Kotrin:

Как правильно сократить размер позиции при автоматической торговле?

Те же варианты и на том же счёте выполненные вручную работают (кроме несовпадающих стопов в направлении открытой позиции).

Два варианта.

  • Запустить прослушку. После чего руками сделать нужные торговые запросы и посмотреть, что в данных от прослушки.
  • Запустить скрипт, который на все возможные торговые действия автоматически покажет правильное заполнение MqlTradeRequest.
 

Всем спасибо, за советы!

На евро-долларе наладить получилось, а на прочих инструментах нет!

Думается, что есть проблема на стороне сервера демо-счёта.

Хотелось бы обратить внимание разработчиков.

 
Andrey Kotrin #:

Всем спасибо, за советы!

На евро-долларе наладить получилось, а на прочих инструментах нет!

Думается, что есть проблема на стороне сервера демо-счёта.

Хотелось бы обратить внимание разработчиков.

видимо Ваш эксперт установлен на евродолларе и в торговых функциях символ задан функцией Symbol() или _Symbol

Вам нужно указать требуемый символ 

 
Renat Akhtyamov #:

видимо Ваш эксперт установлен на евродолларе и в торговых функциях символ задан функцией Symbol() или _Symbol

Вам нужно указать требуемый символ 

Я ставил на GBPUSD  с теми же настройками, а свой символ он у сервера запрашивает.

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