Strategi SMA Moving Average Crossover

Penulis:ChaoZhang, Tanggal: 2024-03-28 17:50:00
Tag:

img

Gambaran umum

Strategi ini adalah strategi crossover rata-rata bergerak SMA yang sederhana. Strategi ini menggunakan dua Rata-rata Gerak Sederhana (SMA) dengan panjang yang berbeda. Ketika MA cepat melintasi di atas MA lambat, ia memasuki posisi panjang. Ketika MA cepat melintasi di bawah MA lambat, ia menutup posisi panjang. Panjang kedua MA dapat disesuaikan, serta tanggal awal dan akhir untuk backtesting.

Ide utama dari strategi ini adalah untuk memanfaatkan karakteristik tren rata-rata bergerak dan karakteristik sinyal MA crossover untuk perdagangan. Ketika MA cepat di atas MA lambat, itu menunjukkan tren naik dan posisi panjang harus dipegang. Ketika MA cepat di bawah MA lambat, itu menunjukkan tren menurun dan tidak ada posisi yang harus dipegang.

Prinsip Strategi

  1. Hitung dua SMA dengan panjang yang berbeda, yang dapat disesuaikan.
  2. Periksa apakah waktu saat ini berada dalam jendela backtesting. Jika tidak, jangan lakukan apa-apa.
  3. Jika MA cepat melintasi atas MA lambat, masukkan posisi panjang.
  4. Jika MA cepat melintasi di bawah MA lambat, tutup semua posisi panjang.
  5. Dalam kasus lain, tetap datar dan tidak melakukan apapun.

Analisis Keuntungan

  1. Sederhana dan mudah dimengerti, dengan logika yang jelas, cocok untuk pemula untuk belajar dan menggunakan.
  2. Rata-rata bergerak adalah indikator teknis yang banyak digunakan, dengan karakteristik tren yang jelas, yang dapat mencerminkan tren pasar saat ini.
  3. MA crossover adalah sinyal trend-mengikuti klasik yang dapat dengan cepat menangkap perubahan tren.
  4. Panjang MA dan jendela backtesting dapat disesuaikan, memberikan fleksibilitas yang baik.
  5. Cocok untuk instrumen dan kerangka waktu dengan karakteristik tren yang kuat.

Analisis Risiko

  1. Rata-rata bergerak memiliki keterlambatan tertentu. Ketika pasar berfluktuasi sangat besar dan tren sering berbalik, mungkin ada sinyal silang yang sering terjadi, yang mengakibatkan perdagangan yang berlebihan dan peningkatan biaya transaksi.
  2. Strategi ini hanya dapat menangkap tren naik, dan tidak berdaya di pasar yang terikat rentang dan tren menurun.
  3. Pemilihan parameter MA perlu dioptimalkan untuk instrumen dan kerangka waktu yang berbeda.
  4. Strategi ini tidak memiliki langkah-langkah stop-loss, dan dapat menghadapi risiko penarikan yang lebih besar ketika pasar berfluktuasi secara dramatis.

Arahan Optimasi

  1. Pertimbangkan untuk menambahkan langkah-langkah stop-loss yang sesuai, seperti stop trailing berbasis ATR, untuk mengendalikan kerugian maksimum dari satu perdagangan.
  2. Pertimbangkan untuk menambahkan beberapa kondisi penyaringan, seperti volume perdagangan dan volatilitas, untuk menyaring beberapa sinyal palsu.
  3. Pertimbangkan untuk mengoptimalkan parameter, seperti menggunakan algoritma genetik atau algoritma cerdas lainnya untuk menemukan kombinasi parameter yang optimal.
  4. Pertimbangkan untuk menggabungkan indikator teknis atau sinyal perdagangan lainnya dengan crossover MA, seperti MACD dan RSI, untuk meningkatkan keandalan dan efektivitas strategi.

Kesimpulan

Strategi crossover SMA adalah strategi trend-following yang sederhana, mudah dipahami, klasik dan praktis yang cocok untuk dipelajari dan digunakan oleh pemula. Strategi ini memanfaatkan karakteristik tren moving average dan karakteristik sinyal crossover MA untuk dengan cepat menangkap perubahan tren pasar. Namun, strategi ini juga memiliki beberapa keterbatasan dan risiko, seperti lag, perdagangan sering, dan kurangnya stop-loss. Oleh karena itu, dalam aplikasi praktis, perlu dioptimalkan dan ditingkatkan dengan tepat sesuai dengan kondisi tertentu untuk meningkatkan stabilitas dan profitabilitas strategi.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © j0secyn

//@version=5
strategy("MA Cross", overlay=true, margin_long=100, margin_short=100, default_qty_value=100, default_qty_type=strategy.percent_of_equity, initial_capital=10000)

// === INPUT BACKTEST RANGE ===
fromDay   = input.int(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input.int(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear  = input.int(defval = 2018,title = "From Year", minval = 1970)
thruDay   = input.int(defval = 30, title = "Thru Day", minval = 1, maxval = 31)
thruMonth = input.int(defval = 9, title = "Thru Month", minval = 1, maxval = 12)
thruYear  = input.int(defval = 2024, title = "Thru Year", minval = 1970)

slow_ma_length = input.int(defval = 100, title = "Slow MA lenght")
fast_ma_length = input.int(defval = 30, title = "Fast MA lenght")

// === FUNCTION EXAMPLE ===
start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)            // backtest start  window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)            // backtest finish window
window()  => true

// === LOGIC ===
crossOv = ta.crossover(ta.sma(close, fast_ma_length), ta.sma(close, slow_ma_length))
crossUn = ta.crossunder(ta.sma(close, fast_ma_length), ta.sma(close, slow_ma_length))

// === EXECUTION ===
// strategy.entry("L", strategy.long, when = window() and crossOv)        // enter long when "within window of time" AND crossover
// strategy.close("L", when = window() and crossUn)                       // exits long when "within window of time" AND crossunder         
strategy.entry("L", strategy.long, when = window() and crossOv)        // enter long when "within window of time" AND crossover
strategy.close("L", when = window() and crossUn)                       // exits long when "within window of time" AND crossunder         

Lebih banyak