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

 
Alexey Kozitsyn :
예, 입력 매개변수를 수정할 수 없습니다. 솔직히 말해서 3/5 자리 따옴표에 따라 이 값을 변경하는 이유를 이해하지 못합니다. 결국 입력 매개변수에서 이 값을 설정합니다. 100(3/5가 숫자인 경우)을 쓰고 고통받지 않을 수 있습니까?

사실, 나는 5개 기호에 대해 최적화를 수행합니다 - 더 많은 기록, 그리고 4개에서 거래, 포인트를 포함하여 다른 설정이 사용됩니다. 나는 설정에서 혼란스러워하고 싶지 않습니다. 그렇기 때문에 그러한 솔루션입니다.

 
-Aleks- :

사실, 나는 5개 기호에 대해 최적화를 수행합니다 - 더 많은 기록, 그리고 4개에서 거래, 포인트를 포함하여 다른 설정이 사용됩니다. 나는 설정에서 혼란스러워하고 싶지 않습니다. 그렇기 때문에 그러한 솔루션입니다.

이것이 작동하는 방식입니다

int Sign = 1 ;

int OnInit () {
// Округлим огрызки - 3 и 5 знак
Sign=( SymbolInfoInteger (_Symbol, SYMBOL_DIGITS )== 3 || SymbolInfoInteger (_Symbol, SYMBOL_DIGITS )== 5 )? 10 : 1 ;
// Приведем к терминальному количеству знаков
TakeProfit*=Sign;
StopLoss*=Sign;
TrailingShift*=Sign;
TrailingStep*=Sign;
Slippage*=Sign;
}
 
Vitaly Muzichenko :

이것이 작동하는 방식입니다

int Sign = 1 ;

int OnInit () {
// Округлим огрызки - 3 и 5 знак
Sign=( SymbolInfoInteger (_Symbol, SYMBOL_DIGITS )== 3 || SymbolInfoInteger (_Symbol, SYMBOL_DIGITS )== 5 )? 10 : 1 ;
// Приведем к терминальному количеству знаков
TakeProfit*=Sign;
StopLoss*=Sign;
TrailingShift*=Sign;
TrailingStep*=Sign;
Slippage*=Sign;
}


감사합니다. 어드바이저를 시작할 수 있게 되면 바로 시도해 보겠습니다...

 

이 오류가 계속 발생합니다. 어떻게 수정합니까?

'MODE_MAIN' - 이미 정의된 열거자 식별자 initmql4__1.mqh 223 24


 ENUM_STO_PRICE StoFieldMigrate(int field)


  {
   switch(field)
     {
      case 0: return(STO_LOWHIGH);
      case 1: return(STO_CLOSECLOSE);
      default: return(STO_LOWHIGH);
     }
  }

//+------------------------------------------------------------------+
enum ALLIGATOR_MODE  { MODE_GATORJAW=1,   MODE_GATORTEETH, MODE_GATORLIPS };
enum ADX_MODE        { MODE_MAIN,         MODE_PLUSDI, MODE_MINUSDI };
enum UP_LOW_MODE     { MODE_BASE,         MODE_UPPER,      MODE_LOWER };
enum ICHIMOKU_MODE   { MODE_TENKANSEN=1,  MODE_KIJUNSEN, MODE_SENKOUSPANA, MODE_SENKOUSPANB, MODE_CHINKOUSPAN };
enum MAIN_SIGNAL_MODE{ MODE_MAIN ,         MODE_SIGNAL };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double CopyBufferMQL4(int handle,int index,int shift)
  {
   double buf[];
   switch(index)
     {
      case 0: if(CopyBuffer(handle,0,shift,1,buf)>0)
         return(buf[0]); break;
      case 1: if(CopyBuffer(handle,1,shift,1,buf)>0)
         return(buf[0]); break;
      case 2: if(CopyBuffer(handle,2,shift,1,buf)>0)
         return(buf[0]); break;
      case 3: if(CopyBuffer(handle,3,shift,1,buf)>0)
         return(buf[0]); break;
      case 4: if(CopyBuffer(handle,4,shift,1,buf)>0)
         return(buf[0]); break;
      default: break;
     }
   return(EMPTY_VALUE);
  }
//+------------------------------------------------------------------+

 
-Aleks- :

이러한 상황에서 오류가 발생합니다. 오류가 발생하는 이유를 이해하는 데 도움이 됩니다. MQL5에서는 사용자가 입력한 변수 값을 변경할 수 없습니까?

금지입니다!

MQL4_to_MQL5.mqh를 사용하기로 결정했다면 사용하지 않는 것이 좋습니다. 왜냐하면 라이브러리의 설명에 있는 예제를 위해 작성되었습니다. 저것들. 그것은 결코 보편적이지 않습니다. 특히 MarketInfo의 매우 제한된 버전이 있습니다(예제 작동을 위해). 그러나 거기에는 좋은 해결책이 있습니다. 따라서 이 mqh 자체를 사용하지 않고 거기에서 유용한 것만 가져오는 것이 좋습니다.

 
-Aleks- :

이 오류가 계속 발생합니다. 어떻게 수정합니까?

'MODE_MAIN' - 이미 정의된 열거자 식별자 initmql4__1.mqh 223 24


 ENUM_STO_PRICE StoFieldMigrate(int field)


  {
   switch(field)
     {
      case 0: return(STO_LOWHIGH);
      case 1: return(STO_CLOSECLOSE);
      default: return(STO_LOWHIGH);
     }
  }

//+------------------------------------------------------------------+
enum ALLIGATOR_MODE  { MODE_GATORJAW=1,   MODE_GATORTEETH, MODE_GATORLIPS };
enum ADX_MODE        { MODE_MAIN,         MODE_PLUSDI, MODE_MINUSDI };
enum UP_LOW_MODE     { MODE_BASE,         MODE_UPPER,      MODE_LOWER };
enum ICHIMOKU_MODE   { MODE_TENKANSEN=1,  MODE_KIJUNSEN, MODE_SENKOUSPANA, MODE_SENKOUSPANB, MODE_CHINKOUSPAN };
enum MAIN_SIGNAL_MODE{ MODE_MAIN ,         MODE_SIGNAL };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double CopyBufferMQL4(int handle,int index,int shift)
  {
   double buf[];
   switch(index)
     {
      case 0: if(CopyBuffer(handle,0,shift,1,buf)>0)
         return(buf[0]); break;
      case 1: if(CopyBuffer(handle,1,shift,1,buf)>0)
         return(buf[0]); break;
      case 2: if(CopyBuffer(handle,2,shift,1,buf)>0)
         return(buf[0]); break;
      case 3: if(CopyBuffer(handle,3,shift,1,buf)>0)
         return(buf[0]); break;
      case 4: if(CopyBuffer(handle,4,shift,1,buf)>0)
         return(buf[0]); break;
      default: break;
     }
   return(EMPTY_VALUE);
  }
//+------------------------------------------------------------------+

이름을 바꿉니다. 모든 열거형의 필드는 달라야 합니다. 그리고 enum ADX_MODEenum MAIN_SIGNAL_MODE 에 같은 이름의 필드가 있습니다.
 
fxsaber :
이름을 바꿉니다. 모든 열거형의 필드는 달라야 합니다. 그리고 enum ADX_MODEenum MAIN_SIGNAL_MODE 에 같은 이름의 필드가 있습니다.

지금은 댓글을 달았는데... 그건 중요하지 않은 것 같아요...

그러나 고문은거래 기능 과 4에서 5로의 다른 기능 번역의 두 가지 라이브러리를 사용하여 컴파일되었습니다.

상위 5위 안에 드는 테스터는 지겹지만 시각화 중에 표시기를 어디에 둘 수 있고 로그를 필터링하는 방법을 찾을 수 없습니다...

아직 오픈 오더를 못 봤습니다.

 

그것을 해석하는 방법:

2016.11.04 20:42:25.224 2016.02.11 14:04:30 예상치 못한 오류 - 설치시 4756 지연
2016.11.04 20:42:25.224 2016.02.11 14:04:30 Magic=49266773 cPoza::setOrder 주문요청이 전송되었습니다. 유형: BuyStop lot=1.0 opPrice=68180.0 tp=68200.0 sl=67260.0
2016.11.04 20:42:25.224 2016.02.11 14:04:30 매수 정지 실패 1.00 RTS-12.16 at 68180 sl: 67260 tp: 68200 [유효하지 않은 만료]
2016.11.04 20:42:25.224 2016.02.11 14:04:30 예상치 못한 오류 - 설치시 4756 지연

 
-Aleks- :

그것을 해석하는 방법:

2016.11.04 20:42:25.224 2016.02.11 14:04:30 예상치 못한 오류 - 설치시 4756 지연
2016.11.04 20:42:25.224 2016.02.11 14:04:30 Magic=49266773 cPoza::setOrder 주문요청이 전송되었습니다. 유형: BuyStop lot=1.0 opPrice=68180.0 tp=68200.0 sl=67260.0
2016.11.04 20:42:25.224 2016.02.11 14:04:30 매수 정지 실패 1.00 RTS-12.16 at 68180 sl: 67260 tp: 68200 [유효하지 않은 만료]
2016.11.04 20:42:25.224 2016.02.11 14:04:30 예상치 못한 오류 - 설치시 4756 지연

만료 작업에 문제가 있습니다.
 
-Aleks- :

상위 5위 안에 드는 테스터는 지겹지만 시각화 중에 표시기를 어디에 둘 수 있고 로그를 필터링하는 방법을 찾을 수 없습니다...

아직 오픈 오더를 못 봤습니다.

2006년부터 변환된 MT4 스크립트를 통해 테스터의 이력을 살펴봅니다. 모든 것을 MT4처럼 편리하게 보여줍니다.
사유: