Trend Mengikuti Strategi Purata Pergerakan


Tarikh penciptaan: 2024-02-04 15:44:54 Akhirnya diubah suai: 2024-02-04 15:44:54
Salin: 0 Bilangan klik: 575
1
fokus pada
1617
Pengikut

Trend Mengikuti Strategi Purata Pergerakan

Gambaran keseluruhan

Strategi trend-tracking moving averages adalah strategi trend-following yang berdasarkan kepada pengiktirafan arah trend dalam jangka masa panjang dan digabungkan dengan penyaringan jangkauan pergerakan sebenar rata-rata untuk menilai arah trend dan kemudian menggunakan jangkauan pergerakan sebenar rata-rata untuk mengenal pasti apakah ia adalah pecah palsu. Ini dapat menyaring dengan berkesan keadaan pergerakan yang bergolak dan mengurangkan pengunduran keseluruhan strategi.

Prinsip Strategi

Strategi ini direka berdasarkan prinsip-prinsip berikut:

  1. Menggunakan purata bergerak indeks untuk menentukan arah trend keseluruhan. Panjang kitaran secara default adalah 200 garis K.
  2. Hitung julat rata-rata pergerakan sebenar bagi 10 garis K terkini.
  3. Apabila harga penutupan lebih tinggi daripada purata bergerak + purata pergerakan sebenar, ia dianggap sebagai trend ke atas.
  4. Apabila harga penutupan berada di bawah purata bergerak nikel - purata rentang pergerakan sebenar nikel, ia dianggap sebagai trend menurun.
  5. Dalam trend naik, buat lebih; dalam trend turun, buat lebih.
  6. Strategi lalai adalah untuk berhenti pada purata bergerak. Anda juga boleh memilih untuk berhenti pada purata bergerak berbalik dengan ± purata jangkauan pergerakan sebenar.

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Menggunakan purata bergerak untuk menilai trend besar, anda boleh menyaring bunyi pasaran jangka pendek dengan berkesan.
  2. Menambah julat pergerakan sebenar purata sebagai syarat penapis dapat mengelakkan menghasilkan isyarat perdagangan dalam keadaan gegaran, dan dengan itu mengurangkan kerugian yang tidak perlu.
  3. Garis hentian yang berdekatan dengan purata bergerak atau kebelakangnya, boleh menghentikan kerugian dengan cepat, mengurangkan pengunduran maksimum.
  4. Tetapan parameter mudah, mudah difahami dan disesuaikan.

Analisis risiko

Strategi ini juga mempunyai risiko yang berpotensi:

  1. Dalam sistem linear, apabila trend berbalik, selalunya terdapat sedikit kemunduran.
  2. Penetapan parameter untuk purata bergerak dan purata jangkauan pergerakan sebenar mempunyai kesan yang besar terhadap prestasi strategi. Jika parameter tidak ditetapkan dengan betul, peluang perdagangan yang terlewatkan atau kerugian yang tidak perlu akan meningkat.
  3. Strategi itu sendiri tidak mengambil kira hubungan antara harga saham dan jumlah dagangan. Ia mungkin menghasilkan beberapa isyarat palsu.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Uji pelbagai jenis purata bergerak untuk mencari parameter purata bergerak yang paling sesuai untuk saham atau jenis tertentu.
  2. Mengoptimumkan parameter kitaran purata bergerak agar lebih sesuai dengan ciri-ciri saham atau jenis yang diperdagangkan.
  3. Mengoptimumkan parameter dalam julat pergerakan purata sebenar, mencari kombinasi parameter yang optimum untuk menyaring getaran tanpa kehilangan trend.
  4. Meningkatkan peraturan penghakiman kuantiti transaksi untuk mengelakkan penembusan yang tidak berkesan.
  5. Uji dan bandingkan pelbagai cara untuk menentukan penyelesaian yang terbaik.

ringkaskan

Strategi trend track moving average secara keseluruhan adalah strategi trend yang sangat mudah dan praktikal. Ia juga mempunyai kesan kawalan risiko yang baik. Walaupun strategi ini tidak mempertimbangkan banyak faktor, parameter dan cara menghentikan kerugian masih perlu diuji dan dioptimumkan dengan teliti, tetapi secara keseluruhannya adalah strategi yang berkesan yang mudah dikuasai dan disesuaikan. Logik perdagangan dan parameter yang mudah membuatnya dapat digunakan secara meluas untuk pelbagai jenis, terutama untuk perdagangan mata wang digital seperti bitcoin.

Kod 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)