자금 관리:로트 크기 조정-mql 자습서

소개

이미 들어보셨을 수도 있지만 거래 시스템에 적합한 로트 크기를 선택하는 것은 좋은 시스템을 개발하기 위한 핵심 요소입니다. 모든 주문에 대해 고정 로트 크기로 내부 변수에 선언하는 것처럼 간단하게 로트 크기를 지정할 수 있지만 무료 마진의 백분율을 기반으로 로트 크기를 계산하는 간단한 방법을 살펴보겠습니다.

배후에는 약간의 수학이 있지만 기본적으로 사용자 지정 위험 설정을 1로 선택하면 주식 크기 1,000마다 0.01마이크로 랏을 거래하게 됩니다. 따라서 사용자 지정 위험 설정이 2이고 계정 크기가 10K인 경우 0.2랏으로 시작하게 되며 손익 $100당 0.01랏을 자동으로 더하거나 뺍니다. 이 자동 로트 크기 조정 기술은 매우 간단하지만 자동으로 이익을 복리화하거나 손실을 복리화하거나 계정의 입출금을 자동으로 조정하는 데 매우 효과적입니다.

매개변수

MM

Bool:자금 관리를 사용할지 여부.

위험

Double:사전 정의된 위험 설정입니다.

많은

Double:MM이 꺼져 있는 경우 사용할 수동 로트 크기입니다.

LotDigits

Double:브로커가 제공한 로트의 소수점 이하 자릿수입니다. 대부분의 경우 소수점 이하 두 자리가 있지만 일부는 소수점 이하 자릿수가 한 자리입니다.

MT4 코드 스니펫

<블록 인용>

extern bool MM =TRUE;
extern double 위험 =2;
extern double Lot =0.1;
extern double LotDigits =2;
double GetLots()

{
더블 minlot =MarketInfo(Symbol(), MODE_MINLOT);
double maxlot =MarketInfo(Symbol(), MODE_MAXLOT);
더블 레버리지 =AccountLeverage();
더블 로트 크기 =MarketInfo(Symbol(), MODE_LOTSIZE);
이중 스톱레벨 =MarketInfo(Symbol(), MODE_STOPLEVEL);

이중 MinLots =0.01; 이중 최대 로트 =50.0;

if(MM)
{
이중 제비 =제비;

이중 랏 =NormalizeDouble(AccountFreeMargin() * 위험/100 / 1000.0, LotDigits);
if(lots if(lots> MaximalLots) lot =MaximalLots;
if (AccountFreeMargin() Print("우리는 돈이 없습니다. lot =", lot, " , Free Margin =", AccountFreeMargin());
코멘트 ("우리는 돈이 없습니다. lot =", lot, " , Free Margin =", AccountFreeMargin());
}}
else lot=NormalizeDouble(Lots,Digits);
return (많은);
}

관리를 (true) 켜야 하는지 확인하기 위해 먼저 많은 extern 변수를 선언해야 함을 알 수 있습니다. 또는 끄기 (거짓) , 켜져 있는 경우 사용자 정의 위험 설정은 무엇이며 그렇지 않은 경우 기본 로트 크기가 무엇입니까?

LotDigits 브로커가 허용하는 소수 자릿수입니다(예:0.01과 같은 마이크로 로트를 허용하는 경우 2자리 또는 소수 자릿수).

GetLots() 는 우리가 사용자 정의 함수에 지정한 이름입니다. 따라서 모든 o(모든 이름일 수 있음)와 대괄호 사이에 포함된 모든 것은 이 함수의 계산입니다. GetLots()를 배치하기만 하면 됩니다. 이를 호출하기 위해 OrderSend() 함수의 세 번째 매개변수에서 이전에 있던 고정 로트 변수를 대체합니다.

MarketInfo()를 참조하는 변수 minlot을 만듭니다. 기능. 시장 정보() 함수는 Bid 또는 Ask 가격, 스왑 값, 자릿수와 같은 주어진 통화의 다양한 시장 데이터를 검색하는 데 필요한 기능이며 우리의 목적을 위해 해당 통화의 최소 로트 크기도 알려줄 수 있습니다. . 우리는 어떤 로트 계산이 수행되든 브로커의 최소 로트 크기보다 크고, 그렇지 않으면 최소 로트가 되도록 하고 싶습니다.

자동 MM 로트의 주요 계산은 한 줄로 이루어집니다.

<블록 인용>

이중 랏 =NormalizeDouble(AccountEquity() * 위험/100 / 1000.0, LotDigits);

AccountEquity() 현재 계정의 자본 가치를 반환하는 많은 계정 정보 기능 중 하나입니다. AccountBalance()와 달리 계정의 자기자본 가치를 반환하고자 합니다. , 자본은 계정 상태(순 계정 가치라고도 함)에 대한 보다 유효한 그림을 나타내기 때문입니다. 우리는 자산 가치가 적절한 로트 규모에 대한 계산을 수행하기를 원합니다. 적절한 로트 크기를 결정하기 위해 이 자기자본 가치에 위험 가치를 곱한 다음 100으로 나눈 다음 1000으로 더 나눕니다.

효과는 선택한 위험 설정에 따라 비례 로트 크기 조정입니다. 위험 설정은 주식 1K당 0.01로트 1개, 위험 설정은 주식 1K당 0.02로트 2개 등입니다. 다양한 가능성이 있습니다. , 선택한 위험 설정에 따라 다릅니다. 계정의 크기가 커지거나 줄어들 때 로트가 계정에 추가되거나 차감됩니다. 예를 들어, 위험 설정이 2이면 10,000 계정에서 0.2랏을 거래하고 $100의 자기자본 손익에 대해 0.01랏씩 더하거나 뺍니다. 사용자는 자신의 위험 허용 범위, EA 거래 스타일 및 계정 크기에 적합한 위험 설정을 쉽게 조정할 수 있습니다.

MM인 경우 true로 설정하면 지분을 기반으로 로트 크기를 계산하고 해당 값을 로트 변수에 할당합니다. MM인 경우 가 false이면 단순히 로트의 값을 로트의 고정 로트 크기에 할당합니다.

위의 코드는 상대적으로 간단하지만 변화하는 주식 크기에 따라 자동 로트 크기 조정의 세계를 만들 수 있음을 알 수 있습니다. 로트 크기를 결정하는 더 복잡한 방법이 있지만 때로는 가장 간단한 방법이 가장 효과적입니다.


사업 전략
  1. 회계
  2.   
  3. 사업 전략
  4.   
  5. 사업
  6.   
  7. 고객 관계 관리
  8.   
  9. 재원
  10.   
  11. 주식 관리
  12.   
  13. 개인 금융
  14.   
  15. 투자하다
  16.   
  17. 기업 자금 조달
  18.   
  19. 예산
  20.   
  21. 저금
  22.   
  23. 보험
  24.   
  25.   
  26. 은퇴하다