Strategi Rata-rata Pergerakan Mengikuti Tren


Tanggal Pembuatan: 2024-02-04 15:44:54 Akhirnya memodifikasi: 2024-02-04 15:44:54
menyalin: 0 Jumlah klik: 575
1
fokus pada
1617
Pengikut

Strategi Rata-rata Pergerakan Mengikuti Tren

Ringkasan

Trend Tracking Moving Average adalah strategi yang didasarkan pada identifikasi arah tren dari jangka panjang moving averages, dan digabungkan dengan filtering rata-rata real range of fluctuations untuk mengidentifikasi pergerakan yang salah. Strategi ini menggunakan indeks moving averages untuk menilai arah tren, dan kemudian menggunakan rata-rata real range of fluctuations untuk mengidentifikasi apakah ada false breakout. Ini dapat secara efektif menyaring pergerakan yang bergoyang dan mengurangi overall reversal dari strategi.

Prinsip Strategi

Strategi ini dirancang berdasarkan prinsip-prinsip berikut:

  1. Menggunakan Indeks Moving Average untuk menentukan arah tren secara keseluruhan. Panjang siklus default 200 K-line.
  2. Hitung kisaran rata-rata fluktuasi nyata dari 10 garis K terbaru.
  3. Ketika harga penutupan lebih tinggi dari rata-rata bergerak + rata-rata rentang fluktuasi riil, harga tersebut dianggap sebagai tren naik.
  4. Ketika harga close-out berada di bawah moving average - rata-rata real range of fluctuation - maka harga tersebut dianggap sedang berada dalam tren turun.
  5. Dalam tren naik, lakukan lebih banyak; dalam tren turun, lakukan lebih sedikit.
  6. Strategi default adalah stop loss pada moving average. Anda juga dapat memilih untuk stop loss pada moving average inverse ± average real range.

Analisis Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Menggunakan moving average untuk menilai tren besar, dapat secara efektif menyaring kebisingan pasar jangka pendek.
  2. Menambahkan rentang rata-rata fluktuasi riil sebagai kondisi penyaringan dapat menghindari sinyal perdagangan dalam situasi yang bergejolak, sehingga mengurangi kerugian yang tidak perlu.
  3. Garis stop loss yang mendekati moving average atau kebalikan dari moving average, dapat menghentikan stop loss dengan cepat dan mengurangi pengembalian maksimum.
  4. Pengaturan parameter sederhana, mudah dipahami dan disesuaikan.

Analisis risiko

Strategi ini juga memiliki beberapa potensi risiko:

  1. Dalam sistem linier, ada beberapa tingkat mundur yang terjadi ketika tren berbalik.
  2. Pengaturan parameter untuk moving average dan average real range memiliki pengaruh besar terhadap kinerja strategi. Jika parameter tidak ditetapkan dengan benar, peluang perdagangan yang terlewatkan atau peningkatan kerugian yang tidak perlu dapat terjadi.
  3. Strategi itu sendiri tidak mempertimbangkan hubungan antara harga saham dan volume transaksi.

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Uji berbagai jenis rata-rata bergerak untuk mencari parameter rata-rata bergerak yang paling cocok untuk saham atau varietas tertentu.
  2. Optimalkan parameter siklus rata-rata bergerak agar lebih sesuai dengan karakteristik saham atau varietas yang diperdagangkan.
  3. Mengoptimalkan parameter untuk jangkauan rata-rata fluktuasi riil, mencari kombinasi parameter yang optimal untuk memfilter getaran tanpa kehilangan tren.
  4. Meningkatkan aturan penilaian volume transaksi untuk menghindari terjadinya kegagalan.
  5. Uji coba dan perbandingan berbagai metode penghentian kerugian untuk menentukan solusi yang optimal.

Meringkaskan

Strategi trend tracking moving average secara keseluruhan adalah strategi tren yang sangat sederhana dan praktis. Ini juga memiliki efek pengendalian risiko yang baik. Meskipun strategi ini tidak mempertimbangkan terlalu banyak faktor, parameter dan metode stop loss masih perlu diuji dan dioptimalkan dengan cermat, tetapi secara keseluruhan merupakan strategi yang efektif yang mudah dikuasai dan disesuaikan. Logika perdagangan dan pengaturan parameter yang sederhana membuatnya dapat digunakan secara luas untuk berbagai varietas, terutama untuk perdagangan mata uang digital seperti bitcoin.

Kode Sumber Strategi
/*backtest
start: 2023-01-28 00:00:00
end: 2024-02-03 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/
// © Inkedlau

//@version=5
strategy('Swing Trend Strategy', overlay=true, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=1000, commission_value=0.1)

use_short = input.bool(false, 'Open Short Positions?')
exit_type = input.bool(true, 'Exit trade on Moving Average Cross?')
src = input.source(close, 'Source')
len = input.int(200, 'Trend Length')
ma_type = input.string('ema', 'Moving Average Type', options=['sma', 'ema', 'rma', 'wma', 'vwma'], tooltip='Select the type of Moving Average to use to calculate the Trend')
atr_multiplier = input.float(1., 'ATR Threshold', step=0.5, tooltip='Filter the ranging market using the Average True Range')

// ----------------------- DESCRIPTION -----------------------
// THIS SCRIPT IS A TREND FOLLOWING SYSTEM THAT USES A COMBINATION OF MOVING AVERAGE AND AVERAGE TRUE RANGE
// TO SPOT THE TRENDS AND ENTER THE MARKET ACCODINGLY.
// THE MARKET IS CONSIDERED IN AN UPTREND WHEN THE PRICE CLOSES ABOVE THE MOVING AVERAGE + THE AVERAGE TRUE RANGE OF THE LAST 10 PERIODS
// THE MARKET IS CONSIDERED IN AN DOWNTREND WHEN THE PRICE CLOSES BLOW THE MOVING AVERAGE - THE AVERAGE TRUE RANGE OF THE LAST 10 PERIODS
// BY DEFAULT, THE STRATEGY WILL ENTER LONG WHEN AN UPTREND IS SPOTTED, THEN CLOSES WHEN THE PRICE CLOSES BELOW THE MOVING AVERAGE
// THE STRATEGY WILL ENTER SHORT WHEN A DOWNTREND IS SPOTTED, THEN CLOSES WHEN THE PRICE CLOSES ABOVE THE MOVING AVERAGE

// ------------------ INDICATORS CALCULATION------------------
my_ma()=>
    ma = close
    if ma_type == 'sma'
        ma := ta.sma(src, len)
    if ma_type == 'ema'
        ma := ta.ema(src, len)
    if ma_type == 'rma'
        ma := ta.rma(src, len)
    if ma_type == 'wma'
        ma := ta.wma(src, len)
    if ma_type == 'vwma'
        ma := ta.vwma(src, len)
    ma

trend = my_ma()
atr = ta.atr(10)
uptrend = trend + atr * atr_multiplier
downtrend = trend - atr * atr_multiplier

// ---------------- ENTRY AND EXIT CONDITIONS ----------------

open_long = strategy.position_size == 0 and src > uptrend
close_long = exit_type ? strategy.position_size > 0 and src < trend : strategy.position_size > 0 and src < downtrend

open_short = use_short and strategy.position_size == 0 and src < downtrend
close_short = exit_type ? strategy.position_size < 0 and src > trend : strategy.position_size < 0 and src > uptrend

strategy.entry('long', strategy.long, when=open_long)
strategy.close('long', when=close_long)

strategy.entry('short', strategy.short, when=open_short)
strategy.close('short', when=close_short)


// ------------------ PLOTTING AND COLORING ------------------
tcolor = src > uptrend ? color.green : src < downtrend ? color.red : na

ptrend = plot(trend, color=color.blue, linewidth=1)
puptrend = plot(uptrend, color=color.green, linewidth=1)
pdowntrend = plot(downtrend, color=color.red, linewidth=1)
pclose = plot(close, color=na)

fill(puptrend, pclose, color=close > uptrend ? color.green : na, transp = 90)
fill(pdowntrend, pclose, color=close < downtrend ? color.red : na, transp = 90)