MQL5용 StopLoss 후행 클래스 라이브러리 - MetaTrader 5용 라이브러리
트레이딩 로봇에서 다양한 스톱로스 추적 전략을 구현하기 위한 범용 클래스 라이브러리. 이 라이브러리를 사용하면 가격과의 고정 거리뿐만 아니라 인기 지표인 파라볼 릭 SAR, AMA, DEMA, FRAMA, MA, TEMA, VIDYA 및 임의의 레벨 값으로 오픈 포지션의 손절매를 유연하게 관리할 수 있습니다.
이 라이브러리는 여러 유형의 다양한 손절매 추적손실을 MQL5 Expert Advisor에 추가할 수 있는 편리한 방법을 제공합니다. 필요한 클래스를 연결하고 매개변수를 구성한 다음 OnTick()에서 Run() 메서드를 호출하기만 하면 됩니다.
헤더
#include <Trailings\Trailings.mqh> 클래스 구조
| 클래스 | 목적 | 사용 예제 |
|---|---|---|
| CSimpleTrailing | 가격 후행의 베이스 클래스(단순 후행) | //--- 연결 #include <Trailings\Trailings.mqh> //--- 전 세계 CSimpleTrailing trail; //--- In OnInit(): trail.SetSymbol(_Symbol); trail.SetMagicNumber(123); trail.SetStopLossOffset(100); trail.SetActive(true); //--- In OnTick(): trail.Run(); |
| CTrailingByInd | 인디케이터별 후행의 베이스 클래스 | 상속된 클래스에서 사용 |
| CTrailingBySAR | 파라볼릭 SAR 인디케이터에 의한 후행 | //--- 연결 #include <Trailings\Trailings.mqh> //--- 전 세계 CTrailingBySAR trailSAR; //--- In OnInit(): trailSAR.Initialize(_Symbol, PERIOD_M15, 0.02, 0.2); trailSAR.SetActive(true); //--- In OnTick(): trailSAR.Run(); |
| CTrailingByAMA | 적응 이동 평균에 의한 후행 | //--- 연결 #include <Trailings\Trailings.mqh> //--- 전 세계 CTrailingByAMA trailAMA; //--- In OnInit(): trailAMA.Initialize(_Symbol, PERIOD_H1, 9, 2, 30, 0, PRICE_CLOSE); trailAMA.SetActive(true); //--- In OnTick(): trailAMA.Run(); |
| CTrailingByDEMA | 이중 지수 이동 평균 후행 | //--- 연결 #include <Trailings\Trailings.mqh> //--- 전 세계 CTrailingByDEMA trailDEMA; //--- In OnInit(): trailDEMA.Initialize(_Symbol, PERIOD_H1, 14, 0, PRICE_CLOSE); trailDEMA.SetActive(true); //--- In OnTick(): trailDEMA.Run(); |
| CTrailingByFRAMA | 프랙탈 적응 이동 평균 후행 | //--- 연결 #include <Trailings\Trailings.mqh> //--- 전 세계 CTrailingByFRAMA trailFRAMA; //--- In OnInit(): trailFRAMA.Initialize(_Symbol, PERIOD_H1, 14, 0, PRICE_CLOSE); trailFRAMA.SetActive(true); //--- In OnTick(): trailFRAMA.Run(); |
| CTrailingByMA | 후행 이동 평균 | //--- 연결 #include <Trailings\Trailings.mqh> //--- 전 세계 CTrailingByMA trailMA; //--- In OnInit(): trailMA.Initialize(_Symbol, PERIOD_H1, 20, 0, MODE_EMA, PRICE_CLOSE); trailMA.SetActive(true); //--- In OnTick(): trailMA.Run(); |
| CTrailingByTEMA | 후행 삼중 지수 이동 평균 | //--- 연결 #include <Trailings\Trailings.mqh> //--- 전 세계 CTrailingByTEMA trailTEMA; //--- In OnInit(): trailTEMA.Initialize(_Symbol, PERIOD_H1, 14, 0, PRICE_CLOSE); trailTEMA.SetActive(true); //--- In OnTick(): trailTEMA.Run(); |
| CTrailingByVIDYA | 후행 변수 인덱스 동적 평균 | //--- 연결 #include <Trailings\Trailings.mqh> //--- 전 세계 CTrailingByVIDYA trailVIDYA; //--- In OnInit(): trailVIDYA.Initialize(_Symbol, PERIOD_H1, 9, 12, 0, PRICE_CLOSE); trailVIDYA.SetActive(true); //--- In OnTick(): trailVIDYA.Run(); |
| CTrailingByValue | 지정된 레벨의 후행 | //--- 연결 #include <Trailings\Trailings.mqh> //--- 전 세계 CTrailingByValue trailValue; //--- In OnInit(): trailValue.SetSymbol(_Symbol); trailValue.SetActive(true); //--- In OnTick(): trailValue.Run(customSLBuy, customSLSell); |
파라미터 설정
- SetSymbol(심볼) - 트레이딩 심볼 설정;
- SetMagicNumber(magic) - 매직넘버 설정;
- SetStopLossOffset(오프셋) - 가격/지표에서 스톱로스 오프셋을 설정합니다;
- SetTrailingStart(시작) - 추적손절매 활성화를 위한 최소 수익 설정;
- SetTrailingStep(step) - 스톱로스 이동 단계 설정;
- SetSpreadMultiplier(value) - 스톱레벨의 스프레드 배율 설정;
- SetActive(flag) - 트레일링 활성화/비활성화.
인디케이터 클래스의 경우 - 추가 인디케이터 매개변수(기간, 가격 유형, 방법 등).
다음은 연결된 파라볼릭 SAR 트롤이 표준 Expert Advisor \MQL5\Experts\Advisors\ExpertMACD.mq5와 함께 작동하는 예시입니다:

이 트롤에 대한 자세한 내용은 다음 문서에서 확인할 수 있습니다.
Trailings.mqh는 MQL5 Expert Advisor에 추적 손절매를 추가하는 쉬운 방법입니다.
필요한 클래스를 연결하고 매개변수를 구성한 다음 OnTick에서 *.Run()을 호출합니다.
EA에 포지션을 열거하는 주기가 있는 경우 선택한 포지션의 티켓으로 후행의 Run() 메서드를 호출할 수 있습니다:
Run(const ulong pos_ticket);
일반적인 간단한 경우에는 OnTick() 핸들러에서 그렇게 할 수 있습니다:
for(int i=PositionsTotal()-1; i>=0; i--) { trailing_simple.Run(PositionGetTicket(i)); }
MetaQuotes Ltd에서 러시아어로 번역함.
원본 코드: https://www.mql5.com/ru/code/63926