Вопросы от "чайника" - страница 140

 

Подскажите, пытаюсь выставить тейкпрофит и стоплосс, ордер открывается а СЛ и ТП не выставляется, в чем проблема и как исправить?

 

Проверьте для инструмента свойство SYMBOL_TRADE_EXEMODE, которое может быть одним из значений перечисления ENUM_SYMBOL_TRADE_EXECUTION:

ENUM_SYMBOL_TRADE_EXECUTION

Идентификатор

Описание

SYMBOL_TRADE_EXECUTION_REQUEST

Торговля по запросу

SYMBOL_TRADE_EXECUTION_INSTANT

Торговля по потоковым ценам

SYMBOL_TRADE_EXECUTION_MARKET

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

SYMBOL_TRADE_EXECUTION_EXCHANGE

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

 

Для торговли в режиме SYMBOL_TRADE_EXECUTION_MARKET значения SL и TP не требуются.

ENUM_SYMBOL_TRADE_EXECUTION trade_execution=(ENUM_SYMBOL_TRADE_EXECUTION)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_EXEMODE);
 
T-G:

Подскажите, пытаюсь выставить тейкпрофит и стоплосс, ордер открывается а СЛ и ТП не выставляется, в чем проблема и как исправить?

   А какой режим исполнения рыночных ордеров поддерживается брокером? Если поддерживается режим Market Execution, то для него не предусмотрено SL и ТР.
 

Возвращается 3 - то есть получается SYMBOL_TRADE_EXECUTION_MARKET

Что значит не предусмотрены СЛ и ТП а если нужны уровни, что делать? Или вы имеете виду надо модифицировать после открытия? Если модифицировать, можете дать пример функции, спасибо.

 
T-G:

Возвращается 3 - то есть получается SYMBOL_TRADE_EXECUTION_MARKET

Что значит не предусмотрены СЛ и ТП а если нужны уровни, что делать? Или вы имеете виду надо модифицировать после открытия? Если модифицировать, можете дать пример функции, спасибо.

Если вы будете использовать лимитные ордера, то сможете установить и стопи и тейк. На сколько близко к рынку можно выставить лимитный ордер? Зависит от брокера, от нуля пипсов (т.е. по рыночной цене).
 
а если мне надо по рынку? открыл ордер и что делать с ним если не могу поставить ТП и СЛ?
 
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса - Документация по MQL5
 
T-G:

а если мне надо по рынку? открыл ордер и что делать с ним если не могу поставить ТП и СЛ?
После открытия/изменения позиции можно отдельным запросом задать уровни SL и TP.
 
T-G: Или вы имеете виду надо модифицировать после открытия? Если модифицировать, можете дать пример функции, спасибо.     

Вот здесь Справочник MQL5 / Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса сказано:

SL & TP Modification

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

action 
symbol 
sl 
tp 

 Поэтому код примерно такой (после проверки на наличие позиции):

bool PositionModify(const string symbol,double sl,double tp)
  { 
   m_request={0};
   m_result ={0};
//--- setting request
   m_request.action=TRADE_ACTION_SLTP;
   m_request.symbol=symbol;
   m_request.sl    =sl;
   m_request.tp    =tp;
//--- order send
   if(!OrderSend(m_request,m_result))
     {
      Print("Неудача с отправкой ордера при TRADE_ACTION_SLTP");
      return(false);
     }
//--- ok
   return(true);
  }
 
T-G:

Возвращается 3 - то есть получается SYMBOL_TRADE_EXECUTION_MARKET 

Похоже, проблема в другом.

void OnStart()
  {
   Print("SYMBOL_TRADE_EXECUTION_MARKET=",SYMBOL_TRADE_EXECUTION_MARKET);
  }
Значение "3" - ну никак не возвращается :) Ведь в перечислениях нумерация идёт с нуля.
Причина обращения: