Pusat Graviti Backtesting Strategi Dagangan

Penulis:ChaoZhang, Tarikh: 2023-12-12 16:56:51
Tag:

img

Ringkasan

Pusat Graviti strategi perdagangan backtesting adalah strategi perdagangan berdasarkan purata bergerak. Ia mengira center harga, iaitu kedudukan pusat graviti, dan membina saluran harga sebagai koridor untuk sebut harga aset. Strategi boleh berubah panjang ke pendek dalam Tetapan Masukan.

Prinsip Strategi

Strategi ini mengira kedudukan pusat graviti melalui fungsi regresi linear. Secara khusus, ia mengira nilai regresi linear harga penutupan dalam tempoh Panjang, yang merupakan center harga. Saluran harga kemudiannya dibina dengan bergerak ke atas dan ke bawah Persen% atas asas ini. Batas atas dan bawah saluran harga berfungsi sebagai isyarat panjang dan pendek masing-masing. Apabila harga memecahkan rel atas, pergi panjang; apabila harga memecahkan rel bawah, pergi pendek. Parameter SignalLine digunakan untuk memilih sama ada menggunakan saluran pertama atau saluran kedua rel atas dan bawah sebagai isyarat perdagangan. Parameter terbalik digunakan untuk membalikkan panjang dan pendek.

Analisis Kelebihan

Ini adalah strategi keluar yang sangat mudah dengan kelebihan utama berikut:

  1. Idea ini jelas dan mudah difahami dan dilaksanakan.
  2. Hasil backtest yang baik dengan kelayakan praktikal tertentu.
  3. Tetapan parameter yang fleksibel untuk menyesuaikan diri dengan persekitaran pasaran yang berbeza.
  4. Perdagangan pembalikan yang boleh dikonfigurasikan, sesuai untuk operasi dua hala.

Analisis Risiko

Strategi ini juga mempunyai beberapa risiko:

  1. Mungkin ada risiko overfit dalam proses backtest. Parameter perlu dioptimumkan semula untuk perdagangan langsung.
  2. Kegagalan melarikan diri boleh membawa kepada kerugian besar.
  3. Frekuensi dagangan mungkin agak tinggi, jadi nisbah penggunaan modal perlu dikawal.

Risiko boleh dikawal dengan menyesuaikan parameter seperti Band, Panjang, dll. Stop loss juga boleh ditetapkan untuk mengehadkan kerugian maksimum.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan lagi dengan cara berikut:

  1. Gabungkan dengan penunjuk trend untuk menapis isyarat dan mengelakkan perdagangan terhadap trend.
  2. Tambahkan mekanisme stop loss.
  3. Mengoptimumkan tetapan parameter untuk meningkatkan nisbah keuntungan.
  4. Tambah kawalan kedudukan untuk mengurangkan risiko.

Ringkasan

Strategi perdagangan backtesting Pusat Graviti adalah strategi breakout yang mudah. Ia mempunyai logika yang jelas, kelayakan yang baik, dan tetapan parameter yang fleksibel. Pada masa yang sama, terdapat juga risiko tertentu yang perlu dioptimumkan dan dikawal dengan betul. Strategi ini sesuai sebagai strategi asas untuk perdagangan langsung dan pengoptimuman, dan juga sangat sesuai untuk pemula untuk belajar.


/*backtest
start: 2023-11-11 00:00:00
end: 2023-12-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/03/2018
// The indicator is based on moving averages. On the basis of these, the 
// "center" of the price is calculated, and price channels are also constructed, 
// which act as corridors for the asset quotations.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Center Of Gravity Backtest", shorttitle="CFO", overlay = true)
Length = input(20, minval=1)
m = input(5, minval=0)
Percent = input(1, minval=0)
SignalLine = input(1, minval=1, maxval = 2, title = "Trade from line (1 or 2)")
reverse = input(false, title="Trade reverse")
xLG = linreg(close, Length, m)
xLG1r = xLG + ((close * Percent) / 100)
xLG1s = xLG - ((close * Percent) / 100)
xLG2r = xLG + ((close * Percent) / 100) * 2
xLG2s = xLG - ((close * Percent) / 100) * 2
xSignalR = iff(SignalLine == 1, xLG1r, xLG2r)
xSignalS = iff(SignalLine == 1, xLG1s, xLG2s)
pos = iff(close > xSignalR, 1,
       iff(close < xSignalS, -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(xLG, color=blue, title="CFO")
plot(xLG1r, color=green, title="LG1r")
plot(xLG2r, color=green, title="LG2r")
plot(xLG1s, color=red, title="LG1s")
plot(xLG2s, color=red, title="LG2s")

Lebih lanjut