Berdasarkan strategi perdagangan crossover rata-rata pergerakan ganda yang sederhana


Tanggal Pembuatan: 2023-12-25 16:03:48 Akhirnya memodifikasi: 2023-12-25 16:03:48
menyalin: 0 Jumlah klik: 643
1
fokus pada
1623
Pengikut

Berdasarkan strategi perdagangan crossover rata-rata pergerakan ganda yang sederhana

Ringkasan

Strategi ini didasarkan pada prinsip mata uang bercabang yang mati pada rata-rata bergerak sederhana (SMA). Strategi ini menggunakan dua SMA, yaitu SMA cepat dan SMA lambat, yang menghasilkan sinyal beli ketika SMA cepat menerobos SMA lambat dari arah bawah; menghasilkan sinyal jual ketika SMA cepat turun dari arah atas dan melanggar SMA lambat.

Prinsip Strategi

Strategi ini bergantung pada dua garis indikator SMA. Di antaranya, pengaturan yang lebih pendek selama SMA cepat, dapat menangkap perubahan harga lebih cepat; pengaturan yang lebih lama selama SMA lambat, dapat menyaring sebagian dari kebisingan. Ketika SMA cepat dari bawah melintasi SMA lambat, berarti harga jangka pendek naik lebih cepat, menghasilkan sinyal beli.

Dengan mengatur parameter siklus SMA yang berbeda, parameter strategi dapat disesuaikan dengan kondisi pasar yang berbeda. Selain itu, strategi ini juga memungkinkan untuk mengatur rentang waktu pengembalian, sehingga lebih mudah untuk menguji parameter strategi pada data historis.

Analisis Keunggulan

  • Dengan menggunakan indikator SMA yang terkenal, prinsipnya sederhana dan mudah dipahami
  • Parameter siklus SMA yang dapat disesuaikan
  • Dapat diatur jangka waktu deteksi untuk mengoptimalkan parameter
  • Mengadopsi sinyal yang dihasilkan dengan cara silang, memiliki efek penyaringan pada sinyal yang terobosan, dapat mengurangi kesalahan transaksi

Analisis risiko

  • SMA sendiri memiliki keterbelakangan dan mungkin kehilangan kesempatan untuk menyingkat jalur.
  • Tidak dapat menilai kekuatan tren, efek sinyal yang dihasilkan mungkin tidak stabil
  • Parameter siklus SMA yang tidak tepat akan meningkatkan sinyal yang salah

Langkah-langkah berikut dapat dilakukan untuk mengatasi risiko tersebut:

  • Mempersingkat siklus SMA dan meningkatkan sensitivitas
  • Kecepatan tren dikombinasikan dengan indikator lain
  • Menemukan kombinasi parameter yang optimal dengan menggunakan alat optimasi parameter

Arah optimasi

  • Meningkatkan strategi stop loss untuk mengendalikan kerugian tunggal
  • Menambahkan mekanisme manajemen posisi
  • Kombinasi dengan indikator teknis lainnya
  • Menambahkan algoritma pembelajaran mesin untuk optimasi parameter dinamis

Meringkaskan

Strategi ini adalah strategi pelacakan tren yang khas. Dengan menggunakan prinsip silang dua garis sejajar yang sederhana, dengan parameter yang tepat, efek pelacakan yang lebih baik dapat diperoleh. Namun, SMA itu sendiri memiliki keterbelakangan tertentu, tidak dapat menilai kekuatan tren. Oleh karena itu, dalam aplikasi praktis, perlu diperkenalkan alat bantu lain untuk membentuk portofolio indikator, sekaligus dilengkapi dengan pengoptimalan parameter otomatis dan alat pengendalian risiko, untuk membuat strategi stabil dan menguntungkan.

Kode Sumber Strategi
/*backtest
start: 2023-12-17 00:00:00
end: 2023-12-18 19:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//strategy(title="MA Cross Entry & Exit w/Date Range", overlay=true, initial_capital=10000, currency='USD')

strategy(title="SMA Cross Entry & Exit Strategy", overlay=true)

// Credit goes to this developer for the "Date Range Code"
// https://www.tradingview.com/script/62hUcP6O-How-To-Set-Backtest-Date-Range/


// === GENERAL INPUTS ===
// short ma
maFastSource   = input(defval = open, title = "Fast MA Source")
maFastLength   = input(defval = 36, title = "Fast MA Period", minval = 1)
// long ma
maSlowSource   = input(defval = open , title = "Slow MA Source")
maSlowLength   = input(defval = 46, title = "Slow MA Period", minval = 1)

// === SERIES SETUP ===
// a couple of ma's..
maFast = sma(maFastSource, maFastLength)
maSlow = sma(maSlowSource, maSlowLength)


// === PLOTTING ===
fast = plot(maFast, title = "Fast MA", color = red, linewidth = 2, style = line, transp = 30)
slow = plot(maSlow, title = "Slow MA", color = green, linewidth = 2, style = line, transp = 30)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"

// === LOGIC ===
//enterLong = crossover(maFast, maSlow)
//exitLong = crossover(maSlow, maFast)
enterLong = crossover(maSlow, maFast)
exitLong = crossover(maFast, maSlow)


// Entry //
strategy.entry(id="Long Entry", long=true, when=window() and enterLong)
strategy.entry(id="Short Entry", long=false, when=window() and exitLong)

// === FILL ====

fill(fast, slow, color = maFast > maSlow ? green : red)