Kombo Pembalikan Momentum Dual-Rail Strategi Pemadan

Penulis:ChaoZhang, Tarikh: 2023-11-24 10:17:15
Tag:

img

Ringkasan

Strategi ini menggabungkan beberapa penunjuk teknikal untuk melaksanakan pembalikan momentum dan pencocokan dua rel untuk menjana isyarat perdagangan. Strategi ini menggunakan corak 123 untuk menentukan titik pembalikan dan sepadan isyarat dengan penunjuk CSI ergodik untuk mengesan trend.

Prinsip-prinsip

Strategi ini mengandungi dua bahagian:

  1. 123 corak untuk menentukan titik pembalikan
  2. Penunjuk CSI ergodik untuk menjana isyarat yang sepadan

Corak 123 menilai pembalikan harga berdasarkan harga penutupan 3 bar baru-baru ini. Jika harga penutupan bar ke-3 meningkat berbanding 2 bar sebelumnya, dan kedua-dua stok cepat dan perlahan berada di bawah 50, ia adalah isyarat beli. Jika harga penutupan bar ke-3 jatuh berbanding 2 bar sebelumnya, dan kedua-dua stok cepat dan perlahan berada di atas 50, ia adalah isyarat jual.

Indikator CSI ergodik mempertimbangkan pelbagai faktor seperti harga, julat sebenar, penunjuk trend untuk menentukan keadaan pasaran secara komprehensif dan menjana zon beli / jual. Apabila indikator naik di atas zon beli, ia menghasilkan isyarat beli. Apabila indikator jatuh di bawah zon jual, ia menghasilkan isyarat jual.

Akhirnya, isyarat pembalikan dari isyarat corak 123 dan zon dari CSI ergodik adalah ANDed untuk menghasilkan isyarat strategi akhir.

Kelebihan

  1. Mencatatkan trend jangka sederhana dan pendek, potensi keuntungan yang tinggi
  2. Penentuan corak pembalikan secara berkesan menangkap titik perubahan
  3. Pemadan dua rel mengurangkan isyarat palsu

Risiko

  1. Saham individu boleh berlainan, yang membawa kepada stop loss
  2. Corak pembalikan yang terdedah kepada kesan dari pasaran terhad julat
  3. Ruang pengoptimuman parameter terhad, turun naik prestasi tinggi

Arahan pengoptimuman

  1. Mengoptimumkan parameter untuk meningkatkan keuntungan strategi
  2. Tambah logik stop loss untuk mengurangkan kerugian perdagangan tunggal
  3. Menggabungkan model pelbagai faktor untuk meningkatkan pemilihan stok

Kesimpulan

Strategi ini secara berkesan mengesan trend jangka pendek dan sederhana dengan menggabungkan corak pembalikan dan pencocokan dua rel. Berbanding dengan penunjuk teknikal tunggal, ia mempunyai kestabilan dan tahap keuntungan yang lebih tinggi. Langkah seterusnya adalah untuk mengoptimumkan parameter, menambah modul stop loss dan pemilihan stok untuk mengurangkan pengeluaran dan meningkatkan prestasi keseluruhan.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/07/2020
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// This is one of the techniques described by William Blau in his book 
// "Momentum, Direction and Divergence" (1995). If you like to learn more, 
// we advise you to read this book. His book focuses on three key aspects 
// of trading: momentum, direction and divergence. Blau, who was an electrical 
// engineer before becoming a trader, thoroughly examines the relationship between 
// price and momentum in step-by-step examples. From this grounding, he then looks 
// at the deficiencies in other oscillators and introduces some innovative techniques, 
// including a fresh twist on Stochastics. On directional issues, he analyzes the 
// intricacies of ADX and offers a unique approach to help define trending and 
// non-trending periods.
// This indicator plots Ergotic CSI and smoothed Ergotic CSI to filter out noise. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

fADX(Len) =>
    up = change(high)
    down = -change(low)
    trur = rma(tr, Len)
    plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, Len) / trur)
    minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, Len) / trur)
    sum = plus + minus 
    100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), Len)

ECSI(r,Length,BigPointValue,SmthLen,SellZone,BuyZone) =>
    pos = 0
    source = close
    K = 100 * (BigPointValue / sqrt(r) / (150 + 5))
    xTrueRange = atr(1) 
    xADX = fADX(Length)
    xADXR = (xADX + xADX[1]) * 0.5
    nRes = iff(Length + xTrueRange > 0, K * xADXR * xTrueRange / Length,0)
    xCSI = iff(close > 0,  nRes / close, 0)
    xSMA_CSI = sma(xCSI, SmthLen)
    pos := iff(xSMA_CSI > BuyZone, 1,
             iff(xSMA_CSI <= SellZone, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Ergodic CSI", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
r = input(32, minval=1)
LengthECSI = input(1, minval=1)
BigPointValue = input(1.0, minval=0.00001)
SmthLen = input(5, minval=1)
SellZone = input(0.06, minval=0.00001)
BuyZone = input(0.02, minval=0.001)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posECSI = ECSI(r,LengthECSI,BigPointValue,SmthLen,SellZone,BuyZone)
pos = iff(posReversal123 == 1 and posECSI == 1 , 1,
	   iff(posReversal123 == -1 and posECSI == -1, -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)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Lebih lanjut