Strategi Dagangan Momentum Momentum CCI Songsang Adaptif dan Sistem Kawalan Risiko

IFTCCI CCI WMA 动量交易 阈值突破 再入场机制 止损策略
Tarikh penciptaan: 2025-05-27 11:11:47 Akhirnya diubah suai: 2025-05-27 11:11:47
Salin: 0 Bilangan klik: 310
2
fokus pada
319
Pengikut

Strategi Dagangan Momentum Momentum CCI Songsang Adaptif dan Sistem Kawalan Risiko Strategi Dagangan Momentum Momentum CCI Songsang Adaptif dan Sistem Kawalan Risiko

Gambaran keseluruhan

Strategi perdagangan momentum CCI yang beradaptasi sendiri adalah sistem perdagangan kuantitatif berdasarkan petunjuk teknikal, yang terasnya bergantung pada indikator IFTCCI yang dibangunkan oleh Kıvanc Özbilgiç. Strategi ini menghasilkan isyarat beli dan jual dengan menetapkan tahap penurunan yang tepat apabila indikator berayun antara -1 dan + 1. Strategi ini mencetuskan isyarat beli apabila indikator menembusi titik terendah tertentu (bawah -0.95) ke atas; dan isyarat jual apabila indikator menembusi titik teratas tertentu (bawah -0.95) ke bawah.

Prinsip Strategi

Pusat strategi ini adalah indikator IFTCCI, yang dikira melalui langkah-langkah berikut:

  1. Mula-mula mengira CCI standard dan membahagikannya dengan 4 untuk standard awal
  2. Nilai CCI selepas standardisasi didarabkan dengan 0.1 untuk menyesuaikan kepekaan
  3. Menggunakan purata bergerak bertimbangan ((WMA) untuk pemprosesan yang lancar
  4. Akhirnya, dengan fungsi pemotong kanan balik ((tanh) memetakan nilai ke dalam julat -1 hingga + 1

Formula pengiraan adalah:

v1 = 0.1 * (CCI(close, period) / 4)
v2 = WMA(v1, wma_period)
IFTCCI = (e^(2*v2) - 1) / (e^(2*v2) + 1)

Logik pelaksanaan strategi terbahagi kepada beberapa bahagian utama:

  1. Syarat membeli:

    • Sinyal beli utama: dipicu apabila indikator IFTCCI meningkat dari bawah -0.95 ke atas -0.94
    • Isyarat beli masuk semula: mencetuskan apabila indikator naik sekurang-kurangnya 0.1 unit dari titik terendah
  2. Syarat jualan:

    • Penjualan sasaran: mencetuskan apabila indikator IFTCCI turun dari lebih daripada 0.95 ke bawah 0.94
    • Penjualan Hentian Kerosakan: dicetuskan apabila indikator turun sekurang-kurangnya 0.1 unit dari titik tertinggi semasa memegang kedudukan
  3. Pengesanan status:

    • Maksimum nilai indeks yang direkodkan semasa memegang kedudukan digunakan untuk mengira hentian
    • Nilai minimum untuk penilaian kemasukan semula

Strategi ini menggunakan pengurusan peratusan dana, menggunakan 100% dana yang tersedia untuk setiap perdagangan, dan melarang penambahan kedudukan. Strategi ini mengira isyarat dalam masa nyata ketika setiap K-line terbentuk, memastikan untuk menangkap pergerakan pasaran tepat pada masanya.

Kelebihan Strategik

  1. Peraturan masuk dan keluar yang jelasStrategi ini menyediakan isyarat dagangan yang jelas berdasarkan penurunan nilai yang tepat, mengelakkan penilaian subjektif dan menjadikan keputusan dagangan lebih objektif dan berdisiplin.

  2. Mekanisme pengurusan risiko dinamikPemasangan mekanisme penangguhan kerugian yang berkesan dapat mengehadkan kerugian dalam satu perdagangan, dan keluar secara automatik apabila pasaran berbalik melebihi set yang ditetapkan, melindungi keselamatan dana.

  3. Kebolehan beradaptasiIndeks IFTCCI berfluktuasi antara -1 dan +1 melalui pemindahan berbalik dua kali ganda, dengan sifat penyatuan semula jadi, sesuai untuk persekitaran pasaran yang berfluktuasi.

  4. Isyarat lancar, mengurangkan penipuan palsu: Menggunakan purata bergerak bertimbangan untuk memproses CCI asal dengan lancar, berkesan mengurangkan bunyi bising dan isyarat palsu, meningkatkan kebolehpercayaan isyarat perdagangan.

  5. Mekanisme kemasukan semula pintarApabila pasaran kembali ke arah semula selepas penarikan diri, mekanisme kemasukan semula membolehkan sistem untuk merebut semula peluang dan meningkatkan keuntungan strategi.

  6. Visual yang baikStrategi: Tunjukkan perubahan warna latar belakang yang jelas pada carta, membantu peniaga memahami keadaan pasaran dan isyarat perdagangan.

  7. Parameter yang boleh disesuaikan: Semua parameter utama boleh disesuaikan melalui antara muka input, membolehkan strategi menyesuaikan diri dengan keadaan pasaran yang berbeza dan pilihan risiko peribadi.

Risiko Strategik

  1. Perdagangan yang kerap berlaku di pasaran yang bergolakDalam pasaran yang bergolak, indikator mungkin sering bergolak di sekitar titik terendah, menghasilkan banyak isyarat beli dan jual, yang menyebabkan perdagangan berlebihan dan kerosakan yuran. *Penyelesaian*Anda boleh menambah syarat penapisan tambahan, seperti penapisan masa atau penapisan trend, untuk mengurangkan kekerapan dagangan dalam pasaran yang bergolak.

  2. Masalah penangguhan kerugian tetapStrategi semasa menggunakan nilai tetap ((0.1 unit) sebagai margin stop loss, yang mungkin terlalu besar atau terlalu kecil dalam keadaan pasaran yang berbeza-beza. Penyelesaian: boleh merancang amplitudo hentian yang menyesuaikan diri, menyesuaikan jarak hentian mengikut dinamik turun naik pasaran baru-baru ini.

  3. Kurangnya pengesahan trend jangka panjangStrategi ini adalah berdasarkan pada momentum jangka pendek, tanpa analisis trend jangka panjang, yang mungkin menghasilkan perdagangan yang tidak perlu apabila trend utama berbalik. Penyelesaian: memperkenalkan indikator trend jangka panjang sebagai penapis, hanya berdagang di arah trend.

  4. Risiko yang dihadapi oleh mekanisme kemasukan semulaMekanisme kemasukan semula semasa adalah berdasarkan pada lonjakan rebound yang tetap, dan mungkin masuk semula terlalu awal jika pasaran melakukan penipuan. *Penyelesaian*Menambah syarat pengesahan tambahan, seperti pengesahan kuantiti atau isyarat penggabungan untuk petunjuk teknikal lain.

  5. Kebergantungan satu indikatorStrategi ini hanya bergantung kepada satu indikator IFTCCI untuk membuat keputusan, kurangnya analisis pasaran pelbagai dimensi. *Penyelesaian*Memperkenalkan gabungan penunjuk yang saling melengkapi seperti RSI, MACD atau penunjuk kadar turun naik untuk memberikan pengesahan pasaran dari pelbagai sudut.

Arah pengoptimuman

  1. Integrasi analisis pelbagai kerangka masa: Strategi semasa hanya berjalan pada satu bingkai masa dan boleh mengintegrasikan analisis bingkai masa yang lebih tinggi, contohnya menggunakan indikator IFTCCI pada bingkai masa yang lebih tinggi sebagai penapis arah perdagangan dan hanya berdagang di arah trend yang lebih besar. Ini dapat mengurangkan perdagangan berlawanan arah dan meningkatkan peluang kemenangan.

  2. Pindaan Dinamik: Mengubah ambang yang tetap ((-0.950.95) kepada ambang yang disesuaikan berdasarkan pergerakan turun naik pasaran. Menggunakan ambang yang lebih sempit dalam persekitaran turun naik yang rendah, menggunakan ambang yang lebih luas dalam persekitaran turun naik yang tinggi, untuk menyesuaikan diri dengan keperluan penjanaan isyarat dalam keadaan pasaran yang berbeza.

  3. Mekanisme pengesahan kuantiti: Menambah komponen analisis kuantiti transaksi, yang memerlukan sokongan kuantiti transaksi yang ketara ketika isyarat dihasilkan, dapat menyaring isyarat penembusan berkualiti rendah dan mengurangkan kerugian akibat penembusan palsu.

  4. Pengurusan wang yang lebih baik: Strategi semasa menggunakan peratusan tetap untuk pengurusan kedudukan, yang dapat ditingkatkan menjadi sistem pengurusan dana yang menyesuaikan diri berdasarkan turun naik dan peluang pasaran, meningkatkan kedudukan pada isyarat keyakinan tinggi, mengurangkan kedudukan pada isyarat keyakinan rendah.

  5. Pembelajaran Mesin: Menggunakan algoritma pembelajaran mesin untuk mengoptimumkan parameter indikator IFTCCI (siklus CCI dan WMA) secara beradaptasi, menyesuaikan kombinasi parameter terbaik secara automatik mengikut keadaan pasaran yang berbeza, meningkatkan kebolehpasaran strategi.

  6. Penapis masa transaksi: Menambah penapis masa perdagangan untuk mengelakkan pergerakan yang tinggi pada waktu pembukaan dan penutupan pasaran, atau untuk mengelakkan pergerakan yang tidak dapat diramalkan disebabkan oleh peristiwa yang tidak dijangka.

  7. Analisis korelasi: Memperkenalkan analisis hubungan dengan pasaran atau aset lain, meningkatkan kebolehpercayaan isyarat perdagangan dan meningkatkan kestabilan strategi apabila beberapa pasaran yang berkaitan muncul pada masa yang sama.

ringkaskan

Strategi dagangan momentum CCI yang beradaptasi adalah sistem perdagangan kuantitatif yang tersusun dengan sempurna dan logik yang jelas, yang menghasilkan isyarat perdagangan melalui penembusan titik rendah indikator IFTCCI, dan dilengkapi dengan mekanisme hentian dan masuk semula untuk menguruskan risiko dan menangkap peluang. Kelebihan utama strategi ini adalah kejernihan isyarat, dinamik kawalan risiko, dan penyesuaian parameter yang kuat.

Walau bagaimanapun, strategi ini juga menghadapi risiko seperti perdagangan yang kerap di pasaran yang bergolak, ketidakselesaan stop loss tetap dan kekurangan pengesahan trend jangka panjang. Dengan mengintegrasikan analisis pelbagai kerangka masa, penyesuaian penurunan nilai secara dinamik, penambahan pengesahan jumlah transaksi, pengoptimuman pengurusan dana, pengenalan penambahan pembelajaran mesin dan penambahan penapisan masa perdagangan, pengoptimuman dapat meningkatkan kestabilan dan keuntungan strategi dengan ketara.

Bagi peniaga yang ingin menggunakan strategi ini, disarankan untuk menguji kombinasi parameter yang berbeza dalam persekitaran simulasi, mencari tetapan terbaik yang sesuai dengan jenis perdagangan dan keutamaan risiko mereka, dan secara beransur-ansur mengintegrasikan arah pengoptimuman yang dikemukakan dalam artikel ini untuk membina sistem perdagangan yang lebih komprehensif dan mantap.

Kod sumber strategi
/*backtest
start: 2024-05-27 00:00:00
end: 2025-01-20 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/

// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © erkankuskonmaz

//@version=5
strategy("IFTCCI Buy Sell Signal Strategy",
         overlay=false,
         pyramiding=0,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=100,
         calc_on_every_tick=true) // NEW LINE: Enables real-time signal generation.

// --- Indicator Settings and Calculations (IFTCCIv2) ---
group_indicator_params = "Indicator Parameters (IFTCCIv2)"
ccilength_param = input.int(5, "CCI Period", group=group_indicator_params)
wmalength_param = input.int(9, title="Smoothing Period (WMA)", group=group_indicator_params)

// IFTCCIv2 Calculation
v1_calc = 0.1 * (ta.cci(close, ccilength_param) / 4)
v2_calc = ta.wma(v1_calc, wmalength_param)
indicator_value_ift = (math.exp(2 * v2_calc) - 1) / (math.exp(2 * v2_calc) + 1)

// --- Strategy Rule Inputs ---
group_entry_rules = "Buy Signal Conditions"
entry_low_prev_max = input.float(-0.95, title="Primary Buy: Previous Bar Max Value", group=group_entry_rules)
entry_low_curr_min = input.float(-0.94, title="Primary Buy: Current Bar Min Value", group=group_entry_rules)
reentry_trigger_units = input.float(0.10, title="Re-entry: Rise from Lowest Value", group=group_entry_rules)

group_exit_rules = "Sell Signal Conditions (Exit Position)"
exit_high_prev_min = input.float(0.95, title="Target Sell: Previous Bar Min Value", group=group_exit_rules)
exit_high_curr_max = input.float(0.94, title="Target Sell: Current Bar Max Value", group=group_exit_rules)
stop_loss_units = input.float(0.10, title="Stop Loss: Drop from Peak Value", group=group_exit_rules)

// --- Indicator Values for Strategy ---
float ind_val = indicator_value_ift
float ind_val_prev = indicator_value_ift[1]

// --- State Tracking Variables ---
var float highest_indicator_since_long_entry = na
var bool track_for_reentry_after_close = false
var float lowest_indicator_since_reentry_tracking_started = na

// --- Update State Logic ---
// 1. Update the highest indicator value since entering long position
if strategy.position_size > 0
    if strategy.position_size[1] <= 0
        highest_indicator_since_long_entry := ind_val
    else
        highest_indicator_since_long_entry := math.max(highest_indicator_since_long_entry, ind_val)
else
    if strategy.position_size[1] > 0
        highest_indicator_since_long_entry := na

// 2. Update re-entry tracking mechanism
if strategy.position_size[1] > 0 and strategy.position_size == 0
    track_for_reentry_after_close := true
    lowest_indicator_since_reentry_tracking_started := ind_val
else if strategy.position_size > 0
    track_for_reentry_after_close := false
    lowest_indicator_since_reentry_tracking_started := na
else if track_for_reentry_after_close and strategy.position_size == 0
    if not na(lowest_indicator_since_reentry_tracking_started)
        lowest_indicator_since_reentry_tracking_started := math.min(lowest_indicator_since_reentry_tracking_started, ind_val)
    else
        lowest_indicator_since_reentry_tracking_started := ind_val

// --- Buy Conditions (Long Entry) ---
bool can_enter_new_position = strategy.opentrades == 0

// Condition 1: Main Buy Condition
bool condition_main_buy_cross = ind_val_prev <= entry_low_prev_max and ind_val >= entry_low_curr_min
bool main_long_entry_trigger = condition_main_buy_cross and can_enter_new_position

// Condition 2: Re-entry Buy Condition
bool condition_re_entry_trigger = false
if track_for_reentry_after_close and not na(lowest_indicator_since_reentry_tracking_started) and can_enter_new_position
    if ind_val >= lowest_indicator_since_reentry_tracking_started + reentry_trigger_units
        condition_re_entry_trigger := true

// Combined Buy Condition
bool final_long_entry_condition = main_long_entry_trigger or condition_re_entry_trigger

// --- Sell Conditions (Long Exit) ---
bool currently_in_long_position = strategy.position_size > 0

// Sell Condition 1: Target Sell
bool condition_sell_target = ind_val_prev >= exit_high_prev_min and ind_val <= exit_high_curr_max

// Sell Condition 2: Stop Loss
bool condition_sell_stop_loss = false
if currently_in_long_position and not na(highest_indicator_since_long_entry)
    if ind_val <= highest_indicator_since_long_entry - stop_loss_units
        condition_sell_stop_loss := true

// Combined Sell Condition
bool final_long_exit_condition = currently_in_long_position and (condition_sell_target or condition_sell_stop_loss)

// --- Strategy Orders ---
if (final_long_entry_condition)
    entry_comment = main_long_entry_trigger ? "Buy (Primary)" : "Buy (Re-entry)"
    strategy.entry("Buy ID", strategy.long, comment=entry_comment)

if (final_long_exit_condition)
    exit_comment = condition_sell_target ? "Sell (Target)" : "Sell (Stop)"
    strategy.close("Buy ID", comment=exit_comment)

// --- Plot Indicator and Strategy Markers ---
plot(indicator_value_ift, title="IFTCCI Value", color=color.rgb(0, 0, 0), linewidth=2)
hline(0, "Mid Level", color=color.new(#787b86, 50), linestyle=hline.style_dotted)
hline(0.95, "Upper Reference (+0.95)", color=color.new(#002fff, 10), linestyle=hline.style_dashed)
hline(-0.95, "Lower Reference (-0.95)", color=color.new(#002fff, 10), linestyle=hline.style_dashed)

// Background Coloring on Entry and Exit Signals
color background_color = final_long_entry_condition ? color.new(color.green, 81) : final_long_exit_condition ? color.new(color.red, 81) : na
bgcolor(background_color, title="Signal Background")