OrderSend + TRADE_ACTION_SLTP. Зачем задается Magic?

 

request.magic заполняется в CTrade::PositionModify. Даже в примерах MQL5 документации по OrderSend заполняется.

Для чего это нужно при изменении стопов?

 
. ... Rick D. ... .:

request.magic заполняется в CTrade::PositionModify. Даже в примерах MQL5 документации по OrderSend заполняется.

Для чего это нужно при изменении стопов?

Может, что б не менять стопы "чужой" позиции?

 
. ... Rick D. ... .:

request.magic заполняется в CTrade::PositionModify. Даже в примерах MQL5 документации по OrderSend заполняется.

Для чего это нужно при изменении стопов?

А Вы не подумали о том, что на одном инструменте может работать не один робот?

 
Aleksey Vyazmikin:

Может, что б не менять стопы "чужой" позиции?

Magic в данной ситуации не работает внутри OrderSend как фильтр. Magic самой позиции тоже не меняется.

Такое впечатление - что Magic просто игнорируется.
 
prostotrader:

А Вы не подумали о том, что на одном инструменте может работать не один робот?

Разверните вашу мысль.

 
. ... Rick D. ... .:

Magic в данной ситуации не работает внутри OrderSend как фильтр. Magic самой позиции тоже не меняется.

Такое впечатление - что Magic просто игнорируется.

Не знаю логику стандартного класса, использую свой торговый класс. Написал для чего это нужно, а работает или нет - другой вопрос.

 

Удалось найти только одно место, куда прилетает этот Magic. В OnTradeTransaction его можно найти в request.

Получается - если не используешь OnTradeTransaction, то Magic перед модификацией можно не задавать.
 

Зачем задавать magic туда где используется тикет или символ если счёт netting

Согласно документации magic не используется.

SL & TP Modification

Торговый приказ на модификацию уровней StopLoss и/или TakeProfit. Требуется указание 4 полей:

  • action
  • symbol
  • sl
  • tp
  • position
 
Alexey Viktorov:

Зачем задавать magic туда где используется тикет или символ если счёт netting

Согласно документации magic не используется.

И там-же в документации пример на изменение позиции:

request.action  =TRADE_ACTION_SLTP; // тип торговой операции
request.position=position_ticket;   // тикет позиции
request.symbol=position_symbol;     // символ 
request.sl      =sl;                // Stop Loss позиции
request.tp      =tp;                // Take Profit позиции
request.magic=EXPERT_MAGIC;         // MagicNumber позиции
 
. ... Rick D. ... .:

И там-же в документации пример на изменение позиции:

Видимо примеры пишут программисты не самого высокого уровня. И так-же как и мы имеют право на ошибки. Я редко читаю примеры.

Плюс к этому, документация писалась когда МТ5 не поддерживал hadge счета. А когда их ввели, то срочно стали править документацию. Соответственно возможны как недокументированные изменения, так и излишества вызывающие такие вот вопросы. А в целом документация достойна похвалы. Лично я при изучении mql5 пользовался исключительно документацией.

 

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

SL & TP Modification

Торговый приказ на модификацию уровней StopLoss и/или TakeProfit. Требуется указание 4 полей:

  • action
  • symbol
  • sl
  • tp
  • position

Говорится, что достаточно указать 4 поля, а перечислено 5. Но если хорошо подумать, то всё верно сказано, достаточно 4 поля заполнить.

Для hadge счетов

  • action
  • position
  • sl
  • tp

Для netting

Но об этом не говорится в документации. Иначе это будет не документация, а учебник для чайников. Но и заполнение дополнительных полей тоже не возбраняется. На любителя...
Причина обращения: