Strategi ini adalah strategi momentum berdasarkan garis rata-rata bergerak

Penulis:ChaoZhang, Tanggal: 2024-01-23 10:38:18
Tag:

img

Gambaran umum

Strategi ini adalah strategi momentum yang didasarkan pada garis rata-rata bergerak. Ini menghasilkan sinyal perdagangan dengan menghitung rata-rata bergerak sederhana dari periode yang berbeda dan membandingkan situasi silang mereka. Secara khusus, ketika garis rata-rata bergerak jangka pendek melintasi di atas garis rata-rata bergerak jangka panjang, sinyal beli dihasilkan; ketika garis rata-rata bergerak jangka pendek melintasi di bawah garis rata-rata bergerak jangka panjang, sinyal jual dihasilkan.

Prinsip Strategi

Logika inti dari strategi ini didasarkan pada efek momentum, yang merupakan keberlanjutan tren harga saham. Garis rata-rata bergerak dapat secara efektif mencerminkan tren perubahan harga saham. Ketika garis rata-rata bergerak jangka pendek melintasi di atas garis rata-rata bergerak jangka panjang, itu berarti bahwa harga saham mulai memasuki tren kenaikan; sebaliknya, ketika garis rata-rata bergerak jangka pendek melintasi di bawah garis rata-rata bergerak jangka panjang, itu berarti bahwa harga saham mulai memasuki tren penurunan. Strategi ini menghasilkan sinyal perdagangan berdasarkan prinsip ini.

Secara khusus, rata-rata bergerak sederhana 13 hari dan rata-rata bergerak sederhana 34 hari didefinisikan dalam strategi. Setelah menghitung dua rata-rata bergerak ini berdasarkan harga penutupan harian, hubungan magnitud mereka dibandingkan. Jika garis 13 hari melintasi di atas garis 34 hari, sinyal beli dihasilkan, yang menunjukkan bahwa harga saham memasuki tren kenaikan dan posisi panjang harus ditetapkan; jika garis 13 hari melintasi di bawah garis 34 hari, sinyal jual dihasilkan, yang menunjukkan bahwa harga saham memasuki tren penurunan dan posisi harus ditutup.

Analisis Keuntungan

Keuntungan terbesar dari strategi ini adalah sederhana dan mudah dipahami dan diimplementasikan. Garis rata-rata bergerak adalah salah satu indikator teknis yang paling dasar dan umum digunakan. Prinsipnya sederhana dan mudah dipahami dan diterapkan. Pada saat yang sama, sinyal silang garis rata-rata bergerak juga telah terbukti efektif melalui praktik jangka panjang.

Selain itu, pengaturan parameter strategi ini fleksibel dan dapat disesuaikan sesuai dengan berbagai varietas dan kondisi pasar. Misalnya, parameter siklus garis rata-rata bergerak dapat diubah untuk menyesuaikan sensitivitas strategi. Ini memberikan ruang untuk optimasi dan penyesuaian strategi.

Analisis Risiko

Risiko terbesar dari strategi ini adalah bahwa mungkin ada lebih banyak sinyal palsu dan terjebak di pasar yang terikat kisaran. Ketika harga berfluktuasi tajam, garis rata-rata bergerak dapat menghasilkan persilangan yang sering, menghasilkan sinyal palsu. Pada titik ini, Anda perlu menyesuaikan parameter siklus garis rata-rata bergerak untuk menyaring beberapa kebisingan.

Selain itu, ketika ada pembalikan pasar yang lebih besar, titik stop loss dari strategi dapat dipecahkan, menghasilkan kerugian yang lebih besar.

Arahan Optimasi

Aspek-aspek berikut dari strategi ini dapat dioptimalkan:

  1. Mengoptimalkan parameter siklus garis rata-rata bergerak untuk menemukan kombinasi optimal parameter untuk berbagai varietas dan kondisi pasar.

  2. Tambahkan penyaringan indikator teknis lainnya seperti MACD dan KD untuk menghindari menghasilkan sinyal palsu di pasar yang terikat kisaran.

  3. Optimalkan dan sesuaikan secara dinamis strategi stop loss untuk menghindari titik stop loss terlalu dekat sambil memastikan stop loss, dengan kemungkinan lebih tinggi untuk dilanggar.

  4. Meningkatkan mekanisme manajemen posisi seperti investasi tetap dan rasio posisi untuk mengendalikan risiko transaksi tunggal.

Kesimpulan

Strategi ini adalah strategi crossover rata-rata bergerak yang sangat klasik. Ini menghasilkan sinyal beli dan jual dengan menghitung dan membandingkan hubungan antara rata-rata bergerak jangka pendek dan jangka panjang. Keuntungan dari strategi ini adalah parameter yang sederhana, fleksibel, dan cocok untuk pemula untuk belajar; Kelemahannya adalah bahwa sinyal mungkin tidak cukup stabil dan mudah terjebak di pasar yang terikat rentang. Dengan optimasi yang tepat, itu masih bisa menjadi strategi kuantitatif yang sangat praktis.


/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// TODO: update strategy name
strategy("{STRATEGY NAME}", overlay=true)

// === TA LOGIC ===

//
//
// TODO: PUT YOUR TA LOGIC HERE
LONG_SIGNAL_BOOLEAN = crossover(sma(close, 13), sma(close, 34))
SHORT_SIGNAL_BOOLEAN = crossunder(sma(close, 12), sma(close, 21))

// === INPUT BACKTEST DATE RANGE ===
enableShorts = input(false, title="Enable short entries?")

FromMonth = input(defval = 5, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 18, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth   = input(defval = 9, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2018, title = "To Year", minval = 2017)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

// === STRATEGY BUY / SELL ENTRIES ===

// TODO: update the placeholder LONG_SIGNAL_BOOLEAN and SHORT_SIGNAL_BOOLEAN to signal
// long and short entries
buy() => window() and LONG_SIGNAL_BOOLEAN
sell() => window() and SHORT_SIGNAL_BOOLEAN

if buy()
    strategy.entry("Long", strategy.long, comment="Long")

if sell()
    if (enableShorts)
        strategy.entry("Short", strategy.short, comment="Short")
    else
        strategy.close("Long")

// === BACKTESTING: EXIT strategy ===
sl_inp = input(10, title='Stop Loss %', type=float)/100
tp_inp = input(30, title='Take Profit %', type=float)/100

stop_level = strategy.position_avg_price * (1 - sl_inp)
take_level = strategy.position_avg_price * (1 + tp_inp)

strategy.exit("Stop Loss/Profit", "Long", stop=stop_level, limit=take_level)

Lebih banyak