계정 속성

현재 게정에 대한 정보를 얻기 위한 몇 가지 기능이 있습니다: AccountInfoInteger(), AccountInfoDouble()AccountInfoString(). 함수 매개변수 값은 해당 ENUM_ACCOUNT_INFO 열거값의 값을 수락할 수 있습니다.

다음 함수의 경우: AccountInfoInteger()

ENUM_ACCOUNT_INFO_INTEGER

식별자

설명

유형

ACCOUNT_LOGIN

계좌 번호

long

ACCOUNT_TRADE_MODE

계좌 거래 모드

ENUM_ACCOUNT_TRADE_MODE

ACCOUNT_LEVERAGE

계좌 레버리지

long

ACCOUNT_LIMIT_ORDERS

허용된 최대 활성 보류 주문 수

int

ACCOUNT_MARGIN_SO_MODE

최소 허용 마진 설정 모드

ENUM_ACCOUNT_STOPOUT_MODE

ACCOUNT_TRADE_ALLOWED

다음의 거래 허용: 현재 계좌

bool

ACCOUNT_TRADE_EXPERT

다음의 거래 허용: 엑스퍼트 어드바이저

bool

ACCOUNT_MARGIN_MODE

마진 계산 모드

ENUM_ACCOUNT_MARGIN_MODE

ACCOUNT_CURRENCY_DIGITS

거래 결과를 정확하게 표시하는 데 필요한 계정 통화의 소수 자릿수

int

ACCOUNT_FIFO_CLOSE

FIFO 규칙에 의해서만 포지션을 닫을 수 있음을 나타내는 지표. 속성 값을 true로 설정하면 각 기호 포지션이 가장 오래된 기호부터 열리는 동일한 순서로 닫힙니다. 다른 순서로 포지션을 마감하려 할 경우 트레이더가 적절한 오류를 받게 됩니다.

 

비회피 포지션 계좌 모드 (ACCOUNT_MARGIN_MODE!=ACCOUNT_MARGIN_MODE_RETAIL_HEDGING)인 경우, 속성 값은 언제나 false입니다.

bool

다음 함수의 경우: AccountInfoDouble()

ENUM_ACCOUNT_INFO_DOUBLE

식별자

설명

유형

ACCOUNT_BALANCE

예금 통화 계좌 잔액

double

ACCOUNT_CREDIT

예금 통화 계좌 신용

double

ACCOUNT_PROFIT

예금 통화 계좌의 현재 이익

double

ACCOUNT_EQUITY

예금 통화 계좌 자본

double

ACCOUNT_MARGIN

예금 통화에 사용된 계좌 마진

double

ACCOUNT_MARGIN_FREE

예금 통화 계좌의 여유 마진

double

ACCOUNT_MARGIN_LEVEL

계좌 마진 수준(%)

double

ACCOUNT_MARGIN_SO_CALL

마진 호출 수준. 설정된 ACCOUNT_MARGIN_SO_MODE에 따라 백분율 또는 예금 통화로 표시됩니다

double

ACCOUNT_MARGIN_SO_SO

마진 중지 출력 수준. 설정된 ACCOUNT_MARGIN_SO_MODE에 따라 백분율 또는 예금 통화로 표시됩니다

double

ACCOUNT_MARGIN_INITIAL

초기 마진. 보류 중인 모든 주문의 마진을 충당하기 위한 계정의 예약 금액

double

ACCOUNT_MARGIN_MAINTENANCE

유지 마진. 모든 오픈 포지션의 최소 금액을 충당하기 위한 계좌 적립 최소 자본

double

ACCOUNT_ASSETS

계좌의 현재 자산

double

ACCOUNT_LIABILITIES

계좌의 현재 유동 부채

double

ACCOUNT_COMMISSION_BLOCKED

계정에 현재 차단된 커미션 금액

double

다음 함수의 경우: AccountInfoString()

ENUM_ACCOUNT_INFO_STRING

식별자

설명

유형

ACCOUNT_NAME

클라이언트 이름

string

ACCOUNT_SERVER

거래 서버 이름

string

ACCOUNT_CURRENCY

계좌 통화

string

ACCOUNT_COMPANY

계정을 서비스하는 회사 이름

string

거래 서버에서 개설할 수 있는 계좌 유형은 여러 가지가 있습니다. MQL5 프로그램이 실행 중인 계정 유형은 ENUM_ACCOUNT_TRADE_MODE 열거를 사용하여 확인할 수 있습니다.

ENUM_ACCOUNT_TRADE_MODE

식별자

설명

ACCOUNT_TRADE_MODE_DEMO

데모 계좌

ACCOUNT_TRADE_MODE_CONTEST

콘테스트 계좌

ACCOUNT_TRADE_MODE_REAL

실제 계좌

형평성이 개방 적인 위치를 유지하는 데 충분하지 않은 경우, 스톱 아웃 상황, 즉 강제 종료가 발생합니다. 스톱 아웃이 발생하는 최소 마진 수준은 백분율 또는 통화 단위로 설정할 수 있습니다. 계정에 대해 설정된 모드를 확인하려면 ENUM_ACCOUNT_STOPOUT_MODE 열거를 사용해야 합니다.

ENUM_ACCOUNT_STOPOUT_MODE

식별자

설명

ACCOUNT_STOPOUT_MODE_PERCENT

계좌 중지 모드(%)

ACCOUNT_STOPOUT_MODE_MONEY

계좌 중지 모드(금액)

ENUM_ACCOUNT_MARGIN_MODE

식별자

설명

ACCOUNT_MARGIN_MODE_RETAIL_NETTING

OTC 시장이 "네팅" 모드의 위치를 해석하는 데 사용됩니다 (기호 하나에 대해 하나의 위치만 존재할 수 있습니다). 기호 유형에 따라 마진이 계산됩니다 (SYMBOL_TRADE_CALC_MODE).

ACCOUNT_MARGIN_MODE_EXCHANGE

교환 시장에 사용됩니다. 기호 설정에 지정된 할인에 따라 마진이 계산됩니다. 할인은 브로커가 설정하지만 거래소에서 설정한 값보다 작지는 않습니다.

ACCOUNT_MARGIN_MODE_RETAIL_HEDGING

개별 포지션이 가능한 거래소 시장에 사용됩니다(헤지, 하나의 기호에 대해 여러 포지션이 존재할 수 있음.) 이 마진은 기호 유형(SYMBOL_TRADE_CALC_MODE)에 기초하여 계산하며, 위험 회피 마진 (SYMBOL_MARGIN_HEDGED)을 고려합니다.

간단한 계정 정보를 출력하는 스크립트의 예입니다.

//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 회사명
   string company=AccountInfoString(ACCOUNT_COMPANY);
//--- 클라이언트 이름
   string name=AccountInfoString(ACCOUNT_NAME);
//--- 계좌 번호
   long login=AccountInfoInteger(ACCOUNT_LOGIN);
//--- 서버 이름
   string server=AccountInfoString(ACCOUNT_SERVER);
//--- 계좌 통화
   string currency=AccountInfoString(ACCOUNT_CURRENCY);
//--- 데모, 콘테스트 또는 실제 계좌
   ENUM_ACCOUNT_TRADE_MODE account_type=(ENUM_ACCOUNT_TRADE_MODE)AccountInfoInteger(ACCOUNT_TRADE_MODE);
//--- 이제 열거의 값을 이해할 수 있는 형태로 변환합니다
   string trade_mode;
   switch(account_type)
     {
      case  ACCOUNT_TRADE_MODE_DEMO:
         trade_mode="demo";
         break;
      case  ACCOUNT_TRADE_MODE_CONTEST:
         trade_mode="contest";
         break;
      default:
         trade_mode="real";
         break;
     }
//--- 스톱 아웃이 설정됩니다(% 또는 금액)
   ENUM_ACCOUNT_STOPOUT_MODE stop_out_mode=(ENUM_ACCOUNT_STOPOUT_MODE)AccountInfoInteger(ACCOUNT_MARGIN_SO_MODE);
//--- 마진 호출 및 스톱 아웃 발생 시 수준 값을 가져오기
   double margin_call=AccountInfoDouble(ACCOUNT_MARGIN_SO_CALL);
   double stop_out=AccountInfoDouble(ACCOUNT_MARGIN_SO_SO);
//--- 간단한 계좌 정보 표시
   PrintFormat("클라이언트 '%s' #%d %s 계정이 '%s'서버의 '%s'에 열려 있습니다",
               name,login,trade_mode,company,server);
   PrintFormat("Account currency - %s, MarginCall and StopOut levels are set in %s",
               currency,(stop_out_mode==ACCOUNT_STOPOUT_MODE_PERCENT)?"percentage":" money");
   PrintFormat("MarginCall=%G, StopOut=%G",margin_call,stop_out);
  }