Strategi Crossover Garis Purata Bergerak dan Penembusan Tahap Rintangan

Penulis:ChaoZhang, Tarikh: 2024-01-31 14:34:16
Tag:

img

Ringkasan

Strategi ini mengintegrasikan teknik crossover purata bergerak dan pecah paras rintangan untuk menubuhkan isyarat membeli dan menjual untuk perdagangan automatik. Apabila purata bergerak jangka pendek melintasi purata bergerak jangka sederhana dari bawah, dan harga saham memecahkan tahap rintangan, isyarat beli dihasilkan. Strategi ini menetapkan keuntungan pada peningkatan harga 15% dan penurunan harga 3% untuk mengawal risiko. Strategi perdagangan kuantitatif yang matang ini dapat mengenal pasti trend pasaran secara automatik dan masuk ke kedudukan apabila isyarat teknikal muncul, dengan pengurusan risiko yang betul.

Prinsip Strategi

Strategi menghasilkan isyarat dagangan terutamanya berdasarkan penunjuk dan penilaian teknikal berikut:

  1. Teknik crossover purata bergerak: purata bergerak mudah 20 hari dan 44 hari dikira. Apabila SMA 20 hari melintasi garis 44 hari, ia dinilai bahawa pasaran berada dalam trend menaik, menghasilkan isyarat beli.

  2. Teknik penembusan paras rintangan: Tahap harga yang harga saham telah berulang kali dicapai tetapi gagal untuk menembusi dipanggil paras rintangan. Menembusi mereka menunjukkan harga memasuki trend menaik baru. Strategi ini menganggap penembusan di atas 0.7% daripada penutupan sebelumnya sebagai penembusan rintangan.

  3. RSI Oscillator: Indeks Kekuatan Relatif, penunjuk momentum untuk mengenal pasti keadaan overbought dan oversold. Strategi ini menggunakan nilai RSI 14 hari di atas 50 sebagai isyarat overbought.

  4. Analisis jumlah: Jumlah yang melebihi purata 10 hari yang lalu sering menunjukkan minat membeli atau menjual yang lebih kuat dan momentum dalam pergerakan harga.

  5. Isyarat beli: Dihidupkan apabila SMA pendek melintasi SMA sederhana, dengan nilai RSI yang terlalu banyak dibeli dan lebih tinggi daripada jumlah dagangan purata, menunjukkan trend menaik.

  6. Isyarat jual: 15% mengambil keuntungan dari harga masuk, 3% stop-loss.

Strategi perdagangan kuantitatif yang matang ini mengintegrasikan pelbagai kaedah analisis teknikal untuk mengenal pasti struktur pasaran dan trend, secara automatik menjana isyarat perdagangan semasa pembentukan trend, dengan pengurusan risiko yang betul.

Kelebihan Strategi

  1. Mencatatkan trend pasaran dengan lancar dengan teknik purata bergerak.

  2. Mengelakkan pembukaan kedudukan semasa pecah palsu dengan menggabungkan analisis jumlah.

  3. Kawalan risiko yang berkesan dengan menetapkan stop-loss dan mengambil keuntungan, mengoptimumkan nisbah risiko-balasan.

  4. Secara keseluruhan penilaian struktur pasaran yang sangat baik, peraturan perdagangan yang ketat dan kawalan risiko menjadikan ini strategi perdagangan kuantitatif yang kukuh.

Risiko Strategi

  1. Sistem purata bergerak berganda boleh sensitif terhadap penyesuaian parameter untuk tempoh yang berbeza.

  2. Sistem yang mengikuti trend tidak dapat bertindak balas dengan cepat terhadap peristiwa asas tiba-tiba, menghadapi risiko kehilangan berhenti.

  3. Walaupun dengan penempatan stop loss, kekerapan dagangan yang tinggi membawa kepada jumlah pelaksanaan stop loss yang tidak dapat dielakkan, yang mengakibatkan tahap keuntungan yang tidak merata.

  4. Isyarat dari penunjuk teknikal sering tertinggal di belakang titik pembalikan terbaik pasaran.

Arahan pengoptimuman

  1. Mengoptimumkan parameter seperti panjang purata bergerak, sasaran stop loss / keuntungan dengan kaedah penyesuaian parameter untuk mencari optimum.

  2. Tambah penunjuk teknikal lain seperti Bollinger Bands untuk pengesanan julat, MACD untuk mengesan perbezaan dan lain-lain untuk meningkatkan ketepatan isyarat.

  3. Menggabungkan isyarat asas dan isyarat yang didorong oleh peristiwa untuk mengelakkan kehilangan berhenti yang dicetuskan oleh berita negatif.

  4. Mengoptimumkan pengurusan wang dengan kuantiti tetap, kaedah peratusan tetap untuk mengawal risiko setiap perdagangan.

Kesimpulan

Strategi ini menunjukkan operasi yang lancar, penghakiman yang tepat dan peraturan perdagangan yang ketat, mewakili salah satu teknik perdagangan kuantitatif yang lebih berkesan. Tetapi analisis teknikal sahaja mempunyai batasan dalam membaca pasaran, jadi penambahbaikan lanjut terletak pada menggabungkan lebih banyak penunjuk dan isyarat asas / peristiwa, mengoptimumkan tahap stop loss / mengambil keuntungan dan mekanisme pengurusan wang.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Advanced Strategy with Conditional Stop Loss", overlay=true)

// Parameters
ma_length_20 = 20
ma_length_44 = 44
ma_length_100 = 100
rsi_length = 14
volume_length = 10
profit_target = 1.15 // 15% above the buy price
stop_loss_target = 0.97 // 3% below the buy price
wait_candles = 10 // Number of candles to wait after selling, unless MA cross condition met

// Indicators
moving_average_20 = ta.sma(close, ma_length_20)
moving_average_44 = ta.sma(close, ma_length_44)
moving_average_100 = ta.sma(close, ma_length_100)
rsi = ta.rsi(close, rsi_length)
volumeAvg = ta.sma(volume, volume_length)

// Variables to manage the wait period after a sell
var int last_sell_candle = 0

// Update last sell candle
if (strategy.position_size[1] > 0 and strategy.position_size == 0)
    last_sell_candle := bar_index

// Trend identification
uptrend = close > moving_average_20
above_ma20_by_1_percent = close > moving_average_20 * 1.01
ma_cross = ta.crossover(moving_average_20, moving_average_44) or ta.crossunder(moving_average_20, moving_average_44)
close_near_high = (close >= high * 0.993) and (close <= high)

// Buy condition (only in uptrend, above 1% from 20-day MA, and respecting new filter)
can_buy_after_cross = ma_cross and close > high[1]
can_buy_after_wait = (bar_index - last_sell_candle) > wait_candles
buy_condition = (can_buy_after_cross or can_buy_after_wait) and uptrend and above_ma20_by_1_percent and close > moving_average_44 and close > moving_average_100 and close > high[1] and rsi > 50 and volume > volumeAvg and not close_near_high

// Entry
if (buy_condition and strategy.position_size == 0)
    strategy.entry("Buy", strategy.long)

// Exit conditions
if (strategy.position_size > 0)
    // Profit target
    profit_level = strategy.position_avg_price * profit_target
    strategy.exit("Take Profit", "Buy", limit=profit_level)

    // Dynamic Stop Loss - Check on every bar if the price has dropped 3% below the buy price
    stop_loss_level = strategy.position_avg_price * stop_loss_target
    if (low < stop_loss_level)
        strategy.close("Buy", comment="Stop Loss")

// Plotting
plot(moving_average_20, color=color.green, title="20-Day Moving Average")
plot(moving_average_44, color=color.blue, title="44-Day Moving Average")
plot(moving_average_100, color=color.red, title="100-Day Moving Average")


Lebih lanjut