트레이드 퍼미션

트레이드 오토메이션

MQL5 언어는 자동화된 거래 시스템 개발을 위해 설계된 거래 함수의 특별한 그룹을 제공합니다. 인간의 개입 없이 자동화된 거래를 위해 개발된 프로그램을 Expert Advisors 또는 Trade Robots라고 부릅니다. MetaEditor에서 Expert Advisor를 생성하려면 MQL5 Wizard를 시작하고 다음 두 가지 옵션 중 하나를 선택합니다:

MQL5_Wizard

거래 함수는 Expert Advisor 및 스크립트에서만 사용할 수 있습니다. 지표에는 거래가 허용되지 않습니다.

자동 거래 수행 권한 확인

사람의 개입 없이 작업할 수 있는 신뢰할 수 있는 Expert Advisor을 개발하기 위해서는 일련의 중요한 검사를 준비할 필요가 있습니다. 우선, 우리는 프로그램적으로 거래가 허용되는지 확인해야 합니다. 이것은 자동화 시스템을 개발할 때 필수적인 기본 점검입니다.

터미널에서 자동 거래를 수행할 수 있는 권한을 확인하는 중

터미널 설정을 사용하면 모든 프로그램에 대해 자동 거래를 허용하거나 금지할 수 있습니다.

TERMINAL_TRADE_ALLOWED

터미널의 Standard 패널에서 바로 자동 거래 옵션을 전환할 수 있습니다:  

  • AutoTrading_enabled– 자동화 거래를 출시했으며 애플리케이션의 거래 함수 사용 허용됨.
  • AutoTrading_disabled – 자동 거래가 비활성화되어 실행 중인 어플리케이션이 거래 함수를 실행할 수 없습니다.

샘플 체크:

if (!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)) 
   Alert("터미널 설정에서 자동 거래가 가능한지 확인하십시오!");

 

실행 중인 특정 Expert Advisor/script에 대해 거래가 허용되는지 확인

또는 금지할 때 개시한 특정 프로그램을 위한 자동화된 거래 허용할 수 있습니다. 이렇게 하려면 프로그램 속성에서 특수 확인란을 사용합니다.

MQL_TRADE_ALLOWED

샘플 체크:

   if(!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
      Alert("터미널 설정에서 자동 거래가 가능한지 확인하십시오!");
   else
     {
      if(!MQLInfoInteger(MQL_TRADE_ALLOWED))
         Alert("다음의 프로그램 설정에는 자동 거래가 금지됩니다: ",__FILE__);
     }

 

현재 계정에 대해 Expert Advisor/scripts 거래가 허용되는지 확인

거래 서버 측에서 자동 거래를 비활성화할 수 있습니다. 샘플 체크:

   if(!AccountInfoInteger(ACCOUNT_TRADE_EXPERT))
      Alert("계정에 대해 자동 거래가 금지됩니다. ",AccountInfoInteger(ACCOUNT_LOGIN),
      " 거래 서버 측에서");

거래 계정에 대해 자동 거래가 비활성화된 경우, Expert Advisor/scripts의 거래 작업이 실행되지 않습니다.

현재 계정에 대해 거래가 허용되는지 확인

경우에 따라 특정 거래 계좌에 대해 모든 거래 업무가 비활성화되며, 수동 거래나 자동 거래를 수행할 수 없습니다. 거래처 연결에 투자자 암호를 사용한 경우 샘플 체크:

   if(!AccountInfoInteger(ACCOUNT_TRADE_ALLOWED))
      Comment("계정에 대한 거래가 금지되어 있습니다. ",AccountInfoInteger(ACCOUNT_LOGIN),
            ".\n 거래 계정에 연결하기 위해 투자자 비밀번호가 사용되었을 수 있습니다.",
            "\n 터미널 저널에서 다음 항목을 확인하십시오:",
            "\n\'",AccountInfoInteger(ACCOUNT_LOGIN),"\': 거래가 비활성화되었습니다 - 투자자 모드.");

AccountInfoInteger(ACCOUNT_TRADE_ALLOWED)는 다음과 같은 경우 false를 반환할 수 있습니다:

  • 거래 서버에 연결되지 않았습니다. TerminalInfoInteger(TERMINAL_CONNECTED)를 사용하여 확인할 수 있습니다;
  • 거래 계정이 읽기 전용 모드로 전환됨(아카이브로 전송됨);
  • 거래 서버 측에서 계정에 대한 거래가 비활성화되어 있습니다.
  • 거래 계정에 대한 연결이 투자자 모드에서 수행되었습니다.

 

참고 항목

Client Terminal Properties, Account Properties, Properties of a Running MQL5 Program