Strategi purata bergerak berganda

Penulis:ChaoZhang, Tarikh: 2024-01-17 17:45:45
Tag:

img

Ringkasan

Strategi ini menggunakan purata bergerak berganda, khususnya 8-period dan 21-period. Ia menghasilkan isyarat panjang apabila MA yang lebih pendek melintasi yang lebih lama, dan isyarat pendek apabila MA yang lebih pendek melintasi yang lebih lama.

Strategi ini juga menggabungkan kemiringan garis purata bergerak untuk menapis beberapa tempoh bukan trend dan hanya menghasilkan isyarat apabila trend lebih jelas.

Prinsip-prinsip

Inti strategi ini terletak pada persilangan purata bergerak jangka pendek dan jangka panjang. MA yang lebih pendek dapat menangkap perubahan trend lebih cepat, sementara MA yang lebih lama mempunyai kesan penapisan bunyi yang lebih baik. Penubuhan trend menaik disyorkan apabila MA yang lebih pendek menyeberangi MA yang lebih panjang, yang membawa kepada isyarat panjang; penubuhan trend menurun disyorkan apabila MA yang lebih pendek menyeberangi di bawah MA yang lebih panjang, yang membawa kepada isyarat pendek.

Strategi ini juga menetapkan ambang kemiringan. Hanya apabila kemiringan lebih besar daripada nilai ambang positif, isyarat panjang akan dihasilkan. Hanya apabila kemiringan kurang dari nilai ambang negatif, isyarat pendek akan dihasilkan. Ini membantu menapis zon di mana tidak ada trend yang ketara, menghasilkan isyarat perdagangan yang lebih berkualiti.

Khususnya, logik untuk menjana isyarat perdagangan adalah:

  1. Mengira purata bergerak mudah 8 tempoh dan 21 tempoh
  2. Mengesan isyarat silang antara kedua-dua
  3. Mengira cerun garis purata bergerak 21 tempoh menggunakan fungsi arctangent atan
  4. Hanya menjana isyarat panjang apabila cerun melebihi ambang positif yang ditetapkan
  5. Hanya menjana isyarat pendek apabila cerun jatuh di bawah ambang negatif yang telah ditetapkan

Analisis Kelebihan

Kelebihan strategi ini termasuk:

  1. Idea strategi adalah mudah dan mudah difahami / dilaksanakan
  2. Memasukkan indeks cerun membantu menapis tempoh bukan trend dan meningkatkan kualiti isyarat
  3. Menggunakan purata bergerak berganda membolehkan kedua-dua memainkan kekuatan mereka, meningkatkan ketahanan
  4. Parameter boleh diselaraskan sesuai dengan instrumen dagangan yang berbeza
  5. Pelaksanaan program yang mudah memudahkan pengoptimuman lanjut

Analisis Risiko

Beberapa risiko juga wujud dengan strategi ini:

  1. Lebih banyak isyarat palsu boleh berlaku semasa turun naik pasaran yang ganas
  2. Crossover sendiri cenderung menghasilkan beberapa isyarat palsu
  3. Terdapat beberapa tahap kelewatan, tidak dapat menangkap pembalikan trend dengan serta-merta

Beberapa cara untuk mengoptimumkan berdasarkan risiko ini:

  1. Penyesuaian parameter MA untuk menyesuaikan ciri pasaran
  2. Mengoptimumkan ambang cerun untuk meningkatkan ketahanan
  3. Tambah mekanisme stop loss untuk mengawal kerugian tunggal
  4. Masukkan penunjuk lain untuk menapis isyarat
  5. Menggunakan tetapan parameter penyesuaian untuk meningkatkan ketahanan

Arahan pengoptimuman

Beberapa arah untuk mengoptimumkan strategi:

  1. Menggunakan MA adaptif, menyesuaikan parameter berdasarkan turun naik
  2. Memasukkan analisis jumlah untuk mengelakkan kesilapan semasa penyatuan
  3. Tambah indeks turun naik untuk meningkatkan kualiti dan ketepatan masa
  4. Tambah pembelajaran mesin untuk pengoptimuman parameter automatik
  5. Memanfaatkan pembelajaran mendalam untuk mendedahkan corak bukan linear yang lebih kompleks

Kesimpulan

Ringkasnya, strategi MA berganda ini mudah dan praktikal. Dengan menangkap ciri-ciri trend yang berbeza melalui dua parameter tempoh dan menggabungkannya untuk menghasilkan isyarat perdagangan. Sementara itu, menggabungkan ambang cerun meningkatkan kualiti isyarat. Strategi ini boleh berfungsi sebagai asas untuk pelanjutan, dengan ruang pengoptimuman yang banyak dan potensi.


/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//written by sixpathssenin
//@version=4
strategy(title="Dual Moving Average",initial_capital=10000,overlay=true)

ma1= sma(close,8)
ma2= sma(close,21)

angleCriteria = input(title="Angle", type=input.integer, defval=7, minval=1, maxval=13)

i_lookback   = input(2,     "Angle Period", input.integer, minval = 1)
i_atrPeriod  = input(10,    "ATR Period",   input.integer, minval = 1)
i_angleLevel = input(6,     "Angle Level",  input.integer, minval = 1)
i_maSource   = input(close, "MA Source",    input.source)

f_angle(_src, _lookback, _atrPeriod) =>
    rad2degree = 180 / 3.141592653589793238462643  //pi 
    ang = rad2degree * atan((_src[0] - _src[_lookback]) / atr(_atrPeriod)/_lookback)
    ang
_angle = f_angle(ma2, i_lookback, i_atrPeriod)

plot(ma1,color=#FF0000)
plot(ma2,color=#00FF00)

crosso=crossover(ma1,ma2) 
crossu=crossunder(ma1,ma2)

_lookback = 15

f_somethingHappened(_cond, _lookback) =>
    bool _crossed = false
    for i = 1 to _lookback
        if _cond[i]
            _crossed := true
    _crossed
    
longcrossed = f_somethingHappened(crosso,_lookback)
shortcrossed = f_somethingHappened(crossu,_lookback)

long = longcrossed and _angle > angleCriteria
short= shortcrossed and _angle < -(angleCriteria)


if(long)
    strategy.entry("Long",strategy.long)
if(short)
    strategy.entry("short",strategy.short)
    


Lebih lanjut