당사 팬 페이지에 가입하십시오
- 조회수:
- 6
- 평가:
- 게시됨:
-
이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동
CRiskCalculator는 Expert Advisors 및 거래 도구의 리스크 관리와 거래량 계산을 처리하도록 설계된 객체 지향 MQL5 헤더 라이브러리입니다 . 이 라이브러리는 특정 계좌의 리스크 금액과 핍 단위의 손절 거리(Stop Loss)를 기반으로 화폐 가치의 핍 값과 정확한 랏 크기를 계산합니다 .
자동 거래에서 흔히 발생하는 문제 중 하나는 교차 통화 쌍(예: 유로(EUR) 표시 계좌에서 GBPJPY를 거래하는 경우)에 대한 포지션 규모 산정입니다 . 이 클래스는 MetaTrader 5의 기본 심볼 속성과 교차 통화 쌍을 위한 대체 변환 시스템을 결합하여 이러한 문제를 해결합니다 .
주요 기능
-
듀얼 엔진 계산: 기본 계산 방법으로 브로커의 기본 속성( SYMBOL_TRADE_TICK_VALUE 및 SYMBOL_TRADE_TICK_SIZE )을 사용합니다 . 해당 매개변수를 브로커에서 제공하지 않거나 초기화되지 않은 경우, 자동으로 수동 기준/호가 통화 추출 및 환율 조회 방식으로 전환됩니다 .
-
브로커 매개변수 정규화: 계산된 거래량을 SYMBOL_VOLUME_MIN과 SYMBOL_VOLUME_MAX 사이로 자동 제한하고, SYMBOL_VOLUME_STEP에 맞춰 브로커 거부 오류(예: TRADE_RETCODE_INVALID_VOLUME)를 방지합니다 .
-
깔끔한 객체 지향 설계: CRiskCalculator 클래스 내에 캡슐화되어 전역 범위가 복잡해지지 않으므로, 기존 EA 프로젝트나 사용자 정의 지표에 쉽게 적용할 수 있습니다 .
-
자동 구성: 초기화 시 현재 계좌의 기본 통화(ACCOUNT_CURRENCY)를 자동으로 감지합니다 .
통합 예시
Expert Advisor 또는 스크립트에서 이 클래스를 사용하려면 CRiskCalculator.mqh 파일을 MQL5/Include/ 디렉터리에 배치하고 객체를 생성하십시오 :
#include <CRiskCalculator.mqh> // 차트에 고대비 패널을 표시하는 헬퍼 함수 void DrawChartPanel(const string &lines[]) { int x = 20, y = 30; int width = 280, lineHeight = 18; int height = (ArraySize(lines) * lineHeight) + 20; // 1. 배경 상자 생성 (흰색, 검은색 또는 사용자 지정 차트에서 표시됨) string bgName = "RiskCalc_BG"; if(ObjectFind(0, bgName) < 0) ObjectCreate(0, bgName, OBJ_RECTANGLE_LABEL, 0, 0, 0); ObjectSetInteger(0, bgName, OBJPROP_CORNER, CORNER_LEFT_UPPER); ObjectSetInteger(0, bgName, OBJPROP_XDISTANCE, x); ObjectSetInteger(0, bgName, OBJPROP_YDISTANCE, y); ObjectSetInteger(0, bgName, OBJPROP_XSIZE, width); ObjectSetInteger(0, bgName, OBJPROP_YSIZE, height); ObjectSetInteger(0, bgName, OBJPROP_BGCOLOR, clrDarkSlateGray); ObjectSetInteger(0, bgName, OBJPROP_BORDER_COLOR, clrDodgerBlue); ObjectSetInteger(0, bgName, OBJPROP_BORDER_TYPE, BORDER_FLAT); ObjectSetInteger(0, bgName, OBJPROP_SELECTABLE, false); // 2. 패널 내부에 텍스트 줄 렌더링하기 for(int i = 0; i < ArraySize(lines); i++) { string lblName = "RiskCalc_Lbl_" + IntegerToString(i); if(ObjectFind(0, lblName) < 0) ObjectCreate(0, lblName, OBJ_LABEL, 0, 0, 0); ObjectSetInteger(0, lblName, OBJPROP_CORNER, CORNER_LEFT_UPPER); ObjectSetInteger(0, lblName, OBJPROP_XDISTANCE, x + 12); ObjectSetInteger(0, lblName, OBJPROP_YDISTANCE, y + 10 + (i * lineHeight)); ObjectSetString(0, lblName, OBJPROP_TEXT, lines[i]); ObjectSetString(0, lblName, OBJPROP_FONT, "Segoe UI"); ObjectSetInteger(0, lblName, OBJPROP_FONTSIZE, 9); ObjectSetInteger(0, lblName, OBJPROP_COLOR, (i == 0) ? clrYellow : clrWhite); ObjectSetInteger(0, lblName, OBJPROP_SELECTABLE, false); } ChartRedraw(0); } void OnStart() { // 리스크 계산기 인스턴스 생성 CRiskCalculator riskCalc; string symbol = _Symbol; double riskAmount = 100.0; // 계좌 통화로 표시된 목표 위험 double slPips = 25.0; // 핍 단위의 손절 거리 // 매개변수 계산 double lotSize = riskCalc.CalculateLotSize(symbol, riskAmount, slPips); double pipValPerLot = riskCalc.GetPipValuePerLot(symbol); // 출력 줄 준비 string info[6]; info[0] = "=== RISK & POSITION CALCULATOR ==="; info[1] = "Symbol: " + symbol; info[2] = "Account Currency: " + AccountInfoString(ACCOUNT_CURRENCY); info[3] = "Target Risk: $" + DoubleToString(riskAmount, 2); info[4] = "Calculated Lot Size: " + DoubleToString(lotSize, 2) + " lots"; info[5] = "Pip Value (1 Lot): " + DoubleToString(pipValPerLot, 2); // 차트에 GUI 패널 표시 DrawChartPanel(info); }

클래스 참조
| 메서드 | 반환 유형 | 설명 |
| GetPipValuePerLot(string symbol) | double | 계좌 통화로 표시된 1 표준 랏당 1 핍의 금전적 가치를 반환합니다 . |
| GetPipValue(string symbol, double volume) | double | 지정된 거래량에 대한 1 핍의 총 금전적 가치를 반환합니다 . |
| CalculateLotSize(string symbol, double riskAmount, double slPips) | double | 목표 현금 리스크와 핍 단위의 손절매(Stop Loss)에 대한 랏 크기를 계산하고 정규화합니다 . |
MetaQuotes Ltd에서 영어로 번역함.
원본 코드: https://www.mql5.com/en/code/77130
Gueta Position Sizer: Risk and Lot Guard HUD
MT5용 실시간 리스크 계산기 및 랏 사이즈 가드 HUD입니다. 계좌 잔고, 목표 리스크 비율, 동적 ATR 스톱로스(최소 랏 오버슈트 경고 기능 포함)를 기반으로 정확한 랏 크기를 계산합니다.
RJO Daily Pivot Levels Classic and Fibonacci for MT5
클래식 및 피보나치 방식을 지원하는 MetaTrader 5용 일일 피벗 포인트(PP) 지표입니다. 이전에 마감된 일봉을 기반으로 PP, R1-R3 및 S1-S3을 표시합니다.
Margin Risk Simulator
Shows the prices of the current symbol at which the account reaches margin call and stop out, with a what-if mode for extra volume, the maximum volume you can add and pending orders that trigger on the way.
GridPro Panel — open-source grid trading EA with on-chart control panel
open-source grid trading EA with on-chart control panel