
Strategi ini didasarkan pada persilangan rata-rata bergerak 9 hari dan rata-rata bergerak 15 hari dan beberapa bentuk K-line harian yang khas untuk menghasilkan sinyal perdagangan. Lakukan lebih banyak ketika melewati garis lambat di garis cepat dan memenuhi kondisi sudut tertentu dan bentuk K-line tertentu; kosongkan ketika melewati garis lambat di bawah garis cepat.
Ketika rata-rata bergerak jangka pendek ((9 hari) di atas rata-rata bergerak jangka panjang ((15 hari), menunjukkan momentum kenaikan harga jangka pendek yang lebih kuat, lakukan lebih banyak; Ketika rata-rata bergerak jangka pendek di bawah rata-rata bergerak jangka panjang, menunjukkan momentum penurunan harga jangka pendek yang lebih kuat, kosong. Selain itu, meminta sudut rata-rata bergerak lebih besar dari 30 derajat, memastikan ada cukup naik atau turun.
Strategi ini terutama memanfaatkan fitur pelacakan tren rata-rata bergerak dan beberapa fitur dari bentuk garis K, yang dapat disesuaikan dengan varietas pasar yang berbeda melalui penyesuaian parameter.
Strategi ini menggabungkan indikator moving average dan penilaian bentuk garis K dalam sehari, yang dapat secara efektif menyaring sebagian dari kebisingan, membuat sinyal perdagangan lebih dapat diandalkan. Secara khusus, penilaian penurunan sudut ditambahkan, yang dapat memastikan bahwa sinyal dikirim hanya ketika pergerakan harga cukup besar, untuk menghindari sinyal palsu yang tidak berarti. Selain itu, strategi menetapkan tingkat stop loss dan stop loss, yang dapat secara otomatis mengurangi kerugian maksimum satuan dan mencapai penarikan kembali keuntungan.
Moving average sebagai indikator trend tracking dapat menangkap tren harga jangka menengah dan panjang. Sementara bentuk garis K dalam satu hari mencerminkan kekuatan peserta pasar dalam jangka pendek, kombinasi penggunaan dapat mendapatkan petunjuk perdagangan pada skala waktu yang berbeda. Strategi ini menggabungkan keunggulan dari berbagai indikator penilaian dan seharusnya dapat memberikan efek yang lebih baik dalam perdagangan aktual.
Beberapa risiko yang mungkin ada dalam strategi ini adalah:
Risiko False Breakout. Ketika pasar berada dalam kondisi shock and awe, rata-rata bergerak dapat terjadi beberapa kali crossover, yang berdasarkan sinyal yang dikeluarkan oleh crossover sebagian besar adalah sinyal palsu. Saat ini tidak dapat menghasilkan keuntungan, dan sebaliknya mungkin ditaruh.
Trend Reversal Risk. Moving Average sebagai indikator trend tracking, tidak dapat memberikan sinyal awal jika trend berbalik. Dalam hal ini, posisi yang dipegang dapat mengalami kerugian besar. Risiko ini dapat dikendalikan dengan stop loss yang ketat.
Risiko pengoptimalan parameter. Berbagai varietas pasar memiliki adaptasi yang berbeda terhadap pengaturan parameter. Penggunaan kombinasi parameter secara langsung tanpa penyesuaian juga dapat menyebabkan kerugian.
Secara keseluruhan, strategi ini dapat menghasilkan beberapa sinyal palsu dan risiko mengejar kenaikan dan penurunan dalam kurangnya penilaian lingkungan pasar. Risiko ini dapat dioptimalkan lebih lanjut dengan menambahkan penilaian tren skala besar dan karakteristik harga kuantitatif.
Strategi ini juga dapat dioptimalkan lebih lanjut dalam beberapa hal:
Meningkatkan penilaian terhadap tren skala besar. Misalnya, periksa apakah garis panjang berada di jalur naik atau turun, dan hindari perdagangan berlawanan.
Menambahkan analisis indikator kuantitatif. Sebagai contoh, indikator tarif Komunikasi dapat menentukan arah jual beli, menghindari harga saham dengan harga tinggi atau harga saham dengan harga rendah.
Bergabung dengan dasar-dasar saham. Memilih beberapa saham individu dengan prospek pendapatan yang baik dan pertumbuhan kinerja yang stabil untuk diperdagangkan, dapat meningkatkan tingkat kemenangan.
Mengoptimalkan kombinasi parameter sistem moving average. Anda dapat mencoba rata-rata dengan periode panjang yang berbeda, atau menambahkan tiga rata-rata, lima rata-rata, dan lain-lain, untuk membangun sistem perdagangan yang lebih besar dengan ruang untuk menyesuaikan parameter.
Uji parameter stop loss dan stop loss yang berbeda. Sesuai dengan hasil pengukuran kembali, setel koefisien margin untuk mendapatkan rasio risiko / keuntungan yang optimal.
Dengan optimasi di beberapa arah di atas, kita dapat mengharapkan peningkatan tingkat keuntungan dan stabilitas dari strategi ini.
Secara keseluruhan, strategi ini mengintegrasikan keuntungan dari indikator moving average dan beberapa bentuk garis K dalam sehari. Kondisi yang lebih ketat pada saat sinyal perdagangan dikirimkan, dapat menyaring banyak kebisingan, sehingga kualitas sinyal yang melintas sangat meningkat.
Langkah selanjutnya adalah untuk meningkatkan kemenangan dan profitabilitas strategi melalui optimasi parameter. Menambahkan lebih banyak indikator juga dapat meningkatkan kesehatan sistem perdagangan secara keseluruhan. Setelah simulasi yang ketat di tempat, strategi ini diharapkan menjadi alat kuantitatif yang efektif untuk menghasilkan keuntungan yang stabil.
/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Moving Average Crossover Strategy with Candlestick Patterns", overlay=true)
// Define input parameters
fast_length = input(9, "Fast MA Length")
slow_length = input(15, "Slow MA Length")
stop_loss_percent = input(0.25, "Stop Loss (%)")
target_percent = input(0.25, "Target (%)")
angle_threshold = input(30, "Angle Threshold (degrees)")
// Calculate moving averages
fast_ma = sma(close, fast_length)
slow_ma = sma(close, slow_length)
// Define candlestick patterns
is_pin_bar() =>
pin_bar = abs(open - close) > 2 * abs(open[1] - close[1])
high_tail = max(open, close) - high > abs(open - close) * 1.5
low_tail = low - min(open, close) > abs(open - close) * 1.5
pin_bar and high_tail and low_tail
is_marubozu() =>
marubozu = abs(open - close) > abs(open[1] - close[1]) * 0.75
no_upper_shadow = high == max(open, close)
no_lower_shadow = low == min(open, close)
marubozu and no_upper_shadow and no_lower_shadow
is_full_body() =>
full_body = abs(open - close) > abs(open[1] - close[1]) * 0.95
full_body
// Plot moving averages
plot(fast_ma, color=color.blue, title="Fast MA")
plot(slow_ma, color=color.red, title="Slow MA")
// Calculate angle of slow moving average
ma_angle = abs(180 * (atan(slow_ma[1] - slow_ma) / 3.14159))
// Generate buy/sell signals based on angle condition and candlestick patterns
buy_signal = crossover(fast_ma, slow_ma) and ma_angle >= angle_threshold and (is_pin_bar() or is_marubozu() or is_full_body())
sell_signal = crossunder(fast_ma, slow_ma)
// Calculate stop-loss and target levels
stop_loss_level = close * (1 - stop_loss_percent / 100)
target_level = close * (1 + target_percent / 100)
// Execute trades based on signals with stop-loss and target
strategy.entry("Buy", strategy.long, when=buy_signal)
strategy.exit("Exit", "Buy", stop=stop_loss_level, limit=target_level)
// Plot buy/sell signals on chart (optional)
plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
// Plot angle line
hline(angle_threshold, "Angle Threshold", color=color.black, linestyle=hline.style_dashed)