거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Telegram에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
스크립트가 흥미로우신가요?
그렇다면 링크 to it -
하셔서 다른 이들이 평가할 수 있도록 해보세요
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
라이브러리

Position sizing from risk, using the broker's own tick value and volume step - MetaTrader 5용 라이브러리

Ralph Ivan Simeon
Ralph Ivan Simeon
I build and audit automated trading systems for MetaTrader 5, with most of my work on XAUUSD.
| Korean English Русский 中文 Español Deutsch 日本語 Português Français Italiano Türkçe
조회수:
6
평가:
(2)
게시됨:
MQL5 프리랜스 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

1 핍의 가치가 10달러라고 가정하는 모든 로트 크기 계산기는 금, 지수, 엔화 크로스 통화쌍은 물론, 미국 달러(USD)가 아닌 통화로 표시된 모든 계좌에 대해서도 잘못된 결과를 내놓습니다. 바로 이런 경우 과도한 로트 크기가 문제를 일으킵니다. 이 헤더는 대신 서버가 해당 종목에 대해 실제로 공개하는 데이터를 바탕으로 계산을 수행합니다.

기능 설명 CalcLots()가 반환하는 값, 대부분의 크기 계산 루틴이 잘못 처리하는 경우를 포함하여

CalcLots()는 계좌 통화로 표시된 위험 금액, 진입 가격, 스톱 가격을 입력으로 받아, 브로커의 제약 조건이 적용된 후 해당 거래량으로 실제로 감수하게 되는 위험 금액과 함께 거래할 수량을 반환합니다.

  • 이 함수는 항상 거래량을 브로커의 거래량 단위 단위로반올림하여 아래로 내립니다. 반올림하면 사용자가 요청한 것보다 더 많은 위험이 발생하게 되는데, 이는 포지션 크기 산정 루틴이 절대 해서는 안 되는 일입니다.
  • 요청된 위험 금액이 최소 랏보다 작을 경우, 이 함수는 이를 무시하지 않습니다. 대신 최소랏을 반환하고, clamped_min을 설정한 후, 해당 포지션이 실제로 부담하는 위험 금액을 보고합니다. 이 금액은 요청한 금액보다 클 것입니다.
  • 이 함수는 거래 플랫폼에 구애받지 않습니다. 스탑은 진입가보다 위나 아래에 위치할 수 있습니다.

또한 스탑 거리를 포인트 단위로 반환하고, 1.00 롯당 1포인트의 값을 함께 제공하므로, 호출자는 단순한 숫자 대신 계산 과정을 보여줄 수 있습니다.

수학 계산이 별도의 헤더로 분리된 이유

Calc.mqh는 터미널 상태를 유지하지 않습니다. 이 함수는 SymbolSpec 구조체(포인트, 틱 크기, 틱 값, 거래량 최소/최대/단계, 소수점 자리 수)를 입력으로 받아, 전체 포지션 크기 산정 로직을 가상 상품에 대해 오프라인에서 실행할 수 있습니다.

SpecFromSymbol() 은 실시간 데이터와의 유일한 연결 고리입니다. 이 함수는 먼저 SYMBOL_TRADE_TICK_VALUE_LOSS를 읽습니다. 이는 거래가 예상과 반대 방향으로 진행될 때 서버가 사용하는 수치이며, 바로 스톱 로스가 적용되는 쪽과 일치하기 때문입니다. 손실 변수를 0으로 설정해 둔 브로커의 경우, 이 함수는 SYMBOL_TRADE_TICK_VALUE로 대체하여 처리합니다.

이러한 분리가 포함되어 있는 테스트 스크립트를 가능하게 하는 핵심 요소입니다.

테스트 스크립트

RiskLotCalculatorTests.mq5는 브로커 연결이나 과거 데이터 없이도 모든 차트에서 실행됩니다. 이 스크립트는 다음 41가지 사례를 검증합니다: 볼륨 단계 반올림, 양쪽 클램프 및 해당 플래그, 틱 크기와 포인트 크기가 다를 때의 포인트 값 스케일링, 5자리 주요 통화, 금, 0.1 롯 단위의 지수, 양방향 거래, 그리고 모든 거부 경로(위험 없음, 마이너스 위험, 진입점에 위치한 스톱, 누락된 틱 데이터)를 검증합니다.

이 파일을 차트에 드래그한 후 ‘전문가(Experts)’ 탭을 확인하세요. 테스트 결과는 ‘ALL PASS’, 통과=41, 실패=0으로 표시됩니다.

두 파일 모두 독립적으로 작동합니다: 같은 폴더에 파일을 넣기만 하면 테스트 스크립트가 그대로 컴파일됩니다.

MetaQuotes Ltd에서 영어로 번역함.
원본 코드: https://www.mql5.com/en/code/77488

Session Range Breakout: Asia, London and New York high/low levels Session Range Breakout: Asia, London and New York high/low levels

Session Range Breakout draws the high and low of up to three intraday sessions (Asia, London and New York by default) and extends each level to the right with optional H/L labels and a range rectangle. Session hours, names and colours are configurable in server time. Optional popup, sound and push alerts fire when a bar closes outside a session range. The levels are fixed once the session closes, so the drawing does not repaint. The indicator draws chart objects only and never opens trades.

TesterStats: Strategy Tester report statistics in MQL5 code TesterStats: Strategy Tester report statistics in MQL5 code

Calculates the Strategy Tester report statistics from the deal history, including Z-Score, AHPR, GHPR, LR Correlation and LR Standard Error, which TesterStatistics() does not return. Checked value by value against the tester.

Contract Sizer: ladder, floor and a breaker that survives a deposit Contract Sizer: ladder, floor and a breaker that survives a deposit

각기 다른 기능을 하는 세 가지 포지션 규모 조정 보호 기능; 이들을 혼동하는 것이 수많은 계좌가 전액 손실을 입는 주된 이유입니다: - 래더(ladder): 잔고의 X당 1계약으로, 수동 로트 조정 시에도 항상 상한선(CAP)으로 적용됩니다; - 플로어(floor): 최소 자본금 미만이면 거래가 중단되며, 새로운 입금이 필요합니다; - 브레이커(breaker): 계좌 규모와 관계없이 최고점 대비 X% 아래로 떨어지면 거래가 중단되며, 자동으로 재설정되지 않습니다. 이 라이브러리가 해결하는 문제이자, 다른 라이브러리들은 거의 다루지 않는 점: 입금은 이익이 아니며, 출금은 손실이 아닙니다. 브레이커는 잔고 최고치를 기준으로 하락폭을 측정합니다. 이를 처리하지 않으면, 드로우다운 중에 이루어진 입금은 잔고와 최고치를 동시에 끌어올리게 되며, 보호 기능은 도움이 될 바로 그 시점에 하락을 감지하지 못하게 됩니다. 이 경우 입금과 출금은 최고치를 동일한 만큼 이동시킵니다. 최고점은 파일에 저장됩니다. 터미널 재시작 시 최고점을 잊어버리는 브레이커는 진정한 브레이커가 아닙니다. 이 데모는 드로우다운 최저점에서 입금이 이루어지는 상황을 시뮬레이션합니다. 입금 기능을 켜고 끈 상태로 실행하여 “하락” 열을 비교해 보십시오.

Non-Repainting Fair Value Gap Detector Non-Repainting Fair Value Gap Detector

Non-repainting three-bar Fair Value Gap detector for MetaTrader 5. Closed-bar detection, the 50% Consequent Encroachment level, mitigation as an explicit state machine, incremental scanning, and a built-in self-audit that re-checks the stored gap levels against the closed-bar series on attach. Pure native MQL5, no DLLs, no external dependencies.