{% if range_score %}
{{ range_score.oscillation_score|float|num1 }}

Oscillation Score

{% if range_score.oscillation_score|float >= 60 %}Sangat cocok range trading {% elif range_score.oscillation_score|float >= 35 %}Potensial range trading {% else %}Kurang cocok range trading{% endif %}

Last scan: {{ range_score.computed_at|wib_short if range_score.computed_at else '-' }}

{{ range_score.candle_count }} candles · {{ range_score.timeframe }}

Range Width

{{ range_score.range_width_pct|float|num2 if range_score.range_width_pct else '0.00' }}%

S/R spread vs price

Bounces

{{ range_score.bounce_frequency or 0 }}

S:{{ range_score.support_touches or 0 }} R:{{ range_score.resistance_touches or 0 }}

RSI Stability

{{ range_score.rsi_stability_pct|float|num1 if range_score.rsi_stability_pct else '-' }}%

RSI now: {{ range_score.rsi_latest|float|num1 if range_score.rsi_latest else '-' }}

BB Width

{{ range_score.bb_width|float|num3 if range_score.bb_width else '-' }}

Bollinger band width

ATR %

{{ range_score.atr_pct|float|pct2 if range_score.atr_pct else '-' }}

Volatility

Mean Reversion

{{ 'YES' if range_score.is_mean_reverting else 'NO' }}

Conf: {{ range_score.mr_confidence or '-' }}

Half-Life

{% set hl = range_score.half_life_candles|float if range_score.half_life_candles else 0 %} {% set tf = range_score.timeframe or '1D' %} {% set tf_map = {'1m': 1/60, '15m': 0.25, '30m': 0.5, '1h': 1, '4h': 4, '1D': 24, '1W': 168} %} {% set hl_hours = hl * tf_map.get(tf, 24) %}

{% if hl > 0 and hl < 999 %} {% if hl_hours < 1 %}{{ (hl_hours * 60)|int }}m {% elif hl_hours < 24 %}{{ hl_hours|num1 }}h {% elif hl_hours < 168 %}{{ (hl_hours / 24)|num1 }}d {% else %}{{ (hl_hours / 168)|num1 }}w{% endif %} {% else %}-{% endif %}

{{ hl|num1 }} candles ({{ tf }})

Z-Score

{{ range_score.zscore|float|num3 if range_score.zscore else '-' }}

{% if range_score.zscore %} {% if range_score.zscore|float > 2 %}Overbought {% elif range_score.zscore|float < -2 %}Oversold {% else %}Neutral{% endif %} {% endif %}

Range Trading Chart

Hourly candles with support/resistance zone

{% set active_support = range_score.adaptive_support|float if range_score.adaptive_support else (range_score.nearest_support|float if range_score.nearest_support else None) %} {% set active_resistance = range_score.adaptive_resistance|float if range_score.adaptive_resistance else (range_score.nearest_resistance|float if range_score.nearest_resistance else None) %} {% if active_support and active_resistance %}
Support: Rp {{ active_support|price }} Resistance: Rp {{ active_resistance|price }} {% if range_score.adaptive_support %} (Adaptive {{ range_score.adaptive_lookback or '' }}) {% endif %}
{% endif %}
{% set support = (range_score.adaptive_support|float if range_score.adaptive_support else range_score.nearest_support|float) if range_score.nearest_support or range_score.adaptive_support else 0 %} {% set resistance = (range_score.adaptive_resistance|float if range_score.adaptive_resistance else range_score.nearest_resistance|float) if range_score.nearest_resistance or range_score.adaptive_resistance else 0 %} {% set price_now = range_score.current_price_idr|float if range_score.current_price_idr else 0 %} {% set roundtrip_fee = buy_fee_pct + sell_fee_pct %} {% set using_adaptive = range_score.adaptive_support and range_score.adaptive_resistance %} {% if support > 0 and resistance > support %}

📋 Range Trading Plan {% if using_adaptive %}⚡ Adaptive S/R ({{ range_score.adaptive_lookback or '' }}){% endif %}

🟢 Entry (Buy)

Rp {{ support|price }}

Near support level

🔴 Exit (Sell)

Rp {{ resistance|price }}

Near resistance level

⚠️ Stop Loss

{% set atr_pct_val = range_score.atr_pct|float if range_score.atr_pct else 0 %} {% set sl_pct = [atr_pct_val * 1.5, 1.5]|max if atr_pct_val > 0 else 3.0 %} {% set sl_pct = [sl_pct, 8.0]|min %} {% set sl_price = support * (1 - sl_pct / 100) %}

Rp {{ sl_price|price }}

{{ sl_pct|num1 }}% di bawah support{% if atr_pct_val > 0 %} (ATR-based){% endif %}

💰 Net Profit / Cycle

{% set est_profit = (range_score.adaptive_est_profit_pct|float if using_adaptive and range_score.adaptive_est_profit_pct else range_score.est_profit_per_cycle_pct|float) if (range_score.est_profit_per_cycle_pct or range_score.adaptive_est_profit_pct) else 0 %}

{{ est_profit|spct2 }}

After {{ roundtrip_fee|num4 }}% fee

Fee Breakdown

Buy fee {{ buy_fee_pct|num4 }}%
Sell fee {{ sell_fee_pct|num4 }}%
Total roundtrip {{ roundtrip_fee|num4 }}%

Projection

{% if est_profit > 0 %} {% set gross_range = (range_score.adaptive_range_pct|float if using_adaptive and range_score.adaptive_range_pct else range_score.range_width_pct|float) if (range_score.range_width_pct or range_score.adaptive_range_pct) else 0 %} {% set sl_distance = support - sl_price %} {% set rr_ratio = ((resistance - support) / sl_distance)|num2 if sl_distance > 0 else '-' %}
Risk/Reward {{ rr_ratio }}x
Gross range {{ gross_range|num2 }}%
Cycles to 2x capital ~{{ (100 / est_profit)|int }} cycles
{% else %}

Range terlalu kecil untuk profit setelah fee {{ roundtrip_fee|num4 }}%.

{% endif %}
{% else %}

Support/Resistance belum terdeteksi — Range Trading Plan tidak tersedia.

Pastikan data OHLCV (1H) sudah cukup untuk analisis S/R.

{% endif %}

Historical Bounces

Candles yang menyentuh support/resistance

Loading bounce data...
Tidak ada bounce events terdeteksi.

📊 Cycle Frequency & Compounding

Berapa kali bisa beli-jual (round-trip) per hari/minggu

📐 S/R dari →

Klik salah satu mode di atas untuk analisis frekuensi cycle.

Menganalisis cycle frequency ()...

Cycle Frequency

Cycles / Day

Avg Duration

Complete Cycles

Success Rate

Duration Range

Est. Cycles / Week

Profit / Cycle

⚠️

Proyeksi Compounding (realistis)

Success Rate

Effective Rate/cycle

Period Cycles Capital Profit

Break-even setelah 1× SL (-3%)

Fee/cycle

⚠️ Proyeksi sudah dipotong slippage (~10%), toleransi entry (~6%), dan safety haircut (70%). Hasil aktual tetap bisa berbeda karena market condition changes.

📋 Recent Cycles ( terakhir)

🔮 Cycle Prediction Queue

Prediksi jadwal beli/jual berdasarkan cycle frequency & S/R adaptif

Total Cycles

Modal

Total Profit

Profit %

Total Fee

# Waktu (WIB) Action Harga Qty Amount Fee Profit Akumulasi Cycle

⚠️ Prediksi berdasarkan frekuensi cycle historis dan level S/R adaptif. Waktu dan harga aktual bisa berbeda. Tidak termasuk slippage, market condition changes, atau breakout events.

{% else %}

Belum ada data range trading untuk {{ coin.name }}

Jalankan scan oscillation terlebih dahulu, atau klik tombol di bawah untuk analisis {{ item_label|lower }} ini.

Menganalisis OHLCV data...

{% endif %}