Sistem Perdagangan Adaptif Trend Momentum Entropi Berbilang Dimensi

CETP-Plus Shannon Entropy RSI ATR ADX EMA momentum 3D Histogram Volatility Filter
Tarikh penciptaan: 2025-08-11 09:46:42 Akhirnya diubah suai: 2025-08-20 16:26:32
Salin: 4 Bilangan klik: 353
2
fokus pada
319
Pengikut

Sistem Perdagangan Adaptif Trend Momentum Entropi Berbilang Dimensi Sistem Perdagangan Adaptif Trend Momentum Entropi Berbilang Dimensi

Gambaran keseluruhan

Sistem perdagangan beradaptasi dengan trend berganda berganda adalah strategi perdagangan kuantitatif yang berdasarkan teori berganda, yang berpusat pada CETP-Plus, yang mengukur “keteraturan” dalam corak corak corak corak corak corak corak corak corak corak corak corak corak corak corak corak corak corak corak corak corak corak corak cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor cor

Prinsip Strategi

Prinsip utama strategi ini adalah untuk menggunakan pixel Shannon untuk analisis corak carta pasaran kewangan. Pixel Shannon berasal dari teori maklumat untuk mengukur ketidakpastian atau “kecanggihan” pembolehubah rawak. Dalam strategi ini, pixel dikira dan digunakan dengan cara berikut:

  1. Pengiraan nisbah ketumpatanStrategi pertama mengira tiga nisbah ketukan utama - nisbah entiti (yang mencerminkan kekuatan trend), nisbah garis bayangan atas dan nisbah garis bayangan bawah (yang mencerminkan potensi pembalikan).
  2. Penurunan indeks berat: Menggunakan faktor penurunan ((0.8) untuk memberi berat kepada data peta sejarah, memberikan berat yang lebih tinggi kepada data terkini, asas kerja yang serupa dengan EMA.
  3. Peta tiga dimensi: Letakkan nisbah titanium ke dalam peta tiga dimensi, dimensi sesuai dengan entiti, garis bayangan atas dan garis bayangan bawah.
  4. Pengiraan kalsium: Menggunakan formula Shannon untuk mengira nilai tiub dalam grafik lurus, tiub rendah menunjukkan adanya corak yang kuat.
  5. Integrasi kecacatan momentum: Kaedah pengiraan yang serupa dengan RSI untuk menangkap pergerakan harga dan menyesuaikan penilaian harga.
  6. Pindaan trendKaedah pengiraan yang serupa dengan ADX mengesan arah dan kekuatan trend untuk menyesuaikan skor lebih lanjut.
  7. Penyesuaian VolatilitiPenggunaan ATR untuk pemesanan berganda untuk memastikan isyarat konsisten dalam pelbagai persekitaran berganda.

Skor CETP akhirnya adalah produk gabungan faktor-faktor ini, nilai positif cenderung ke arah bullish dan nilai negatif cenderung ke arah bearish. Logik dagangan mudah dan langsung: buat lebih apabila skor CETP melebihi nilai positif yang ditetapkan dan buat kosong apabila ia berada di bawah nilai negatif. Untuk mengelakkan dagangan kecil, strategi ini memasukkan penapis pergerakan harga minimum untuk memastikan carta penapis semasa mempunyai ruang yang cukup untuk mencetuskan perdagangan. Pengurusan risiko dicapai dengan peratusan stop loss, ATR, dan pengganda dan pengesanan stop loss.

Kelebihan Strategik

  1. Isyarat bersepaduIndeks CETP-Plus menggabungkan kelebihan pelbagai indikator tradisional (EMA, RSI, ATR, ADX) untuk memberikan isyarat perdagangan yang jelas dan tunggal, mengelakkan risiko pertembungan dan penyesuaian berlebihan.

  2. Kebolehan menyesuaikan diriStrategi dapat menyesuaikan diri secara automatik mengikut keadaan pasaran, menyesuaikan diri dengan persekitaran yang bergelombang dan kekuatan trend yang berbeza, dan dapat berfungsi dengan baik dalam pelbagai keadaan pasaran tanpa campur tangan manual.

  3. Simetri pengendalian ruangStrategi memberi kepentingan yang sama kepada peluang bertaburan dan kosong, yang membolehkan ia berfungsi dengan berkesan dalam pasaran lembu dan pasar beruang, dan tidak terjejas oleh kecenderungan arah.

  4. Pengesanan trend awalMengambil perubahan struktur pasaran melalui konsep ketegangan, dapat mengenal pasti pembentukan trend lebih awal sebelum penunjuk tradisional, memberikan masa masuk yang lebih baik.

  5. Mengurangkan kesan bunyi bisingStrategi ini dapat membezakan antara isyarat sebenar dan bising pasaran, mengurangkan isyarat palsu melalui analisis tirai dan pembahagian kotak grafik lurus.

  6. KebolehsuaianBanyak parameter boleh dioptimumkan mengikut pelbagai jenis perdagangan dan jangka masa, menjadikan strategi ini sangat fleksibel dan dapat disesuaikan.

  7. Pengurusan risiko yang lengkapIa mempunyai mekanisme kawalan risiko bertingkat yang bersepadu, termasuk peratusan berhenti, berhenti dinamik dan berhenti pengesanan berdasarkan ATR, dan penapis perdagangan minimum untuk mengawal penarikan balik dengan berkesan.

Risiko Strategik

  1. Kepekaan ParameterStrategi ini mengandungi pelbagai parameter yang boleh disesuaikan, dan pengoptimuman berlebihan boleh menyebabkan prestasi yang kurang baik dalam perdagangan cakera. Persekitaran pasaran yang berbeza mungkin memerlukan tetapan parameter yang berbeza, yang menjadikan pemeliharaan sistem rumit.

  2. Risiko perdagangan frekuensi tinggiStrategi ini mungkin menghasilkan banyak isyarat perdagangan, terutamanya di pasaran yang lebih bergolak, yang menyebabkan terlalu banyak perdagangan, kos komisen meningkat, dan slippage meningkat.

  3. Kompleksiti pengiraanPerhitungan kotak dan kerung dalam grafik tiga dimensi mungkin memerlukan sumber pengiraan yang lebih tinggi untuk dilaksanakan dalam masa nyata, yang boleh menyebabkan kelewatan dalam pelaksanaan, terutamanya dalam jangka masa yang lebih pendek.

  4. Analisis algoritmaStrategi ini berasaskan kepada anggapan bahawa penyu dapat menangkap corak pasaran dengan berkesan, tetapi struktur pasaran mungkin berubah dari masa ke masa, sehingga membuat anggapan ini tidak berkesan.

  5. Kepercayaan yang tidak menentuStrategi: menggunakan penapis turun naik dan penapis pergerakan harga minimum, mungkin kehilangan peluang perdagangan dalam persekitaran turun naik rendah, mungkin terlalu sensitif dalam persekitaran turun naik tinggi.

  6. Risiko kelayakan sejarahWalaupun strategi ini menggabungkan kelebihan pelbagai petunjuk, terdapat risiko ke atas data sejarah yang terlalu sesuai, dan perubahan keadaan pasaran pada masa akan datang boleh menyebabkan penurunan prestasi.

Penyelesaian termasuk: mengoptimumkan semula parameter secara berkala, menggunakan pengujian langkah demi langkah untuk mengesahkan kestabilan parameter, menerapkan syarat penapisan yang lebih ketat untuk mengurangkan frekuensi transaksi, menambah syarat pengesahan untuk meningkatkan kualiti isyarat, dan menyesuaikan parameter risiko untuk prestasi sistem pemantauan masa nyata.

Arah pengoptimuman strategi

  1. Mekanisme parameter penyesuaianMengekalkan penyesuaian dinamik parameter, mengoptimumkan secara automatik tetingkap, nilai rendah dan berat CETP mengikut turun naik pasaran, jumlah transaksi dan kekuatan trend. Pengoptimuman ini dapat menjadikan sistem lebih sesuai dengan keadaan pasaran yang berubah, mengurangkan keperluan campur tangan manual.

  2. Integrasi analisis pelbagai kerangka masa: Mengintegrasikan isyarat CETP dari pelbagai bingkai masa untuk mewujudkan sistem pengesahan hierarki. Sebagai contoh, hanya menjalankan perdagangan apabila isyarat bingkai masa yang lebih tinggi sesuai dengan isyarat bingkai masa perdagangan, meningkatkan kadar kemenangan.

  3. Pembelajaran Mesin: Memperkenalkan algoritma pembelajaran mesin untuk mengoptimumkan pilihan parameter dan penapisan isyarat. Mengenali kombinasi parameter yang terbaik dengan pembelajaran pengawasan, atau menggunakan algoritma pengumpulan untuk mengenal pasti keadaan pasaran yang berbeza dan menyesuaikan strategi dengan sewajarnya.

  4. Penapis kecairan dan jumlah transaksiPenambahan penapis berdasarkan jumlah dagangan dan kedalaman pasaran untuk memastikan perdagangan hanya berlaku di bawah keadaan yang cukup cair, mengurangkan risiko slippage dan pelaksanaan.

  5. Analisis hubungan pelbagai aset: Mengintegrasikan maklumat pasaran berkaitan (seperti indeks, saham atau komoditi yang berkaitan) untuk meningkatkan kepastian perdagangan apabila terdapat isyarat yang sama di beberapa pasaran berkaitan.

  6. Model ramalan turun naikMembangunkan komponen ramalan turun naik, menyesuaikan nilai rendah dan parameter risiko lebih awal, untuk menyediakan diri untuk persekitaran turun naik yang akan datang.

  7. Kerangka pengesanan dan pengoptimuman automatikMenubuhkan sistem automatik untuk menilai semula strategi secara berkala dengan data baru dan menyesuaikan parameter mengikut tingkah laku pasaran terkini untuk memastikan strategi tetap beradaptasi.

Arahan pengoptimuman di atas bertujuan untuk meningkatkan kestabilan, kesesuaian, dan keuntungan strategi, sambil mengurangkan keperluan untuk campur tangan manusia dan risiko terlalu sesuai. Dengan melaksanakan pengoptimuman ini secara beransur-ansur, sistem perdagangan yang lebih pintar dan autonomi dapat dibina.

ringkaskan

Sistem dagangan yang menyesuaikan diri dengan trend kuantiti berganda berganda mewakili satu kaedah dagangan kuantitatif yang inovatif yang menangkap keteraturan dan kebolehpastian dalam corak harga dengan menerapkan konsep keteraturan dalam teori maklumat ke pasaran kewangan. Kelebihan utama strategi ini adalah bahawa ia mengintegrasikan prinsip-prinsip matematik pelbagai petunjuk teknikal tradisional untuk mewujudkan isyarat dagangan yang tunggal dan jelas, mengelakkan pertembungan petunjuk dan isyarat yang bercampur aduk.

Walaupun strategi ini mempunyai fungsi penyesuaian diri dan pengurusan risiko yang kuat, ia juga menghadapi cabaran seperti sensitiviti parameter, kerumitan pengiraan dan perubahan struktur pasaran. Dengan melaksanakan arah pengoptimuman yang disyorkan, seperti mekanisme parameter penyesuaian diri, analisis bingkai masa berbilang dan peningkatan pembelajaran mesin, strategi ini dapat meningkatkan lagi kestabilan dan prestasi jangka panjang.

Secara keseluruhannya, ini adalah sistem perdagangan kuantitatif yang mempunyai asas teori yang kukuh dan reka bentuk yang rumit yang sesuai untuk digunakan oleh peniaga dengan latar belakang pengaturcaraan dan statistik dalam pasaran yang sangat tidak menentu. Dengan pengoptimuman parameter yang berhati-hati dan pemantauan sistemik yang berterusan, strategi ini berpotensi menghasilkan pulangan penyesuaian risiko yang stabil dalam pelbagai persekitaran pasaran.

Kod sumber strategi
/*backtest
start: 2024-08-11 00:00:00
end: 2025-08-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

// @version=6
strategy("Canuck Trading Traders Strategy [Candle Entropy Edition]", overlay=true, default_qty_value = 10)
// Note: Set Properties "Order size" to "100% of equity" for equity-based sizing or fixed contracts (e.g., 100).

// === CETP-Plus Settings ===
cetp_window = input.int(5, "CETP Window", minval=1, maxval=20, group="CETP-Plus Settings")
cetp_bins = input.int(3, "CETP Bins per Dimension", minval=1, maxval=10, group="CETP-Plus Settings")
long_threshold = input.float(0.1, "Long Threshold", minval=0.01, maxval=5.0, step=0.01, group="CETP-Plus Settings")
short_threshold = input.float(-0.1, "Short Threshold", minval=-0.8, maxval=-0.01, step=0.01, group="CETP-Plus Settings")
cetp_k = input.float(0.8, "CETP Momentum Weight", minval=0.1, maxval=5.0, step=0.1, group="CETP-Plus Settings")
mom_scale = input.float(6.0, "Momentum Scale", minval=1.0, maxval=20.0, step=1.0, group="CETP-Plus Settings")
body_weight = input.float(1.0, "Body Ratio Weight", minval=0.0, maxval=2.0, step=0.1, group="CETP-Plus Settings")
upper_weight = input.float(0.8, "Upper Wick Ratio Weight", minval=0.0, maxval=2.0, step=0.1, group="CETP-Plus Settings")
lower_weight = input.float(1.0, "Lower Wick Ratio Weight", minval=0.0, maxval=2.0, step=0.1, group="CETP-Plus Settings")
decay_factor = 0.8  // Hardcoded decay for exponential weighting (recent candles weighted more)

// === Trade Settings ===
min_score_strength = input.float(0.03, "Min CETP Score Strength", minval=0.0, maxval=5, step=0.01, group="Trade Settings")
stop_loss_pct = input.float(0.5, "Stop Loss (%)", minval=0.1, maxval=5.0, step=0.1, group="Trade Settings")
atr_mult = input.float(3.0, "ATR Multiplier", minval=0.5, maxval=10.0, step=0.1, group="Trade Settings")
trail_mult = input.float(5.0, "Trailing ATR Mult", minval=0.5, maxval=10.0, step=0.1, group="Trade Settings")
trail_offset_pct = input.float(1.0, "Trail Start Offset (%)", minval=0.5, maxval=10.0, step=0.1, group="Trade Settings")
min_price_move_mult = input.float(2.0, "Min Price Move ATR Mult (to avoid tiny trades)", minval=0.5, maxval=10.0, step=0.1, group="Trade Settings")  // Filter tiny moves

// Indicators (ATR for stops/trails only)
atr = nz(ta.atr(14), 0.0)

// Volatility Filter (CV < 15% to avoid chop)
vol_threshold = ta.stdev(close, 20) / ta.sma(close, 20) * 100
trade_allowed = vol_threshold < 15.0

// Minimum Price Move Filter (candle range > ATR multiple, floored by min tick)
min_price_move = math.max(atr * min_price_move_mult, syminfo.mintick * 10)  // Avoid sub-penny moves; 10x tick for robustness
price_move_condition = (high - low) > min_price_move  // Fixed: Use high - low instead of ta.range()

// CETP-Plus Calculation (Blended EMA, RSI, ATR, ADX theses)
epsilon = 1e-5
body_ratio = (close - open) / (high - low + epsilon) * body_weight
upper_wick_ratio = (high - math.max(open, close)) / (high - low + epsilon) * upper_weight
lower_wick_ratio = (math.min(open, close) - low) / (high - low + epsilon) * lower_weight

// EMA-like weighting: Exponentially weight recent candles with fixed-size rolling arrays
var float[] body_arr = array.new_float(cetp_window, 0.0)
var float[] upper_arr = array.new_float(cetp_window, 0.0)
var float[] lower_arr = array.new_float(cetp_window, 0.0)

// Shift and decay older values, add new at the end
for i = 0 to cetp_window - 2
    array.set(body_arr, i, array.get(body_arr, i + 1) * decay_factor)
    array.set(upper_arr, i, array.get(upper_arr, i + 1) * decay_factor)
    array.set(lower_arr, i, array.get(lower_arr, i + 1) * decay_factor)

array.set(body_arr, cetp_window - 1, body_ratio)
array.set(upper_arr, cetp_window - 1, upper_wick_ratio)
array.set(lower_arr, cetp_window - 1, lower_wick_ratio)

// Volatility scaling (ATR thesis)
bin_size = 2.0 / cetp_bins * (1 + atr / ta.sma(atr, 14))
hist_size = cetp_bins * cetp_bins * cetp_bins
var int[] hist = array.new_int(hist_size, 0)
array.fill(hist, 0)

for i = 0 to cetp_window - 1
    body_val = array.get(body_arr, i)
    upper_val = array.get(upper_arr, i)
    lower_val = array.get(lower_arr, i)
    
    body_bin = math.max(0, math.min(cetp_bins - 1, math.floor((body_val + 1) / bin_size)))
    upper_bin = math.max(0, math.min(cetp_bins - 1, math.floor((upper_val + 1) / bin_size)))
    lower_bin = math.max(0, math.min(cetp_bins - 1, math.floor((lower_val + 1) / bin_size)))
    
    bin_idx = body_bin * (cetp_bins * cetp_bins) + upper_bin * cetp_bins + lower_bin
    array.set(hist, bin_idx, array.get(hist, bin_idx) + 1)

entropy = 0.0
for i = 0 to hist_size - 1
    count = array.get(hist, i)
    p = count / cetp_window
    if p > 0
        entropy := entropy - p * math.log(p)

max_entropy = math.log(hist_size)
norm_entropy = max_entropy > 0 ? entropy / max_entropy : 0.0

// RSI-like momentum bias
avg_gain = ta.rma(math.max(close - close[1], 0), cetp_window)
avg_loss = ta.rma(math.max(close[1] - close, 0), cetp_window)
rsi_bias = avg_loss > 0 ? avg_gain / avg_loss : 1.0
momentum = ta.mom(close, cetp_window) / (close[cetp_window] != 0 ? close[cetp_window] : 1e-5)
momentum_adj = momentum * (1 + rsi_bias)

// ADX-like trend strength (automated and symmetric for bull/bear)
di_plus = ta.rma(math.max(high - high[1], 0), cetp_window) / atr
di_minus = ta.rma(math.max(low[1] - low, 0), cetp_window) / atr
trend_strength = di_plus > di_minus ? 1.2 : (di_minus > di_plus ? 1.2 : 1.0)

// CETP-Plus Score (optimized: no abs on momentum_adj to preserve sign for better short detection)
avg_body = nz(array.avg(body_arr), 0.0)
raw_score = avg_body * (1 - norm_entropy) * (cetp_k + momentum_adj * mom_scale)
cetp_score = nz(raw_score * trend_strength, 0.0)

// Position State
var float entry_price = na
var int bars_held = 0

if barstate.isconfirmed
    bars_held := strategy.position_size != 0 ? bars_held + 1 : 0

// Trade Logic: Rely solely on current CETP score for entries/exits/reversals, with min price move filter
if bar_index >= cetp_window and math.abs(cetp_score) > min_score_strength and trade_allowed and price_move_condition
    if cetp_score > long_threshold
        if strategy.position_size < 0
            strategy.close("Short", comment="Reverse to Long")
        if strategy.position_size <= 0
            strategy.entry("Long", strategy.long)
            entry_price := close
            sl = entry_price * (1 - stop_loss_pct / 100) - atr * atr_mult
            strategy.exit("Long Exit", "Long", stop=sl, trail_points=atr * trail_mult * syminfo.pointvalue, trail_offset=entry_price * (trail_offset_pct / 100))
            bars_held := 1
    else if cetp_score < short_threshold
        if strategy.position_size > 0
            strategy.close("Long", comment="Reverse to Short")
        if strategy.position_size >= 0
            strategy.entry("Short", strategy.short)
            entry_price := close
            sl = entry_price * (1 + stop_loss_pct / 100) + atr * atr_mult
            strategy.exit("Short Exit", "Short", stop=sl, trail_points=atr * trail_mult * syminfo.pointvalue, trail_offset=entry_price * (trail_offset_pct / 100))
            bars_held := 1