다른 상수

CLR_NONE 상수는 색상 부재이 윤곽을 그리는 데 사용되며, 이는 지표의 그래픽 개체 또는 그래픽 시리즈가 그려지지 않음을 의미합니다. 이 상수는 웹 색상 상수 목록에 포함되지 않았지만 색상 인수가 필요한 모든 곳에 적용할 수 있습니다.

INVALID_HANDLE 상수를 사용하여 파일 핸들을 확인할 수 있습니다 (FileOpen()FileFindFirst() 참조).

정수

설명

CHARTS_MAX

터미널에서 동시에 열려 있는 최대 차트 수

100

clrNONE

색상 없음

-1

EMPTY_VALUE

지표 버퍼의 빈 값

DBL_MAX

INVALID_HANDLE

잘못된 핸들

-1

IS_DEBUG_MODE

mq5 프로그램이 디버그 모드에서 작동하는 플래그

디버그 모드에서는 0이 아님, 그렇지 않으면 0

IS_PROFILE_MODE

mq5 프로그램이 프로파일링 모드에서 작동하는 플래그

프로파일링 모드에서 0이 아님, 그렇지 않으면 0

NULL

모든 유형에 대해 0

0

WHOLE_ARRAY

배열이 끝날 때까지 남아 있는 항목 수를 의미합니다. 즉, 전체 배열이 처리됩니다.

-1

WRONG_VALUE

암시적으로 상수를 캐스팅할 수 있습니다 (모든 열거 유형에)

-1

일반적으로 EMPTY_VALUE 상수는 차트에 표시되지 않은 지표의 값에 해당합니다. 예를 들어 주기가 20인 기본 제공 지표 표준 편차의 경우 내역의 처음 19개 막대에 대한 선이 차트에 표시되지 않습니다. iStdDev() 함수로 이 지표의 핸들을 만든 후 CopyBuffer()를 통해 이러한 막대의 지표 값 배열에 복사하면 이 값은 EMPTY_VALUE와 같습니다.

차트에 지표를 그려서는 안되는 경우 사용자 지정 지표에 대해 지표의 빈 값을 지정하도록 선택할 수 있습니다. PlotIndexSetDouble() 함수를 PLOT_EMPTY_VALUE 한정자와 함께 사용합니다.

NULL 상수는 모든 단순 유형의 변수 또는 개체 구조 또는 클래스 포인터에 할당할 수 있습니다. 문자열 변수에 대한 NULL 할당은 이 변수의 전체 초기화 해제를 의미합니다.

WRONG_VALUE 상수는 열거 값을 반환해야 하는 경우에 사용하기 위한 상수로, 이 값은 잘못된 값이어야 합니다. 예를 들어 반환 값이 이 열거값의 값임을 알려야 하는 경우입니다. 이름으로 지정된 개체의 선 스타일을 반환하는 CheckLineStyle() 함수를 예로 들어보겠습니다. ObjectGetInteger()으로 스타일 검사 결과가 true이면 ENUM_LINE_STYLE의 값이 반환되고 그렇지 않으면 WRONG_VALUE가 반환됩니다.

void OnStart()
  {
   if(CheckLineStyle("MyChartObject")==WRONG_VALUE)
      printf("오류 라인 스타일 가져오기.");
  }
//+------------------------------------------------------------------+
//| 이름으로 지정된 개체의 선 스타일을 반환       |
//+------------------------------------------------------------------+
ENUM_LINE_STYLE CheckLineStyle(string name)
  {
   long style;
//---
   if(ObjectGetInteger(0,name,OBJPROP_STYLE,0,style))
      return((ENUM_LINE_STYLE)style);
   else
      return(WRONG_VALUE);
  }

 

WHOLE_ARRAY 상수는 처리된 배열의 요소 수를 지정해야 하는 함수용입니다:

지정된 위치에서 끝까지 모든 배열 값을 처리하도록 지정하려면 WHOLE_ARRAY 값만 지정해야 합니다.

IS_PROFILE_MODE  상수를 사용하면 프로파일 모드에서 올바른 데이터 수집을 위한 프로그램 작업을 변경할 수 있습니다. 프로파일링을 통해 개별 프로그램 조각(일반적으로 함수로 구성됨)의 실행 시간을 측정하고 해당 호출 수를 계산할 수 있습니다. 다음과 같이 프로파일링 모드에서 실행 시간을 결정하기 위해 Sleep() 함수 호출을 비활성화할 수 있습니다:

//--- 슬립이 프로파일링 결과에 큰 영향을 미칠 수 있음
if(!IS_PROFILE_MODESleep(100); // 프로파일링 모드에서 Sleep() 호출 사용 안함

IS_PROFILE_MODE 상수 값은 컴파일러 도중 컴파일러에 의해 설정되고, 일반 모드에서는 0으로 설정됩니다. 프로파일링 모드에서 프로그램을 시작하면 특수 컴파일이 수행되고 IS_PROFILE_MODE 값이 0이 아닌 값으로 바뀝니다.

IS_DEBUG_MODE 상수는 디버깅 모드에서 mql5 프로그램의 작동을 약간 변경해야 할 때 유용할 수 있습니다. 예를 들어 디버그 모드에서 터미널 로그에 추가 디버깅 정보를 표시하거나 차트에 추가 그래픽 개체를 만들어야 할 수 있습니다.

다음은 Label 개체를 작성하고 스크립트 실행 모드에 따라 설명 및 색상을 설정하는 예입니다. MetaEditor에서 디버그 모드로 스크립트를 실행하려면 F5를 누릅니다. 터미널의 브라우저 창에서 스크립트를 실행하는 경우, 개체의 색상과 텍스트가 달라집니다.

예:

//+------------------------------------------------------------------+
//|                                             Check_DEBUG_MODE.mq5 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        https://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "https://www.metaquotes.net"
//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   string label_name="invisible_label";
   if(ObjectFind(0,label_name)<0)
     {
      Print("Object",label_name,"not found. Error code = ",GetLastError());
      //--- 레이블 생성
      ObjectCreate(0,label_name,OBJ_LABEL,0,0,0);
      //--- X 좌표 설정
      ObjectSetInteger(0,label_name,OBJPROP_XDISTANCE,200);
      //--- Y 좌표 설정
      ObjectSetInteger(0,label_name,OBJPROP_YDISTANCE,300);
      ResetLastError();
      if(IS_DEBUG_MODE// 디버깅 모드
        {
         //--- 스크립트 실행 모드에 대한 메시지 표시
         ObjectSetString(0,label_name,OBJPROP_TEXT,"DEBUG MODE");
         //--- 텍스트 색상을 빨간색으로 설정
         if(!ObjectSetInteger(0,label_name,OBJPROP_COLOR,clrRed))
            Print("색상을 설정할 수 없습니다. Error",GetLastError());
        }
      else              // 작동 모드
        {
         ObjectSetString(0,label_name,OBJPROP_TEXT,"RELEASE MODE");
         //--- 텍스트 색상을 무색으로 설정
         if(!ObjectSetInteger(0,label_name,OBJPROP_COLOR,CLR_NONE))
            Print("색상을 설정할 수 없습니다. Error ",GetLastError());
        }
      ChartRedraw();
      DebugBreak();    // 디버그 모드인 경우 종료가 발생합니다
     }
  }

암호화 방법

ENUM_CRYPT_METHOD 열거형은 CryptEncode()CryptDecode() 함수에 사용되는 데이터 변환 방법을 지정하는 데 사용됩니다.

ENUM_CRYPT_METHOD

정수

설명

CRYPT_BASE64

BASE64

CRYPT_AES128

128 비트 키 (16 바이트)를 사용한 AES 암호화

CRYPT_AES256

256 비트 키(32 바이트)를 사용한 AES 암호화

CRYPT_DES

56 비트 키(7 바이트)를 사용한 DES 암호화

CRYPT_HASH_SHA1

SHA1 HASH 계산

CRYPT_HASH_SHA256

SHA256 HASH 계산

CRYPT_HASH_MD5

MD5 HASH 계산

CRYPT_ARCH_ZIP

ZIP 아카이브

추가 참조

DebugBreak, 실행된 MQL5 프로그램 속성, CryptEncode(), CryptDecode()