Strategi Penunjuk Purata Bergerak

Penulis:ChaoZhang, Tarikh: 2024-02-26 11:10:23
Tag:

img

Ringkasan

Strategi Penunjuk Purata Bergerak adalah strategi perdagangan kuantitatif yang menilai trend pasaran berdasarkan purata bergerak dan menjalankan operasi kedudukan panjang atau pendek. Dengan mengira harga penutupan purata dalam tempoh masa, strategi ini menentukan sama ada pasaran terlalu banyak dibeli atau terlalu banyak dijual untuk menangkap peluang pembalikan harga.

Prinsip Strategi

Indikator teras strategi ini adalah Stochastic Oscillator. Kaedah penghitungannya adalah:

Low = the lowest low of the most recent N days  
High = the highest high of the most recent N days
K value = (Current close – Low)/(High – Low)*100

Di mana N adalah panjang Length. Penunjuk ini kira-kira mencerminkan kedudukan harga penutupan semasa berbanding dengan julat harga selama N hari terakhir.

Apabila nilai K lebih besar daripada garis overbought (BuyBand), ia menunjukkan bahawa stok mungkin overbought dan callback akan berlaku. Apabila nilai K kurang daripada garis oversold (SellBand), ia menunjukkan bahawa stok mungkin oversold dan rebound akan berlaku.

Menurut peraturan penilaian ini, strategi akan menjual untuk membuka kedudukan di zon overbought dan membeli untuk membuka kedudukan di zon oversold. Syarat penutupan adalah bahawa garis penunjuk kembali memasuki zon perantara ((SellBand, BuyBand)).

Analisis Kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Menggunakan penunjuk purata bergerak untuk menentukan trend pasaran, hasil backtesting yang baik, mudah untuk membentuk isyarat perdagangan
  2. Fleksibel untuk menyesuaikan diri dengan kitaran dan jenis yang berbeza dengan menyesuaikan parameter
  3. Idea strategi adalah mudah dan jelas, mudah difahami dan optimum

Analisis Risiko

Strategi ini juga menimbulkan beberapa risiko:

  1. Purata bergerak cenderung untuk sentuhan palsu, mungkin "whipsawed
  2. Tetapan parameter yang tidak betul boleh membawa kepada perdagangan yang kerap atau isyarat yang tidak jelas
  3. Hanya satu penunjuk yang dipertimbangkan, ruang pengoptimuman terhad

Risiko ini boleh dikurangkan dengan mengoptimumkan parameter penunjuk dengan sewajarnya atau menambah keadaan penapis.

Arahan pengoptimuman

Aspek utama yang boleh dioptimumkan strategi ini termasuk:

  1. Tambah jumlah atau ATR dan penunjuk lain untuk memastikan isyarat perdagangan yang lebih boleh dipercayai
  2. Tambah penunjuk Stoch pelbagai kitaran, menjana isyarat melalui operasi komposit
  3. Meningkatkan penunjuk penilaian tambahan seperti MACD dan KDJ untuk mencapai pengumpulan pelbagai penunjuk
  4. Melalui dan mengoptimumkan jenis perdagangan, kitaran, parameter untuk mencari konfigurasi yang optimum

Kesimpulan

Idea keseluruhan strategi penunjuk purata bergerak adalah mudah dan digunakan secara meluas dengan hasil backtesting yang agak stabil, menjadikannya sesuai sebagai strategi perdagangan kuantitatif pemula. Walau bagaimanapun, strategi ini mempunyai ruang pengoptimuman yang terhad kerana ia mempertimbangkan faktor yang terhad dan hanya sesuai untuk operasi jangka pendek.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/09/2017
// Simple Overbought/Oversold indicator
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Overbought/Oversold", shorttitle="OB/OS")
Length = input(10, minval=1)
BuyBand = input(0.92, step = 0.01)
SellBand = input(0.5, step = 0.01)
reverse = input(false, title="Trade reverse")
hline(BuyBand, color=green, linestyle=line)
hline(SellBand, color=red, linestyle=line)
xOBOS = stoch(close, high, low, Length)
nRes = iff(close > close[Length], xOBOS / 100, (100 - xOBOS) / 100)
pos = iff(nRes < SellBand, -1,
	   iff(nRes > BuyBand, 1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(nRes, color=blue, title="OB/OS")

Lebih lanjut