Stormbreaker ADX는 Supertrend의 방향성 신호와 ADX의 강도, 그리고 +DI/−DI의 방향적 관계를 결합한 MetaTrader 5 전문가 자문가(EA)입니다. 이 EA는 마감된 캔들을 기반으로 신호를 평가하고, 고정된 자본-위험 예산에 따라 포지션 규모를 결정하며, ATR을 기반으로 한 손실 제한 주문을 설정합니다.
다운로드 가능한 소스 코드는 학습, 테스트 및 수정을 목적으로 합니다. 이 EA는 수익을 보장하지 않으므로, 실제 거래에 적용하기 전에 해당 브로커의 데이터와 계약 사양을 바탕으로 테스트해 보시기 바랍니다.

그림 1. 진입 필터는 새로운 신호 시간대의 캔들이 시작될 때 순차적으로 평가됩니다.
기본 신호 시간대는 H4입니다. 새로운 H4 바가 형성될 때마다 EA는 이전에 완료된 바(1 바 전)를 읽고, ATR을 기반으로 사용자 정의 슈퍼트렌드를 계산하며, ADX, +DI, −DI 및 ATR 값을 읽습니다. 슈퍼트렌드의 방향과 가격의 방향성이 일치하고, ADX가 진입 기준치를 충족할 때만 매매가 고려됩니다.
| 구성 요소 | 기본값 | 목적 |
|---|---|---|
| 신호 기간 | H4 | 신호 평가 기간; 새로운 막대가 생성될 때마다 진입 시점을 확인합니다. |
| 슈퍼트렌드 | ATR 10, 계수 3.0 | 현재 추세 방향을 정의합니다. |
| ADX / DMI | ADX 14; 진입 기준치 23 | 추세 강도를 필터링하고 +DI 및 −DI를 사용하여 방향을 확인합니다. |
| 청산 강도 기준치 | ADX 18 미만 | 추세 강도가 청산 수준 이하로 약화되면 관리 중인 포지션을 청산합니다. |
| 초기 스톱 | 2 × ATR(10) | 완료된 신호 막대의 종가에서 스탑을 설정한 다음, 브로커의 가격 규칙에 맞춰 조정합니다. |
| 위험 예산 | 현재 순자산의 0.5% | 현재 진입 호가와 손절가 사이의 예상 손실액을 바탕으로 거래량을 계산합니다. |
| 익절 | 없음 | 정해진 익절 목표는 없으며, 신호/강도에 따라 또는 손절가에 의해 포지션을 청산합니다. |
| 조치 | 조건 |
|---|---|
| 매수 진입 | 매수 진입 가능; 슈퍼트렌드가 상승세; ADX ≥ 23; +DI > −DI. |
| 매도 진입 | 매도 진입 가능; 슈퍼트렌드가 약세; ADX ≥ 23; −DI > +DI. |
| 기존 포지션 청산 | ADX < 18이거나, 슈퍼트렌드 방향이 포지션과 반대 방향으로 전환된 경우. 반대 조건에 해당하는 신호가 발생하면 관리 중인 포지션도 청산되거나 방향이 전환됩니다. |
EA는 설정된 종목 및 매직 넘버를 가진 기존 포지션을 발견할 경우, 동일한 방향의 포지션을 추가하지 않습니다. 손절매 주문은 신호에 따른 청산 여부와 관계없이 계속 유효합니다.
주문을 전송하기 전에, Stormbreaker는 OrderCalcProfit을 사용하여 현재 매도/매수 진입 호가에서 제안된 스탑 가격까지의 1랏 손실액을 추정합니다 . 이후 0.5%의 순자산 리스크 예산을 해당 추정 1랏 손실액으로 나눈 뒤, 거래량이 브로커가 허용하는 거래량 단위로 반올림되도록 하고 최대 거래량 제한을 적용합니다. 또한 사용 가능한 마진도 확인합니다. 허용되는 최소 랏 수가 위험 예산을 초과하거나 마진이 부족한 경우, EA는 해당 거래를 건너뜁니다.
double risk_cash = AccountInfoDouble(ACCOUNT_EQUITY) * 0.5 / 100.0; double one_lot_loss = MathAbs(one_lot_profit); double volume = MathFloor((risk_cash / one_lot_loss) / volume_step) * volume_step; volume = MathMin(volume, MaxVolume);
설명을 위해 간략히 발췌했습니다. 전체 소스 코드에는 유효하지 않은 가격, 틱/거래량 일치 여부, 브로커의 스탑 거리 및 마진에 대한 검증 과정이 포함되어 있습니다. 스탑은 이전 캔들의 종가에서 도출되는 반면, 포지션 크기는 현재 진입 호가를 기준으로 산정되므로, 슬리피지/갭 및 체결 비용으로 인해 실현 손실이 0.5%와 다를 수 있습니다. 이는 위험 목표치일 뿐, 보장된 최대 손실이 아닙니다.

그림 2. 스톱 레벨은 ATR을 기반으로 하며, 이 EA에는 고정된 수익 목표가 없습니다.
| 입력값 | 기본값 | 의미 |
|---|---|---|
| SignalTimeframe | PERIOD_H4 | 신호에 사용되는 시간대. |
| 슈퍼트렌드 계수 | 3.0 | 슈퍼트렌드에서 사용하는 ATR 배수. |
| SupertrendATRPeriod | 10 | 슈퍼트렌드 및 초기 스탑에 적용되는 ATR 기간. |
| ADXPeriod | 14 | ADX/DMI 계산 기간. |
| 진입 ADX | 23.0 | 새로운 진입을 위한 최소 ADX 값. |
| 청산 ADX | 18.0 | 개설된 포지션을 청산하는 ADX 수준. |
| 스톱 ATR 배수 | 2.0 | 초기 스탑에 사용되는 ATR 배수. |
| 최대 거래량 | 100.0 | 로트 상한선; 실제 종목별 한도는 여전히 적용됩니다. |
| 편차 포인트 | 20 | 거래 요청에 전달되는 최대 가격 편차(포인트 단위). |
| EnableBuy / EnableSell | true / true | 각 방향에 대해 활성화하거나 비활성화합니다. |
| MagicNumber | 51003 | EA가 관리하는 포지션을 식별하는 데 사용되는 식별자. |
0.5%의 위험 비율은 현재 소스 코드 내에서 고정된 상수이며, 사용자가 입력하는 값이 아닙니다.
bool long_signal = EnableBuy && direction < 0 && adx >= EntryADX && plus_di > minus_di; bool short_signal = EnableSell && direction > 0 && adx >= EntryADX && minus_di > plus_di; if(long_signal) STOpenPosition(true, bar.close - StopATRMultiple * atr, 0.0, MagicNumber, "ST ADX long", MaxVolume, DeviationPoints); else if(short_signal) STOpenPosition(false, bar.close + StopATRMultiple * atr, 0.0, MagicNumber, "ST ADX short", MaxVolume, DeviationPoints); else if(position != 0 && (adx < ExitADX || (position > 0 && direction > 0) || (position < 0 && direction < 0))) STClosePosition(MagicNumber);
전체 EA에서 이러한 조건은 새로운 신호 시간대의 바가 감지되고, 이전 마감된 바와 지표 값을 성공적으로 가져온 후에만 실행됩니다.
| 브로커 | 기간 종료 | 초기 입금액 | 순이익 | 순수익률 | 최대 순자산 DD | 수익 계수 | 샤프 지수 | 거래 횟수 | 실제 티크 |
|---|---|---|---|---|---|---|---|---|---|
| IC Markets | 2026-09-23 | 1,000,000 USD | 154,482.51 USD | 15.45% | 19.40% | 1.12 | 0.50 | 520 | 32% |
| BlackBull Markets | 2026-09-24 | 1,000,000 USD | 225,766.54 USD | 22.58% | 5.00% | 1.45 | 1.00 | 196 | 41% |
| 퓨전 마켓 | 2026년 9월 23일 | 100,000 USD | 26,680.57 USD | 26.68% | 8.97% | 1.26 | 2.22 | 374 | 4% |

위험 공지: 자동 거래에는 상당한 위험이 수반됩니다. 갭이 발생하거나 시장이 급변하는 상황에서는 손절매가 청산 가격을 보장할 수 없습니다. 백테스트, 데모 및 과거 실적은 미래의 결과를 보장하지 않습니다. 사용 전 EA와 그 설정을 평가하는 것은 사용자의 책임입니다.
MetaQuotes Ltd에서 영어로 번역함.
원본 코드: https://www.mql5.com/en/code/77718
Tick Scalper Helper - tick chart and one-click trading panel for MetaTrader 5
Tick Scalper Helper is a manual trading utility for traders who work on very short time frames and want to see every price change.
Supertrend Scalper with Breakeven Win Rate Panel
A Supertrend scalping EA with 14 switchable filters and a self-measuring panel that shows the actual win rate next to the win rate needed to break even after real spread, so you can see whether a setting has an edge or only a high percentage.
ImpulseCandle - impulse bar marker with ATR body filter and volume confirmation
충동 캔들을 표시합니다: 캔들 몸통이 최소 ATR × 배수 이상, 캔들 몸통이 캔들 범위의 설정된 비율 이상, 종가가 극값 근처에 위치, 선택적으로 틱 거래량 확인. 강세 충동 캔들 아래에는 녹색 화살표, 약세 충동 캔들 위에는 빨간색 화살표가 표시됩니다. 마감된 봉만 표시하며, 재그림 현상은 없습니다. 신호는 두 개의 버퍼에 저장되어 있으므로, Expert Advisor가 iCustom을 통해 이를 읽을 수 있습니다.
PropGuard 1.02 - account risk manager for prop firm accounts
프로프 펌 계좌를 위한 계좌 단위 보호 기능입니다. 계좌 내 모든 포지션을 모니터링하며, 일일 또는 최대 손실 한도에 도달하면 모든 포지션을 청산하고, 포지션당 위험 노출 금액을 제한하며, 스탑 주문이 설정되지 않은 포지션을 청산하고, 시장 변동성이 큰 뉴스가 발표될 때 포지션을 정리할 수 있습니다.