초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 83

 

문제가 발생했습니다. 특정 지점에서 테스트할 때 알 수 없는 이유로 "잘못된 중지" 오류가 생성되지만 중지는 정확합니다.

알고리즘은 간단합니다. 주문이 이루어집니다.

   MqlTradeResult result = { 0 };
   MqlTradeRequest request = { 0 };
   
   double price = SymbolInfoDouble ( _Symbol , isBuy ? SYMBOL_ASK : SYMBOL_BID );
   double sl = price - lvl * _Point ;
   double tp = price + lvl * _Point ;

   request.action = TRADE_ACTION_DEAL ;
   request.magic = magic;
   request.symbol = _Symbol ;
   request.volume = lot;
   request.price = price;
   request.deviation = deviation;
   request.type = isBuy ? ORDER_TYPE_BUY : ORDER_TYPE_SELL ;

   OrderSend (request, result);

   order = result.order;
   
   if (order)
   {   
       ZeroMemory (result);
       ZeroMemory (request);

      request.action = TRADE_ACTION_SLTP ;
      request.order = order;
      request.symbol = _Symbol ;
      request.sl = isBuy ? sl : tp;
      request.tp = isBuy ? tp : sl;

       if (! OrderSend (request, result))
      {
         Print ( " --- Can not modify order --- error = " + GetLastError () + " order = " + order +  " price = " + price);
      }
   }

닫히면 절차를 반복하십시오.

결과적으로 다음과 같은 일이 발생했습니다(2010.05.01 시작).

 2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 21 : 59 : 00     --- Can not modify order --- error = 4756 order = 4720 price = 1.41795
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 21 : 59 : 00    failed modify sell 0.10 EURUSD sl: 0.00000 , tp: 0.00000 -> sl: 1.42095 , tp: 1.41495 [Invalid stops]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 21 : 59 : 00    order performed sell 0.10 at 1.41795 [ # 4720 sell 0.10 EURUSD at 1.41795 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 21 : 59 : 00    deal performed [ # 4720 sell 0.10 EURUSD at 1.41795 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 21 : 59 : 00    deal # 4720 sell 0.10 EURUSD at 1.41795 done (based on order # 4720 )
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 21 : 59 : 00    exchange sell 0.10 EURUSD at 1.41795 ( 1.41795 / 1.42399 / 1.41795 )
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 21 : 59 : 00    order performed buy 0.10 at 1.42003 [ # 4719 buy 0.10 EURUSD at 1.42003 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 21 : 59 : 00    deal performed [ # 4719 buy 0.10 EURUSD at 1.42003 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 21 : 59 : 00    deal # 4719 buy 0.10 EURUSD at 1.42003 done (based on order # 4719 )
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 21 : 59 : 00    stop loss triggered sell 0.10 EURUSD 1.41703 sl: 1.42003 tp: 1.41403 [ # 4719 buy 0.10 EURUSD at 1.42003 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 17 : 37 : 33    position modified [sell 0.10 EURUSD 1.41703 sl: 1.42003 tp: 1.41403 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 17 : 37 : 33    order performed sell 0.10 at 1.41703 [ # 4718 sell 0.10 EURUSD at 1.41703 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 17 : 37 : 33    deal performed [ # 4718 sell 0.10 EURUSD at 1.41703 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 17 : 37 : 33    deal # 4718 sell 0.10 EURUSD at 1.41703 done (based on order # 4718 )
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 17 : 37 : 33    exchange sell 0.10 EURUSD at 1.41703 ( 1.41703 / 1.41711 / 1.41703 )
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 17 : 37 : 33    order performed buy 0.10 at 1.41711 [ # 4717 buy 0.10 EURUSD at 1.41711 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 17 : 37 : 33    deal performed [ # 4717 buy 0.10 EURUSD at 1.41711 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 17 : 37 : 33    deal # 4717 buy 0.10 EURUSD at 1.41711 done (based on order # 4717 )
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 17 : 37 : 33    stop loss triggered sell 0.10 EURUSD 1.41411 sl: 1.41711 tp: 1.41111 [ # 4717 buy 0.10 EURUSD at 1.41711 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 13 : 29 : 27    position modified [sell 0.10 EURUSD 1.41411 sl: 1.41711 tp: 1.41111 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 13 : 29 : 27    order performed sell 0.10 at 1.41411 [ # 4716 sell 0.10 EURUSD at 1.41411 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 13 : 29 : 27    deal performed [ # 4716 sell 0.10 EURUSD at 1.41411 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 13 : 29 : 27    deal # 4716 sell 0.10 EURUSD at 1.41411 done (based on order # 4716 )
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 13 : 29 : 27    exchange sell 0.10 EURUSD at 1.41411 ( 1.41411 / 1.41420 / 1.41411 )
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 13 : 29 : 27    order performed buy 0.10 at 1.41420 [ # 4715 buy 0.10 EURUSD at 1.41420 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 13 : 29 : 27    deal performed [ # 4715 buy 0.10 EURUSD at 1.41420 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 13 : 29 : 27    deal # 4715 buy 0.10 EURUSD at 1.41420 done (based on order # 4715 )
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 13 : 29 : 27    stop loss triggered sell 0.10 EURUSD 1.41120 sl: 1.41420 tp: 1.40820 [ # 4715 buy 0.10 EURUSD at 1.41420 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 11 : 56 : 13    position modified [sell 0.10 EURUSD 1.41120 sl: 1.41420 tp: 1.40820 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 11 : 56 : 13    order performed sell 0.10 at 1.41120 [ # 4714 sell 0.10 EURUSD at 1.41120 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 11 : 56 : 13    deal performed [ # 4714 sell 0.10 EURUSD at 1.41120 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 11 : 56 : 13    deal # 4714 sell 0.10 EURUSD at 1.41120 done (based on order # 4714 )
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 11 : 56 : 13    exchange sell 0.10 EURUSD at 1.41120 ( 1.41120 / 1.41126 / 1.41120 )
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 11 : 56 : 13    order performed buy 0.10 at 1.41126 [ # 4713 buy 0.10 EURUSD at 1.41126 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 11 : 56 : 13    deal performed [ # 4713 buy 0.10 EURUSD at 1.41126 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 11 : 56 : 13    deal # 4713 buy 0.10 EURUSD at 1.41126 done (based on order # 4713 )
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 11 : 56 : 13    stop loss triggered sell 0.10 EURUSD 1.40826 sl: 1.41126 tp: 1.40526 [ # 4713 buy 0.10 EURUSD at 1.41126 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 11 : 00 : 28    position modified [sell 0.10 EURUSD 1.40826 sl: 1.41126 tp: 1.40526 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 11 : 00 : 28    order performed sell 0.10 at 1.40826 [ # 4712 sell 0.10 EURUSD at 1.40826 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 11 : 00 : 28    deal performed [ # 4712 sell 0.10 EURUSD at 1.40826 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 11 : 00 : 28    deal # 4712 sell 0.10 EURUSD at 1.40826 done (based on order # 4712 )
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 11 : 00 : 28    exchange sell 0.10 EURUSD at 1.40826 ( 1.40826 / 1.40835 / 1.40826 )
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 11 : 00 : 28    order performed buy 0.10 at 1.40832 [ # 4711 buy 0.10 EURUSD at 1.40832 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 11 : 00 : 28    deal performed [ # 4711 buy 0.10 EURUSD at 1.40832 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 11 : 00 : 28    deal # 4711 buy 0.10 EURUSD at 1.40832 done (based on order # 4711 )
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 11 : 00 : 28    stop loss triggered sell 0.10 EURUSD 1.40532 sl: 1.40832 tp: 1.40232 [ # 4711 buy 0.10 EURUSD at 1.40832 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 09 : 56 : 28    position modified [sell 0.10 EURUSD 1.40532 sl: 1.40832 tp: 1.40232 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 09 : 56 : 28    order performed sell 0.10 at 1.40532 [ # 4710 sell 0.10 EURUSD at 1.40532 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 09 : 56 : 28    deal performed [ # 4710 sell 0.10 EURUSD at 1.40532 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 09 : 56 : 28    deal # 4710 sell 0.10 EURUSD at 1.40532 done (based on order # 4710 )
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 09 : 56 : 28    exchange sell 0.10 EURUSD at 1.40532 ( 1.40532 / 1.40542 / 1.40532 )
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 09 : 56 : 28    order performed buy 0.10 at 1.40543 [ # 4709 buy 0.10 EURUSD at 1.40543 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 09 : 56 : 28    deal performed [ # 4709 buy 0.10 EURUSD at 1.40543 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 09 : 56 : 28    deal # 4709 buy 0.10 EURUSD at 1.40543 done (based on order # 4709 )
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 09 : 56 : 28    take profit triggered sell 0.10 EURUSD 1.40843 sl: 1.41143 tp: 1.40543 [ # 4709 buy 0.10 EURUSD at 1.40543 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 09 : 00 : 37    position modified [sell 0.10 EURUSD 1.40843 sl: 1.41143 tp: 1.40543 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 09 : 00 : 37    order performed sell 0.10 at 1.40843 [ # 4708 sell 0.10 EURUSD at 1.40843 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 09 : 00 : 37    deal performed [ # 4708 sell 0.10 EURUSD at 1.40843 ]
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 09 : 00 : 37    deal # 4708 sell 0.10 EURUSD at 1.40843 done (based on order # 4708 )
2013.01 . 16 13 : 22 : 16      Core 1    2011.03 . 18 09 : 00 : 37    exchange sell 0.10 EURUSD at 1.40843 ( 1.40843 / 1.40852 / 1.40843 )
...

무엇이 잘못될 수 있습니까? (당시 보증금의 80%는 무료였습니다)

 
Forux : 문제가 발생했습니다. 특정 지점에서 테스트할 때 알 수 없는 이유로 "잘못된 중지" 오류가 생성되지만 중지는 정확합니다.

결과적으로 다음과 같은 일이 발생했습니다(2010.05.01 시작).

무엇이 잘못될 수 있습니까? (당시 보증금의 80%는 무료였습니다)

위치 수정에 대한 응답으로 오류 메시지 가 나타납니다. 동시에 현재 가격에서 sl/tp 수준의 허용 거리에 대한 코드 확인이 없습니다. 두 번의 거래 요청을 처리하는 동안 현재 시장 가격이 서버에서 허용하는 것보다 작은 거리만큼 sl 또는 tp 수준에 접근할 수 있습니다. ORDER_STOPS_LEVEL 디렉토리에서 확인
 
Yedelkin :
위치 수정에 대한 응답으로 오류 메시지 가 나타납니다. 동시에 현재 가격에서 sl/tp 수준의 허용 거리에 대한 코드 확인이 없습니다. 두 번의 거래 요청을 처리하는 동안 현재 시장 가격이 서버에서 허용하는 것보다 적은 거리만큼 sl 또는 tp 수준에 접근한 경우가 있습니다. ORDER_STOPS_LEVEL 디렉토리에서 확인

테스트할 코드를 다음과 같이 변경했습니다.

price = SymbolInfoDouble ( _Symbol , isBuy ? SYMBOL_ASK : SYMBOL_BID );
Print(" --- Can not modify order --- error = " + GetLastError() + " order = " + order + " price = " + price);

결과적으로 오류 라인은 변경되지 않았습니다(즉, 가격이 변경되지 않음). 네, 그리고 아마도 그럴 수 없었을 것입니다. 이것은 2년 반 동안 회의록, alpari의 역사에 대한 테스트입니다(역사의 98% 품질).  

이전에 정확히 같은 일이 발생했지만 오류가 없었기 때문에 메타 트레이더 자체의 일종의 오류처럼 보입니다.

 
Forux : 확인을 위해 코드를 변경했습니다.
글쎄, 당신은 또한 허용 들여 쓰기에 대한 확인을 했습니까?
 
예델킨 :
글쎄, 당신은 또한 허용 들여 쓰기에 대한 확인을 했습니까?
예델킨:
글쎄, 당신은 또한 허용 들여 쓰기에 대한 확인을 했습니까?

테스트의 허용 거리는 0입니다. 그리고 가격은 변경되지 않았으며 오류 후에도 수정 전이라도 주문이 생성된 가격과 동일합니다.  

price = SymbolInfoDouble ( _Symbol , isBuy ? SYMBOL_ASK : SYMBOL_BID );
Print ( "SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL) == " + SymbolInfoInteger ( _Symbol , SYMBOL_TRADE_STOPS_LEVEL ));
Print ( " --- Can not modify order --- error = " + GetLastError () + " isBuy = " + isBuy + " order = " + order +   " price = " + price);

통나무

 2013.01 . 16 14 : 32 : 28      Core 1    2011.03 . 18 21 : 59 : 00     --- Can not modify order --- error = 4756 isBuy = false order = 4720 price = 1.41795
2013.01 . 16 14 : 32 : 28      Core 1    2011.03 . 18 21 : 59 : 00    SymbolInfoInteger ( _Symbol , SYMBOL_TRADE_STOPS_LEVEL ) == 0
2013.01 . 16 14 : 32 : 28      Core 1    2011.03 . 18 21 : 59 : 00    failed modify sell 0.10 EURUSD sl: 0.00000 , tp: 0.00000 -> sl: 1.42095 , tp: 1.41495 [Invalid stops]
2013.01 . 16 14 : 32 : 28      Core 1    2011.03 . 18 21 : 59 : 00    order performed sell 0.10 at 1.41795 [ # 4720 sell 0.10 EURUSD at 1.41795 ]
2013.01 . 16 14 : 32 : 28      Core 1    2011.03 . 18 21 : 59 : 00    deal performed [ # 4720 sell 0.10 EURUSD at 1.41795 ]
2013.01 . 16 14 : 32 : 28      Core 1    2011.03 . 18 21 : 59 : 00    deal # 4720 sell 0.10 EURUSD at 1.41795 done (based on order # 4720 )
2013.01 . 16 14 : 32 : 28      Core 1    2011.03 . 18 21 : 59 : 00    exchange sell 0.10 EURUSD at 1.41795 ( 1.41795 / 1.42399 / 1.41795 )
...
 
Forux : 네, 가격은 변동이 없습니다. 오류 이후에는 수정 전이라도 주문이 생성된 것과 동일합니다.  

가격 자체(일반적인 경우)는 처음에 현재 시점에서 서버가 허용하는 수준에 더 가까울 수 있습니다. 따라서 이러한 상태를 항상 확인하는 것이 바람직합니다.

Forux : 테스트 0에서 유효한 거리는 제공합니다.

예, 이제 이 경우 들여쓰기를 검사해도 문제가 해결되지 않습니다. 매도 포지션에 대한 sl/tp 수준이 입찰 가격을 기반으로 설정된다는 것을 정확히 이해했습니까?

 
Yedelkin :

가격 자체(일반적인 경우)는 처음에 현재 시점에서 서버가 허용하는 수준에 더 가까울 수 있습니다. 따라서 이러한 상태를 항상 확인하는 것이 바람직합니다.

예, 이제 이 경우 들여쓰기를 검사해도 문제가 해결되지 않습니다. 매도 포지션에 대한 sl/tp 수준이 입찰 가격을 기반으로 설정된다는 것을 정확히 이해했습니까?

예, 진입 및 퇴장은 주문 유형 에 따라 묻거나 입찰합니다.
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
Forux : 예, 진입 및 퇴장은 주문 유형 에 따라 매도 또는 입찰입니다.
매도 포지션에 대한 sl/tp 수준이 입찰 가격을 기반으로 설정된다는 것을 정확히 이해했습니까? 어렵지 않다면 문제 영역에 대한 현재 Ask, Bid, SL & TP를 인쇄하십시오.
 
Yedelkin :
매도 포지션에 대한 sl/tp 수준이 입찰 가격을 기반으로 설정된다는 것을 정확히 이해했습니까? 어렵지 않다면 문제 영역에 대한 현재 Ask, Bid, SL & TP를 인쇄하십시오.
 2013.01 . 16 15 : 55 : 57      Core 1    2011.03 . 18 21 : 59 : 00     --- Can not modify order --- error = 4756 isBuy = false order = 4720 price = 1.41795
2013.01 . 16 15 : 55 : 57      Core 1    2011.03 . 18 21 : 59 : 00    TP == 1.41495
2013.01 . 16 15 : 55 : 57      Core 1    2011.03 . 18 21 : 59 : 00    SL == 1.42095
2013.01 . 16 15 : 55 : 57      Core 1    2011.03 . 18 21 : 59 : 00    BID == 1.41795
2013.01 . 16 15 : 55 : 57      Core 1    2011.03 . 18 21 : 59 : 00    ASK == 1.42399
2013.01 . 16 15 : 55 : 57      Core 1    2011.03 . 18 21 : 59 : 00    SymbolInfoInteger ( _Symbol , SYMBOL_TRADE_STOPS_LEVEL ) == 0
2013.01 . 16 15 : 55 : 57      Core 1    2011.03 . 18 21 : 59 : 00    failed modify sell 0.10 EURUSD sl: 0.00000 , tp: 0.00000 -> sl: 1.42095 , tp: 1.41495 [Invalid stops]
2013.01 . 16 15 : 55 : 57      Core 1    2011.03 . 18 21 : 59 : 00    order performed sell 0.10 at 1.41795 [ # 4720 sell 0.10 EURUSD at 1.41795 ]
2013.01 . 16 15 : 55 : 57      Core 1    2011.03 . 18 21 : 59 : 00    deal performed [ # 4720 sell 0.10 EURUSD at 1.41795 ]
2013.01 . 16 15 : 55 : 57      Core 1    2011.03 . 18 21 : 59 : 00    deal # 4720 sell 0.10 EURUSD at 1.41795 done (based on order # 4720 )
2013.01 . 16 15 : 55 : 57      Core 1    2011.03 . 18 21 : 59 : 00    exchange sell 0.10 EURUSD at 1.41795 ( 1.41795 / 1.42399 / 1.41795 )
...
질문이 삭제되었습니다. (글쎄, 스프레드 o_O)
 

안녕하세요! 이전에는 MT-5 프로그램에 없었지만 이제는 "신호" 섹션에서 제공하기 시작했습니다.

나에게 필요하지 않은 정보. 나는 모바일 인터넷을 사용하고 모든 MB에 대해 지불합니다.

그리고 이러한 신호는 인터넷 소비를 3-4배 증가시켰습니다.

질문: 이러한 신호가 오지 않도록 무엇을 어디서 어떻게 설정합니까? 나는 신호에 가입하지 않았습니다.

사유: