Strategi Melalui Rata-Rata Bergerak SMA

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

img

Ringkasan

Strategi ini adalah strategi crossover purata bergerak SMA yang mudah. Ia menggunakan dua purata bergerak mudah (SMA) dengan panjang yang berbeza. Apabila MA pantas melintasi di atas MA perlahan, ia memasuki kedudukan panjang. Apabila MA pantas melintasi di bawah MA perlahan, ia menutup kedudukan panjang. Panjang kedua MA boleh disesuaikan, serta tarikh permulaan dan akhir untuk backtesting.

Idea utama strategi ini adalah untuk menggunakan ciri-ciri trend purata bergerak dan ciri-ciri isyarat persilangan MA untuk perdagangan. Apabila MA pantas di atas MA perlahan, ia menunjukkan trend menaik dan kedudukan panjang harus dipegang. Apabila MA pantas di bawah MA perlahan, ia menunjukkan trend menurun dan tidak ada kedudukan yang harus dipegang.

Prinsip Strategi

  1. Mengira dua SMA dengan panjang yang berbeza, yang boleh disesuaikan.
  2. Periksa jika masa semasa berada dalam tetingkap backtesting. Jika tidak, jangan lakukan apa-apa.
  3. Jika MA pantas melintasi di atas MA perlahan, masukkan kedudukan panjang.
  4. Jika MA pantas melintasi di bawah MA perlahan, tutup semua kedudukan panjang.
  5. Dalam kes yang lain, tinggal rata dan tidak melakukan apa-apa.

Analisis Kelebihan

  1. Sederhana dan mudah difahami, dengan logik yang jelas, sesuai untuk pemula untuk belajar dan menggunakan.
  2. Purata bergerak adalah penunjuk teknikal yang digunakan secara meluas, dengan ciri-ciri trend yang jelas, yang boleh mencerminkan trend pasaran semasa.
  3. MA crossover adalah isyarat trend-mengikut klasik yang boleh dengan cepat menangkap perubahan dalam trend.
  4. Panjang MA dan tetingkap backtesting boleh disesuaikan, memberikan fleksibiliti yang baik.
  5. Sesuai untuk instrumen dan jangka masa dengan ciri-ciri trend yang kuat.

Analisis Risiko

  1. Purata bergerak mempunyai kelewatan tertentu. Apabila pasaran turun naik dengan ketara dan trend berbalik dengan kerap, mungkin terdapat isyarat silang yang kerap, yang mengakibatkan perdagangan yang berlebihan dan peningkatan kos transaksi.
  2. Strategi ini hanya dapat menangkap trend menaik, dan tidak berdaya dalam pasaran yang terikat julat dan trend menurun.
  3. Pilihan parameter MA perlu dioptimumkan untuk instrumen dan jangka masa yang berbeza.
  4. Strategi ini tidak mempunyai apa-apa langkah berhenti kerugian, dan mungkin menghadapi risiko pengeluaran yang lebih besar apabila pasaran turun naik secara dramatik.

Arahan pengoptimuman

  1. Pertimbangkan untuk menambah langkah-langkah stop-loss yang sesuai, seperti ATR-based trailing stop, untuk mengawal kerugian maksimum perdagangan tunggal.
  2. Pertimbangkan untuk menambah beberapa syarat penapisan, seperti jumlah dagangan dan turun naik, untuk menapis beberapa isyarat palsu.
  3. Pertimbangkan untuk mengoptimumkan parameter, seperti menggunakan algoritma genetik atau algoritma pintar lain untuk mencari kombinasi parameter yang optimum.
  4. Pertimbangkan untuk menggabungkan penunjuk teknikal atau isyarat perdagangan lain dengan persilangan MA, seperti MACD dan RSI, untuk meningkatkan kebolehpercayaan dan keberkesanan strategi.

Kesimpulan

Strategi crossover purata bergerak SMA adalah strategi trend berikut yang mudah, mudah difahami, klasik dan praktikal yang sesuai untuk dipelajari dan digunakan oleh pemula. Ia menggunakan ciri-ciri trend purata bergerak dan ciri-ciri isyarat crossover MA untuk dengan cepat menangkap perubahan dalam trend pasaran. Walau bagaimanapun, strategi ini juga mempunyai beberapa batasan dan risiko, seperti lag, perdagangan yang kerap, dan kekurangan stop-loss. Oleh itu, dalam aplikasi praktikal, ia perlu dioptimumkan dan ditingkatkan dengan sewajarnya mengikut keadaan tertentu untuk meningkatkan kestabilan dan keuntungan 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 lanjut