English
中文
日本語
ID
Vietnam
한국어
Filipino
 
   대학 내비게이션

Forex MQL4에서 거래 로트 크기를 설정하는 방법

MQL4 Lot Size Parameters

이전에 들어본 적이 있을 수도 있지만 거래 시스템에 적합한 로트 크기를 선택하는 것은 좋은 시스템을 개발하는 핵심 요소입니다. MQL4 랏 매개변수 도움말에서 위험, 랏 규모, 자금 관리 등을 사용하는 방법을 알아보세요. 변수는 Expert Advisor를 프로그래밍합니다.


주문별로 고정된 로트 크기로 내부 변수에 로트 크기를 선언하는 것만큼 간단하게 로트 크기를 지정할 수 있지만, 방법을 살펴보겠습니다. 사용 가능한 마진 비율 손쉬운 랏 계산 방법을 기준으로 합니다.


이면에는 약간의 수학이 있지만 기본적으로 사용자 정의 위험 설정을 1로 선택하면 1K 주식 크기당 0.01 마이크로랏을 거래하게 됩니다. 따라서 2 및 10K 계정 크기의 맞춤형 위험 설정을 사용하면 0.2랏으로 시작하고 매 100달러의 이익/손실마다 0.01랏을 자동으로 더하거나 뺍니다. 로트 크기를 자동으로 조정하는 이 기술은 매우 간단하지만 자동으로 이익을 늘리거나 손실을 줄이거나 계좌 입출금을 자동으로 조정하는 데 매우 효과적입니다.


매개변수

MM

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


위험

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


로트

쌍: MM이 꺼진 경우 사용할 수동 로트 크기입니다.


로트 크기

Double: 브로커가 제공하는 로트 크기의 소수점 이하 자릿수입니다. 대부분은 소수점 이하 자릿수가 2자리이지만 일부는 1자리만 있습니다.


MT4 코드 조각

외부 부울 MM = TRUE;

외부 이중 위험 = 2;

extern double LotDigits = 0.1;

extern double LotDigits =2;


Double GetLots()

< p >{

이중 minlot = MarketInfo(Symbol(), MODE_MINLOT);

이중 maxlot = MarketInfo(Symbol(), MODE_MAXLOT);

이중 레버리지 = AccountLeverage();

이중 lotsize = MarketInfo(Symbol(), MODE_LOTSIZE);

이중 stoplevel = MarketInfo(Symbol(), MODE_STOPLEVEL);


Double MinLots = 0.01;

Double MaximalLots = 50.0;


If (MM)

{

양손 = 손;


손 수 두 배 = NormalizeDouble(AccountFreeMargin() * 위험도/100 / 1000.0, LotDigits);

If(로트 수 < minlot) LotNumber = minlot;

If(로트 수 > MaximalLots) LotNumber = MaximalLots; < /p>

if (AccountFreeMargin() < Ask * 많이 * lotsize / 레버리지) {

Print("돈이 없습니다. Lots = ", Lots, ", Free Margin = ", AccountFreeMargin());

Comment("우리는 돈이 없습니다. Lots = ", Lots, ", Free Margin = ", AccountFreeMargin());

}}

그렇지 않으면 Lots = NormalizeDouble(다수, 숫자);

return(다수);

}


< p>관리를 켜거나(true) 끄거나(false) 끄는 경우 먼저 일부 외부 변수를 선언하여 켜진 경우 사용자 정의 위험 설정이 무엇인지 결정해야 하며, 그렇지 않은 경우에는 기본 로트 크기는 얼마입니까?


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


GetLots()는 사용자 정의 함수에 지정한 이름이므로 모든 o(어떤 이름이든 가능)와 모든 o가 괄호 안에 포함됩니다. 내용은 이 함수의 계산입니다. OrderSend() 함수의 세 번째 매개변수에 GetLots()를 넣어 호출하면 이전 고정 로트 변수가 대체됩니다.


MarketInfo() 함수를 참조하기 위해 minlot 변수를 생성합니다. MarketInfo() 함수는 입찰 또는 매도 가격, 스왑 가치, 숫자 등 특정 통화에 대한 다양한 시장 데이터를 검색하는 데 필요한 기능이며, 목적에 따라 해당 통화에 대한 최소 로트 크기도 알려줍니다. 우리는 어떤 로트 계산을 하든 브로커의 최소 로트보다 큰지 확인하고, 그렇지 않으면 최소 로트보다 작으면 최소 로트가 될 것임을 확인하고 싶습니다.


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


더블 로트 = NormalizeDouble(AccountEquity() * Risk/100 / 1000.0, LotDigits);


AccountEquity()는 현재 계좌를 반환하는 많은 계좌 정보 함수 중 하나입니다. 형평성. 우리는 AccountBalance() 대신 계정의 자산을 반환하려고 합니다. 왜냐하면 자산은 계정 상태(예: 계정 자산)에 대한 더 유효한 그림을 나타내기 때문입니다. 우리는 적절한 로트 크기에 대해 자기자본 가치가 수학적으로 계산되기를 원합니다. 우리는 이 자산에 위험을 곱한 다음 100으로 나눈 다음 1000으로 나누어 적절한 로트 크기를 결정합니다.


효과는 선택한 위험 설정에 따라 로트 크기에 비례합니다. 위험 설정은 1K 자산당 1거래당 0.01랏, 위험 설정은 0.01랏입니다. 1K 주식당 주식 2는 0.02랏을 거래합니다. 선택한 위험 설정에 따라 다양한 가능성이 있습니다. 계좌 규모가 증가하거나 감소함에 따라 거래 횟수도 증가하거나 감소합니다. 예를 들어, 위험 설정을 2로 설정하면 10K 계좌에서 0.2랏이 거래되며, 자산 이익 또는 손실 $100당 0.01랏이 증가/감소합니다. 사용자는 위험 허용 범위, EA 거래 스타일 및 계정 규모에 맞게 위험 설정을 쉽게 조정할 수 있습니다.


MM이 true로 설정되면 자산을 기준으로 로트 크기를 계산하고 이 값을 로트 변수에 할당합니다. MM이 false인 경우 고정된 로트 크기의 로트에 로트의 가치를 할당하기만 하면 됩니다.


보시다시피 위의 코드는 상대적으로 간단하지만 자본 규모 변경에 따라 자동 로트 조정에 엄청난 차이를 만들 수 있습니다. 배치 크기를 결정하는 더 정교한 방법이 있지만 때로는 가장 간단한 방법이 가장 효과적일 때도 있습니다.


참고:

EA 개발자 또는 최종 사용자는 엄격한 백테스트를 기반으로 EA에 대한 적절한 위험 설정을 결정해야 하며 다음에 세심한 주의를 기울여야 합니다. 위험 관련 통계(평균 손실 거래, 연속 손실 거래 및 최대 손실). 일반적으로 이 위험 분석은 고정된 로트 크기(예: 5K 계정의 경우 0.1)로 먼저 수행됩니다. 고정된 로트 크기에 대해 모든 위험 관련 통계가 집계되면 어떤 위험 설정을 쉽게 거래할 수 있는지 더 잘 결정할 수 있습니다.