찻주전자의 질문 - 페이지 140

 

말해봐, 내가 이익실현과 손절매를 설정하려고 하는데 주문은 열렸지만 SL과 TP는 설정되지 않았다. 문제는 무엇이며 해결 방법은 무엇입니까?

 

ENUM_SYMBOL_TRADE_EXECUTION 열거형 값 중 하나일 수 있는 기호의 SYMBOL_TRADE_EXEMODE 속성을 확인합니다 .

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 );
 
TG :

말해봐, 내가 이익실현과 손절매를 설정하려고 하는데 주문은 열렸지만 SL과 TP는 설정되지 않았다. 문제는 무엇이며 해결 방법은 무엇입니까?

그리고 브로커가 지원하는 시장 주문 실행 모드는 무엇입니까? Market Execution 모드가 지원되는 경우 SL 및 TP가 제공되지 않습니다.
 

3이 반환됩니다. 즉, SYMBOL_TRADE_EXECUTION_MARKET이 반환됩니다 .

SL과 TP가 제공되지 않는다는 것은 무엇을 의미하며, 레벨이 필요한 경우 어떻게 해야 하나요? 아니면 개봉 후 수정이 필요하다는 말씀이신가요? 수정했다면 그 기능의 예를 들어주실 수 있습니까? 감사합니다.

 
TG :

3이 반환됩니다. 즉, SYMBOL_TRADE_EXECUTION_MARKET이 반환됩니다.

SL과 TP가 제공되지 않는다는 것은 무엇을 의미하며, 레벨이 필요한 경우 어떻게 해야 하나요? 아니면 개봉 후 수정이 필요하다는 말씀이신가요? 수정했다면 그 기능의 예를 들어주실 수 있습니까? 감사합니다.

지정가 주문을 사용하면 stop과 take를 모두 설정할 수 있습니다. 지정가 주문은 시장에 얼마나 가깝게 할 수 있습니까? 제로 핍(즉, 시장 가격)에서 브로커에 따라 다릅니다.
 
시장에 가야 한다면? 주문을 열었는데 TP와 SL을 배치할 수 없으면 어떻게 해야 합니까?
 
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса - Документация по MQL5
 
TG :

시장에 가야 한다면? 주문 을 열었는데 TP와 SL을 배치할 수 없으면 어떻게 해야 합니까?
포지션 오픈/변경 후 별도의 요청으로 SL, TP 레벨을 설정할 수 있습니다.
 
TG : 아니면 개봉 후 수정을 말씀하시는 건가요? 수정했다면 그 기능의 예를 들어주실 수 있습니까? 감사합니다.

여기 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 );
  }
 
TG :

3 이 반환됩니다. 즉, SYMBOL_TRADE_EXECUTION_MARKET이 반환됩니다.

문제는 다른 곳에 있는 것 같습니다.

 void OnStart ()
  {
   Print ( "SYMBOL_TRADE_EXECUTION_MARKET=" , SYMBOL_TRADE_EXECUTION_MARKET );
  }
값 "3"은 어떤 식으로든 반환되지 않습니다. :) 결국, 열거에서 번호는 0부터 시작합니다.