Rulebook V1 · Locked · Phase 2 Output

ALFA CAPITAL LAB

ACL-RND-001 · Strategy Codification · 8 Core Rules · Ready for Phase 3
RULEBOOK V1 — LOCKED
Document: ACL-P2-RBK-001
Rules: 8 Core · All Binary
Default Params: Adjustable via UI
Rulebook V1 status: LOCKED untuk Phase 3. Semua rules menggunakan definisi globally accepted (SnD, SnR, SMC/ICT standard). Semua numeric parameters adalah default values — adjustable per user via platform UI. Logika dan konsep tiap rule tidak berubah; hanya angkanya yang bisa di-tune berdasarkan hasil backtest.
✓ 8 Rules Defined Params Adjustable Phase 3 Ready
Rule Summary
Rule ID Rule Name Category Applies To Type
R.01 Bias Confirmation Bias All Pairs · H4 Binary
R.02 Ranging Bias Rule Bias All Pairs · H4 Binary
R.03 Zone Validity Zone All Pairs · H1/H4 Adjustable
R.04 SMC Confluence Zone All Pairs · H1 Adjustable
R.05 Entry Trigger Entry All Pairs · M15 Adjustable
R.06 SL & TP Placement Risk All Pairs Adjustable
R.07 News & Session Filter Filter All Pairs Adjustable
R.08 Correlated Pair Rule Special USTEC + US500 Binary
Core Rules — Detail
R.01
Bias
Bias Confirmation
Timeframe: H4 · Applies to: All Pairs · Checked: Once per session
Binary · Locked
Kondisi & Output
BULLISH — H4 candle close di atas swing high sebelumnya (Break of Structure ke atas). Entry hanya LONG.
BEARISH — H4 candle close di bawah swing low sebelumnya (Break of Structure ke bawah). Entry hanya SHORT.
RANGING — Tidak ada BOS yang clear. Strategy shift ke R.02 (Ranging Bias Rule). SnD tetap berlaku tapi prioritas rendah.
Detection Logic — H4 BOS
-- Swing lookback N = 3 candles (adjustable)
swing_high = max(high) over N candles left + N candles right
swing_low = min(low) over N candles left + N candles right
bias = 'BULLISH' if close > last swing_high
bias = 'BEARISH' if close < last swing_low
bias = 'RANGING' if no clear break
ParameterDefaultRangeKeterangan
swing_lookback_n 3 2 – 10 Jumlah candle kiri & kanan untuk deteksi swing high/low
R.02
Bias
Ranging Bias Rule
Timeframe: H4 · Applies to: All Pairs · Triggered: Saat R.01 = RANGING
Binary · Locked
Kondisi
H4 Ranging bukan berarti no trade. Saat ranging, strategy shift ke SnR pure — boundary range menjadi zona utama.
LONG setup — Harga mendekati bottom boundary range (support). SnR di bottom = zona beli.
SHORT setup — Harga mendekati top boundary range (resistance). SnR di top = zona jual.
Mid-range — Harga di tengah range, jauh dari boundary. No trade — RR tidak memadai.
Detection Logic — Range Boundary
-- Range dihitung dari N candle terakhir di H4
range_high = max(high) over range_lookback candles
range_low = min(low) over range_lookback candles
proximity_pct = 20% dari total range height -- adjustable
if price <= range_low + proximity → 'NEAR_SUPPORT'
if price >= range_high - proximity → 'NEAR_RESISTANCE'
ParameterDefaultRangeKeterangan
range_lookback 50 20 – 100 Jumlah candle H4 untuk define range boundary
boundary_proximity_pct 20% 10% – 35% Persentase range height yang dianggap "dekat boundary"
R.03
Zone
Zone Validity
Timeframe: H1 & H4 · Applies to: All Pairs · SnR + Supply & Demand
Params Adjustable
Kriteria Zone Valid — Semua harus terpenuhi
Impulse Origin — Zone terbentuk dari candle impulsif: range candle > 1.5× ATR(14) dan body size > 70% total range candle.
Unmitigated — Harga belum pernah menembus lebih dari 50% body zone sejak terbentuk. Jika sudah ditembus >50% → zone invalid.
Clear Origin Candle — Ada satu candle yang jelas sebagai titik asal zone. Bukan area yang gradual atau konsolidasi panjang.
Tested Zone — Zone yang sudah 3× dites turun ke priority rendah (strength score berkurang). Masih valid tapi tidak ideal.
Broken Zone — Harga close di luar zone melebihi penetration threshold. Zone status = BROKEN, dihapus dari watchlist aktif.
Detection Logic — SnD Zone
-- Impulse candle detection
candle_range = high - low
body_size = |close - open|
atr14 = ATR(period=14)
is_impulse = candle_range > atr_multiplier × atr14
AND body_size / candle_range > body_threshold
-- Zone boundary
zone_top = high of origin candle
zone_bottom = low of origin candle
-- Zone status
penetration = (price - zone_bottom) / (zone_top - zone_bottom)
if penetration > 0.50 → status = 'BROKEN'
ParameterDefaultRangeKeterangan
atr_period 14 7 – 21 Period ATR untuk ukur volatilitas candle
atr_multiplier 1.5× 1.2 – 2.5 Minimum candle range relatif terhadap ATR untuk dianggap impulse
body_threshold 70% 50% – 85% Minimum body size sebagai persen dari total candle range
penetration_threshold 50% 30% – 70% Batas penetrasi zone sebelum dianggap BROKEN
max_tests_before_weak 3 2 – 5 Berapa kali zone dites sebelum strength turun ke LOW
R.04
Zone
SMC Confluence
Timeframe: H1 · Applies to: All Pairs · OB + FVG + Liquidity Sweep
Params Adjustable
Confluence Elements — Masing-masing adalah bonus, bukan syarat wajib
OB
Order Block — Last bearish candle sebelum impulse bullish move (atau sebaliknya). Impulse move harus minimal 2× body OB candle. Zone OB = high & low candle tersebut.
FVG
Fair Value Gap — Gap antara wick candle-1 dan wick candle-3 dari 3-candle impulse sequence. Valid jika gap size ≥ 0.5× ATR(14). Harga cenderung fill gap sebelum lanjut.
SWP
Liquidity Sweep — Harga briefly menembus equal highs/lows (minimal N candles yang memiliki high/low dalam range Y pip), lalu reversal cepat. Ini adalah engineered liquidity hunt.
+1
Scoring — Setiap elemen SMC yang hadir di area zone menambah strength score +1. Zone strength maksimal 5. Semakin tinggi = semakin prioritas.
ParameterDefaultRangeKeterangan
ob_impulse_multiplier 2.0× 1.5 – 3.0 Minimum impulse move relatif terhadap body OB untuk validasi Order Block
fvg_min_size_atr 0.5× 0.2 – 1.0 Minimum gap size FVG relatif terhadap ATR(14)
equal_hl_lookback 5 3 – 15 Jumlah candle yang diperiksa untuk deteksi equal highs/lows
equal_hl_tolerance_pip 3 pip 1 – 10 Toleransi dalam pip untuk dua high/low dianggap "equal"
R.05
Entry
Entry Trigger
Timeframe: M15 · Applies to: All Pairs · 3 Conditions must ALL be met
Params Adjustable
3 Kondisi Wajib — Semua harus TRUE untuk entry
1
R.01 atau R.02 terpenuhi — Bias H4 jelas (trending atau ranging boundary). Tidak ada bias = tidak ada entry.
2
R.03 terpenuhi — Ada zone H1 yang valid dan aligned dengan bias H4. Zone harus FRESH atau TESTED (bukan BROKEN).
3
M15 Rejection Candle di area zone — Salah satu dari: Pin Bar (wick ≥ 2× body), Engulfing (body candle saat ini menutup body candle sebelumnya), atau BOS Minor (break struktur kecil di M15).
Jika salah satu tidak terpenuhi — No entry. Tidak ada exception. Tunggu setup berikutnya.
ParameterDefaultRangeKeterangan
pin_bar_wick_ratio 2.0× 1.5 – 3.0 Minimum panjang wick relatif terhadap body untuk dianggap pin bar
engulf_body_pct 100% 80% – 100% Minimum persentase body candle sebelumnya yang harus ditutupi oleh engulfing candle
zone_entry_tolerance 10 pip 0 – 20 Toleransi harga di luar zone boundary yang masih dianggap "di area zone"
R.06
Risk
SL & TP Placement
Applies to: All Pairs · Checked before every entry · RR minimum enforced
Params Adjustable
SL Logic
SL
Stop Loss ditempatkan di luar zone dengan buffer per pair (lihat tabel pair specs di bawah). Bukan di dalam zone. Bukan di candle sebelumnya.
Max Risk per Trade: 2% modal. Jika SL di posisi logis menghasilkan risk >2% → tidak boleh perkecil SL. Harus kecilkan lot size atau skip trade.
TP Logic
TP1
TP1 di 1:2 RR — Close 50% posisi. Setelah TP1 hit, move SL ke breakeven untuk sisa posisi.
TP2
TP2 di next major structure / zone opposite — Sisa 50% posisi dibiarkan berjalan ke target struktur berikutnya.
Minimum RR: 1:2 sebelum entry. Jika RR tidak mencapai 1:2 dengan SL di posisi logis → skip trade. Bukan SL dipersempit.
XAUUSD
SL Buffer0.8–1.2 pt
Min RR1:2
Max Risk2%
USTEC
SL Buffer5–8 pt
Min RR1:2
Max Risk2%
US500
SL Buffer3–5 pt
Min RR1:2
Max Risk2%
GBPUSD
SL Buffer8–12 pip
Min RR1:2
Max Risk2%
GBPJPY
SL Buffer12–18 pip
Min RR1:2
Max Risk2%
ParameterDefaultRangeKeterangan
max_risk_pct 2.0% 0.5% – 3% Maximum risk per trade sebagai persentase modal
min_rr_ratio 2.0 1.5 – 4.0 Minimum Risk:Reward ratio sebelum entry diizinkan
tp1_rr 2.0 1.5 – 3.0 RR target untuk TP1 (close 50% posisi)
tp1_close_pct 50% 30% – 70% Persentase posisi yang diclose saat TP1 hit
R.07
Filter
News & Session Filter
Applies to: All Pairs · Checked before every entry · Hard filter
Params Adjustable
News Filter
No new entry 30 menit sebelum high-impact news event untuk pair yang relevan (flag dari tabel market.news_flags Phase 1).
No new entry 60 menit sesudah high-impact news event. Trade yang sudah open dipertahankan atau close manual — tidak auto-close.
Session Filter per Pair
XAUUSD, GBPUSD, GBPJPY — Asia (05:00–12:00), London (14:00–21:00), NY (19:30–23:00) WIB.
USTEC, US500 — NY Only (19:30–23:00 WIB). Entry di luar window ini = no trade.
ParameterDefaultRangeKeterangan
pre_news_buffer_min 30 min 15 – 60 min Menit sebelum news — no new entry
post_news_buffer_min 60 min 30 – 120 min Menit sesudah news — no new entry
news_impact_level HIGH MEDIUM / HIGH Minimum impact level news yang di-filter
R.08
Special
Correlated Pair Rule
Applies to: USTEC + US500 only · Simultaneous entry permitted
Binary · Locked
Rule
USTEC dan US500 boleh dienter bersamaan jika keduanya memiliki setup valid secara independen (R.01–R.07 terpenuhi masing-masing).
Risk tetap dihitung per posisi — Max 2% per trade berlaku masing-masing. Total exposure bisa mencapai 4% saat keduanya open bersamaan. Ini acceptable karena disengaja.
Tidak ada pembatasan untuk pair lain — XAUUSD, GBPUSD, GBPJPY bisa juga open bersamaan jika setup ada, masing-masing dengan max risk 2%.