오류, 버그, 질문 - 페이지 2931

 

10에서 단말의 메모리 소모가 크다는 것을 알 수 있다. 그리고 Windows Server에서는 훨씬 적습니다.

분명히 소비 된 메모리 계산은 OS에 따라 다릅니다.

 
fxsaber :

안다고 해도 머리속으로 레이어 전체를 다시 올려야 하는 그런 종류의 기능입니다.

여기서 그는 자신의 존재를 결정했습니다. TF를 전환할 때 작동하는 것 같습니다.

나는 그것에 대해 실제로 가지 않았지만 다음 줄로 판단합니다.

     const int Total = :: IndicatorParameters (handle, Type, Params);
    :: IndicatorRelease (handle);

     uchar Bytes[];

     for ( int i = 1 ; i < Total; i++)
    {
      :: ArrayCopy (Bytes, _R(Params[i].double_value).Bytes, :: ArraySize (Bytes));
      :: ArrayCopy (Bytes, _R(Params[i].integer_value).Bytes, :: ArraySize (Bytes));
      :: ArrayCopy (Bytes, _R(Params[i].string_value).Bytes, :: ArraySize (Bytes));
    }

지표의 이름(0번째 매개변수에 있음)은 서명 생성에 사용되지 않는데, 이는 다소 이상합니다.

 
fxsaber :

10에서 단말의 메모리 소모가 크다는 것을 알 수 있다. 그리고 Windows Server에서는 훨씬 적습니다.

분명히 소비 된 메모리 계산은 OS에 따라 다릅니다.

오히려 서비스 축에 대한 메모리 예약이 더 최적입니다.
 
Stanislav Korotky :

나는 그것에 대해 실제로 가지 않았지만 다음 줄로 판단합니다.

지표의 이름(0번째 매개변수에 있음)은 서명 생성에 사용되지 않는데, 이는 다소 이상합니다.

 return ( "::" + ( string ):: Chart ID ( ) + ( string )INIT_SYNC::crc64(Bytes) + :: MQLInfoString ( MQL_PROGRAM_NAME ) );
 
fxsaber :

그래, 내가 했어. Validate는 첫 번째 패스를 실행하고 다음 패스는 실행하지 않습니다. 시작 버튼이 작동하지 않습니다.

데바겔 - 시작합니다. 나는 릴리스에서 출력을 했고, 모든 것이 좋은 것 같지만 작동하지 않습니다.


이제 나는 특히 디버그 버전을 실행하고 있습니다. 그녀는 방해 없이 시작 버튼을 누릅니다.

버그의 원인은 결코 밝혀지지 않았습니다.

헐 방금 이 답변을 봤습니다.

내가 알기로는 현지 에이전트가 나를 위해 시작하지 않는 이유를 이해하지 못했습니다. 최신 버전의 터미널에서는 다음과 같이 시작하는 것이 좋습니다.

 
fxsaber :

10에서 단말의 메모리 소모가 크다는 것을 알 수 있다. 그리고 Windows Server에서는 훨씬 적습니다.

분명히 소비 된 메모리 계산은 OS에 따라 다릅니다.

Windows 서버가 어떻게 든 정확하게 결정하지 못한다는 느낌.

또는 차트 설정 이 지속적으로 재설정되며 이는 RAM 부족에 따라 다릅니다. 동시에 디스패처에 따르면 모든 것이 정상인 것 같습니다. vps가 제한적이거나 MT5가 더 탐욕스럽습니다.

 
Print ( PERIOD_H4 );

결과 16388 을 제공합니다. 역 절차를 수행하는 방법: 값을 16388 로 대체하고 결과적으로 마침표 이름이 PERIOD_H4 인 문자열을 얻습니까? 내장 기능이 있습니까 아니면 자체 변환기를 작성해야 합니까? 내장 기능이 없다면 커스텀 함수는 어떻게 생겼을까요? 아마도 키-값 일치와 같은 것을 작성해야 합니까?

Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
  • www.mql5.com
Периоды графиков - Константы графиков - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
x572intraday :

결과 16388 을 제공합니다. 역 절차를 수행하는 방법: 값을 16388 로 대체하고 결과적으로 마침표 이름이 PERIOD_H4 인 문자열을 얻습니까? 내장 기능이 있습니까 아니면 자체 변환기를 작성해야 합니까? 내장 기능이 없다면 커스텀 함수는 어떻게 생겼을까요? 아마도 키-값 일치와 같은 것을 작성해야 합니까?

 Print ( EnumToString (( ENUM_TIMEFRAMES ) 16388 ));
 
fxsaber :
 Print ( EnumToString (( ENUM_TIMEFRAMES ) 16388 ));

있다는 것이 밝혀졌습니다. 이것은 저를 행복하게 합니다. 덕분에!

 

표시기 설정 창의 메뉴 목록에서 시간 프레임과 해당 숫자를 모두 선택할 수 있는 기능을 사용자에게 제공하려고 합니다.

 enum PERIOD
  {
   NO_PERIOD= 0 ,       // NOT USED
   P1= PERIOD_H1 ,     // H1 
   P2= PERIOD_H2 ,     // H2 
   P3= PERIOD_H4 ,     // H4 
  };

input PERIOD TIMEFRAME_1=P1;
input PERIOD TIMEFRAME_2=P2;
input PERIOD TIMEFRAME_3=P3;

ENUM_TIMEFRAMES PArray[ 3 ]={P1,P2,P3};

그리고 나는 그가 선택한 기간이 PArray에 직접 떨어지기를 원합니다. 그러나 위의 예를 보면 사용자가 입력한 값이 아니라 프로그램에 미리 정의된 값을 배열에 할당하고 있음을 알 수 있습니다. 또한 컴파일러는 다음과 같은 경고를 발행합니다.

implicit conversion from ' enum PERIOD' to ' enum ENUM_TIMEFRAMES '        test.mq5         23        28
   ' ENUM_TIMEFRAMES :: PERIOD_H1 ' will be used instead of 'PERIOD::P1'    test.mq5         23        28
implicit conversion from ' enum PERIOD' to ' enum ENUM_TIMEFRAMES '        test.mq5         23        31
   ' ENUM_TIMEFRAMES :: PERIOD_H2 ' will be used instead of 'PERIOD::P2'    test.mq5         23        31
implicit conversion from ' enum PERIOD' to ' enum ENUM_TIMEFRAMES '        test.mq5         23        34
   ' ENUM_TIMEFRAMES :: PERIOD_H4 ' will be used instead of 'PERIOD::P3'    test.mq5         23        34

마지막 줄을 다음으로 바꾸려고 할 때:

 ENUM_TIMEFRAMES PArray[ 3 ]={TIMEFRAME_1,TIMEFRAME_2,TIMEFRAME_3};

컴파일러는 일반적으로 다음과 같은 오류를 발생시킵니다.

'TIMEFRAME_1' - constant expression required    test.mq5        23      28
'TIMEFRAME_2' - constant expression required    test.mq5        23      40
'TIMEFRAME_3' - constant expression required    test.mq5        23      52

또한 NO_PERIOD=0은 PERIOD_CURRENT 를 의미하며 필요하지 않습니다. false 또는 EMPTY_VALUE 같은 것이 필요하지만 전혀 맞지 않습니다.

어떻게 고치는 지?

Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
  • www.mql5.com
Периоды графиков - Константы графиков - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
사유: