Strategi lintasan awan pintar

EMA RSI VOLUME Multi-Timeframe
Tarikh penciptaan: 2025-09-25 15:08:48 Akhirnya diubah suai: 2025-09-25 15:08:48
Salin: 0 Bilangan klik: 214
2
fokus pada
319
Pengikut

Strategi lintasan awan pintar Strategi lintasan awan pintar

️ Ini bukan strategi rata rata biasa, ia adalah sistem perdagangan pintar yang “melihat cuaca”!

Adakah anda tahu? Kebanyakan peniaga menggunakan EMA yang bersilang pada satu bingkai masa, sama seperti melihat cuaca hari ini untuk memutuskan pakaian yang akan dipakai minggu ini! Di mana strategi ini hebat? Ia memantau peta awan EMA 1 minit dan 5 minit pada masa yang sama, seperti mempunyai ramalan cuaca + perlindungan berganda dari stesen cuaca masa nyata

Fungsi Triple Filter Mempertahankan Anda dari Perangkap ‘Penembusan Palsu’

Panduan untuk melarikan diri dari jurang telah tiba!Yang paling bijak dalam taktik ini ialah ciri “menolak transaksi”:

  • Pengesahan kuantiti: Isyarat tanpa pelepasan adalah “harimau kertas” dan mesti melebihi 1.3 kali ganda daripada purata 20 kitaran untuk mendapat pengiktirafan
  • Penapis getaranStrategi ini akan ‘menyerang’ secara automatik apabila pasaran memasuki mod setapak yang membosankan untuk mengelakkan berputar di dalam lumpur.
  • RSI berlebih-lebih: 70 ke atas dan 30 ke bawah brek automatik, tidak menjadi “pemegang cakera”

Bayangkan jika anda mempunyai pembantu perdagangan yang super rasional, dan ketika emosi pasaran tidak terkawal, anda boleh berkata, “Sayang, ini bukan masa yang tepat!”

Terdapat empat keadaan pasaran dan strategi untuk mengenal pasti mereka dengan tepat.

Strategi ini membahagikan pasaran kepada empat peringkat, seperti “analisis sentimen” pasaran:

  • TRENDING (masa trend)Perdagangan semula jadi: lampu hijau
  • RANGE BOUNDLampu Kuning, Hentikan Perdagangan
  • COILING (masa pertumbuhan)Lampu mati, bersiap sedia
  • LOADING (masa pengisian)Lampu merah, aksi besar akan dikeluarkan 🔴

Seperti memandu dan melihat lampu merah dan hijau, ia mudah dan intuitif! Apabila strategi menunjukkan “RANGE BOUND”, anda tahu anda perlu pergi minum kopi dan menunggu peluang yang lebih baik.

Aplikasi Pergaduhan Jadual: Membuat Perdagangan Anda Lebih Cerdas

Apakah masalah yang anda dapat selesaikan dengan strategi ini?

  1. Perpisahan yang kerap berlakuPengesahan: Mengurangkan isyarat palsu dengan banyak pengesahan
  2. Meningkatkan Kadar Kemenangan“Saya tidak tahu apa-apa tentang apa yang berlaku di Malaysia, saya tidak tahu apa yang berlaku di Malaysia, saya tidak tahu apa yang berlaku di Malaysia, saya tidak tahu apa yang berlaku di Malaysia, saya tidak tahu apa yang berlaku di Malaysia.
  3. Pengendalian emosiPeraturan masuk dan keluar yang sistematik, anda tidak boleh berdagang berdasarkan perasaan

Ingat, strategi perdagangan terbaik bukan untuk membuat anda berdagang lebih banyak, tetapi untuk membuat anda berdagang dengan lebih tepat! Strategi penembusan awan ini memberi anda “penjaga perdagangan” yang profesional, yang dapat menangkap peluang dan melindungi anda dari bahaya ️

Kod sumber strategi
/*backtest
start: 2025-01-01 00:00:00
end: 2025-09-24 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":500000}]
*/

//@version=5
strategy("EMA Crossover Cloud w/Range-Bound Filter", overlay=true, default_qty_type=strategy.fixed, default_qty_value=500, initial_capital=50000)

// === INPUTS ===
rsi_length = input.int(14, "RSI Length")
rsi_overbought = input.int(70, "RSI Overbought Level")
rsi_oversold = input.int(30, "RSI Oversold Level")

ema_fast_1m = input.int(10, "1m Cloud Fast EMA")
ema_slow_1m = input.int(20, "1m Cloud Slow EMA")
ema_fast_5m = input.int(10, "5m Cloud Fast EMA") 
ema_slow_5m = input.int(20, "5m Cloud Slow EMA")

volume_multiplier = input.float(1.3, "Volume Multiplier (vs 20-bar avg)")

// === STAY OUT FILTER INPUTS ===
enable_stay_out_filter = input.bool(true, "Enable Stay Out Filter", group="Range-Bound Filter")
enable_filter_for_backtest = input.bool(false, "Apply Filter to Backtest", group="Range-Bound Filter")
range_threshold_pct = input.float(0.5, "Max Range % for Stay Out", group="Range-Bound Filter")
range_period = input.int(60, "Period to Check Range (bars)", group="Range-Bound Filter")
min_bars_in_range = input.int(25, "Min Bars in Range to Trigger", group="Range-Bound Filter")

// === MARKET ATTENTION INPUTS ===
volume_attention_multiplier = input.float(2.0, "Volume Multiplier for Attention", group="Market Attention")
range_attention_threshold = input.float(1.5, "Range ($) Threshold for Attention", group="Market Attention")

// === CALCULATIONS ===
rsi = ta.rsi(close, rsi_length)
volume_avg = ta.sma(volume, 20)
volume_surge = volume > (volume_avg * volume_multiplier)

// Multi-timeframe EMAs
ema_fast_1m_val = ta.ema(close, ema_fast_1m)
ema_slow_1m_val = ta.ema(close, ema_slow_1m)

ema_fast_5m_val = request.security(syminfo.tickerid, "5", ta.ema(close, ema_fast_5m))
ema_slow_5m_val = request.security(syminfo.tickerid, "5", ta.ema(close, ema_slow_5m))

// === STAY OUT FILTER ===
// Range-bound detection: Count consecutive tight-range bars
range_threshold_dollar = close * (range_threshold_pct / 100) // Convert % to dollar amount

// Calculate current bar's range
current_bar_range = high - low

// Count consecutive tight-range bars
var int consecutive_tight_bars = 0

// Check if current bar is within tight range threshold
current_bar_tight = current_bar_range <= range_threshold_dollar

if current_bar_tight
    consecutive_tight_bars := consecutive_tight_bars + 1
else
    consecutive_tight_bars := 0 // Reset counter when range expands

tight_range_bars = consecutive_tight_bars

// Market is range-bound if we've had enough consecutive tight bars
market_range_bound = enable_stay_out_filter and tight_range_bars >= min_bars_in_range
market_ok_to_trade = not market_range_bound

// Separate condition for backtest - can override the filter
backtest_ok_to_trade = enable_filter_for_backtest ? market_ok_to_trade : true

// For display purposes, also calculate recent period range
highest_in_period = ta.highest(high, range_period)
lowest_in_period = ta.lowest(low, range_period)
dollar_range = highest_in_period - lowest_in_period

// Consolidation stage determination
consolidation_stage = tight_range_bars < min_bars_in_range ? "TRENDING" :
                     tight_range_bars <= 60 ? "RANGE BOUND" :
                     tight_range_bars <= 90 ? "COILING" : "LOADING"

consolidation_color = consolidation_stage == "TRENDING" ? color.green :
                     consolidation_stage == "RANGE BOUND" ? color.red :
                     consolidation_stage == "COILING" ? color.yellow : color.orange

// === MARKET ATTENTION GAUGE ===
// Current bar activity indicators
current_range = high - low
recent_volume_avg = ta.sma(volume, 10)
volume_spike = volume > (recent_volume_avg * volume_attention_multiplier)
range_expansion = current_range > range_attention_threshold

// Activity level determination
market_activity = volume_spike and range_expansion ? "ACTIVE" :
                 volume_spike or range_expansion ? "BUILDING" :
                 not market_range_bound ? "QUIET" : "DEAD"

// Cloud Definitions
cloud_1m_bull = ema_fast_1m_val > ema_slow_1m_val
cloud_5m_bull = ema_fast_5m_val > ema_slow_5m_val

// Price position relative to clouds
price_above_5m_cloud = close > math.max(ema_fast_5m_val, ema_slow_5m_val)
price_below_5m_cloud = close < math.min(ema_fast_5m_val, ema_slow_5m_val)

// === CROSSOVER SIGNALS ===
// When 1m fast crosses above/below 1m slow with volume
crossoverBull = ta.crossover(ema_fast_1m_val, ema_slow_1m_val) and volume_surge and backtest_ok_to_trade
crossoverBear = ta.crossunder(ema_fast_1m_val, ema_slow_1m_val) and volume_surge and backtest_ok_to_trade

// Visual warnings for blocked signals (always uses the indicator filter, not backtest filter)
blocked_crossover_bull = ta.crossover(ema_fast_1m_val, ema_slow_1m_val) and volume_surge and market_range_bound
blocked_crossover_bear = ta.crossunder(ema_fast_1m_val, ema_slow_1m_val) and volume_surge and market_range_bound

// === STRATEGY EXECUTION ===

// Crossover entries (original 1/3 size from diamonds)
if crossoverBull
    strategy.entry("Cross Long", strategy.long, qty=167)

if crossoverBear
    strategy.entry("Cross Short", strategy.short, qty=167)

// === EXIT LOGIC ===
// Conservative stops using recent swing levels (not wide cloud stops)
longStop = ta.lowest(low[3], 10)  // Recent swing low
shortStop = ta.highest(high[3], 10)  // Recent swing high

// Position management exits
price_above_1m_cloud = close > math.max(ema_fast_1m_val, ema_slow_1m_val)
price_below_1m_cloud = close < math.min(ema_fast_1m_val, ema_slow_1m_val)

// Exit when price breaks opposite cloud structure
longExit = price_below_1m_cloud and price_below_5m_cloud
shortExit = price_above_1m_cloud and price_above_5m_cloud

// Execute exits for all positions
if strategy.position_size > 0
    if close <= longStop
        strategy.close_all(comment="Stop Loss")
    else if longExit or rsi >= rsi_overbought
        strategy.close_all(comment="Exit Signal")

if strategy.position_size < 0
    if close >= shortStop
        strategy.close_all(comment="Stop Loss")
    else if shortExit or rsi <= rsi_oversold
        strategy.close_all(comment="Exit Signal")

// === VISUAL ELEMENTS ===
plotshape(crossoverBull, "CROSS BULL", shape.triangleup, location.belowbar, 
         color.new(color.aqua, 50), size=size.small, text="↑")
plotshape(crossoverBear, "CROSS BEAR", shape.triangledown, location.abovebar,
         color.new(color.orange, 50), size=size.small, text="↓")

// STAY OUT warnings - signals you should see but not take
plotshape(blocked_crossover_bull, "BLOCKED BULL", shape.triangleup, location.belowbar, 
         color.new(color.gray, 0), size=size.tiny, text="RANGE")
plotshape(blocked_crossover_bear, "BLOCKED BEAR", shape.triangledown, location.abovebar,
         color.new(color.gray, 0), size=size.tiny, text="RANGE")

// Clouds with abbreviated titles
ema1 = plot(ema_fast_1m_val, "1F", color.new(color.blue, 60), linewidth=1, display=display.none)
ema2 = plot(ema_slow_1m_val, "1S", color.new(color.blue, 60), linewidth=1, display=display.none)
fill(ema1, ema2, color=cloud_1m_bull ? color.new(color.green, 85) : color.new(color.red, 85))

ema3 = plot(ema_fast_5m_val, "5F", color.new(color.orange, 40), linewidth=2, display=display.none)
ema4 = plot(ema_slow_5m_val, "5S", color.new(color.orange, 40), linewidth=2, display=display.none)
fill(ema3, ema4, color=cloud_5m_bull ? color.new(color.blue, 85) : color.new(color.purple, 85))



// === ALERTS ===
// Consolidation stage changes
alertcondition(consolidation_stage == "RANGE BOUND" and consolidation_stage[1] == "TRENDING", "Range Bound Alert", "🔴 TSLA RANGE BOUND - Stay Out!")
alertcondition(consolidation_stage == "COILING" and consolidation_stage[1] == "RANGE BOUND", "Coiling Alert", "🟡 TSLA COILING - Watch Close!")
alertcondition(consolidation_stage == "LOADING" and consolidation_stage[1] == "COILING", "Loading Alert", "🟠 TSLA LOADING - Big Move Coming!")
alertcondition(consolidation_stage == "TRENDING" and consolidation_stage[1] != "TRENDING", "Breakout Alert", "🟢 TSLA BREAKOUT - Back to Trading!")

// Market attention changes
alertcondition(market_activity == "ACTIVE" and market_activity[1] != "ACTIVE", "Market Active", "🔥 TSLA ACTIVE - Watch Close!")
alertcondition(market_activity == "DEAD" and market_activity[1] != "DEAD", "Market Dead", "💀 TSLA DEAD - Handle Other Business")

// Blocked signals
alertcondition(blocked_crossover_bull or blocked_crossover_bear, "Signal Blocked", "⚠️ SIGNAL BLOCKED - Range Bound Period")