Strategi Crossover dari Garis Rata-rata Bergerak dan Penembusan Tingkat Resistensi

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

img

Gambaran umum

Strategi ini mengintegrasikan teknik crossover rata-rata bergerak dan breakout level resistance untuk mengatur sinyal beli dan jual untuk perdagangan otomatis. Ketika rata-rata bergerak jangka pendek melintasi rata-rata bergerak jangka menengah dari bawah, dan harga saham menembus level resistance, sinyal beli dihasilkan. Strategi ini menetapkan take-profit pada kenaikan harga 15% dan stop-loss pada penurunan harga 3% untuk mengendalikan risiko. Strategi perdagangan kuantitatif yang matang ini dapat secara otomatis mengidentifikasi tren pasar dan masuk ke posisi ketika sinyal teknis muncul, dengan manajemen risiko yang tepat.

Prinsip Strategi

Strategi menghasilkan sinyal perdagangan terutama berdasarkan indikator dan penilaian teknis berikut:

  1. Teknik crossover rata-rata bergerak: rata-rata bergerak sederhana 20 hari dan 44 hari dihitung. Ketika SMA 20 hari melintasi garis 44 hari, dinilai bahwa pasar berada dalam tren naik, menghasilkan sinyal beli.

  2. Teknik Breakout Resistance Level: Tingkat harga yang telah berkali-kali dicapai oleh harga saham tetapi gagal untuk menerobos disebut level resistance. Menembus mereka menunjukkan harga memasuki tren naik baru. Strategi ini menganggap penembusan di atas 0,7% dari penutupan sebelumnya sebagai penembusan resistance.

  3. RSI Oscillator: Relative Strength Index, indikator momentum untuk mengidentifikasi kondisi overbought dan oversold.

  4. Analisis volume: Volume yang melebihi rata-rata 10 hari terakhir seringkali menunjukkan minat pembelian atau penjualan yang lebih kuat dan momentum dalam pergerakan harga.

  5. Sinyal beli: Dimulai ketika SMA pendek melintasi SMA menengah, dengan nilai RSI yang terlalu banyak dibeli dan volume perdagangan yang lebih tinggi dari rata-rata, menunjukkan tren naik.

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

Strategi perdagangan kuantitatif yang matang ini mengintegrasikan beberapa metode analisis teknis untuk mengidentifikasi struktur pasar dan tren, secara otomatis menghasilkan sinyal perdagangan selama pembentukan tren, dengan manajemen risiko yang tepat.

Keuntungan dari Strategi

  1. Menangkap tren pasar dengan lancar dengan teknik rata-rata bergerak.

  2. Menghindari posisi pembukaan selama breakout palsu dengan menggabungkan analisis volume.

  3. Pengendalian risiko yang efektif dengan menetapkan stop-loss dan take-profit, mengoptimalkan rasio risiko-manfaat.

  4. Secara keseluruhan penilaian struktur pasar yang sangat baik, aturan perdagangan yang ketat dan pengendalian risiko membuat ini menjadi strategi perdagangan kuantitatif yang kuat.

Risiko dari Strategi

  1. Sistem rata-rata bergerak ganda dapat sensitif terhadap pengaturan parameter untuk periode yang berbeda.

  2. Sistem yang mengikuti tren tidak dapat merespon dengan cepat terhadap peristiwa fundamental yang tiba-tiba, menghadapi risiko stop loss.

  3. Meskipun dengan stop loss yang diatur, frekuensi perdagangan yang tinggi mengarah pada jumlah eksekusi stop loss yang tak terelakkan, menghasilkan tingkat keuntungan yang tidak merata.

  4. Sinyal dari indikator teknis sering tertinggal dari titik pembalikan pasar terbaik.

Arahan Optimasi

  1. Optimalkan parameter seperti panjang rata-rata bergerak, target stop loss / profit dengan metode penyesuaian parameter untuk menemukan yang optimal.

  2. Tambahkan indikator teknis lainnya seperti Bollinger Bands untuk deteksi kisaran, MACD untuk menemukan divergensi dll untuk meningkatkan akurasi sinyal.

  3. Menggabungkan sinyal fundamental dan event-driven untuk menghindari stop loss yang dipicu oleh berita negatif.

  4. Mengoptimalkan pengelolaan uang dengan kuantitas tetap, metode persentase tetap untuk mengendalikan risiko per perdagangan.

Kesimpulan

Strategi ini menunjukkan operasi yang lancar, penilaian yang akurat dan aturan perdagangan yang ketat, mewakili salah satu teknik perdagangan kuantitatif yang lebih efektif. Tetapi analisis teknis saja memiliki keterbatasan dalam membaca pasar, sehingga peningkatan lebih lanjut terletak pada menggabungkan lebih banyak indikator dan sinyal fundamental / acara, mengoptimalkan tingkat stop loss / profit taking dan mekanisme manajemen uang. Singkatnya, strategi ini telah mencapai tingkat tinggi di antara strategi analisis teknis, tetapi harus menuju strategi perdagangan siklus fundamental / acara yang didorong dalam langkah-langkah evolusi berikutnya.


/*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 banyak