Strategi Kuantum CMO Pembalikan Ganda

Penulis:ChaoZhang, Tarikh: 2024-01-04 14:35:23
Tag:

img

Ringkasan

Strategi ini adalah strategi pembalikan berganda, menggabungkan penunjuk pembalikan 123 dan penunjuk kuantum CMOWMA untuk mencapai pengesahan ganda isyarat pembalikan harga dengan kesan visual K-line merah dan hijau.

Prinsip Strategi

Strategi ini terdiri daripada dua bahagian:

  1. 123 Penunjuk Pembalikan

    • Gunakan harga penutupan berbanding harga penutupan sebelumnya untuk menentukan harga naik atau turun
    • Gunakan indikator Stochastics garis cepat dan garis perlahan silang untuk mengesahkan isyarat pembalikan
    • Menghasilkan isyarat panjang atau pendek apabila syarat dipenuhi
  2. Penunjuk Kuantum CMOWMA

    • Menggunakan penunjuk CMO untuk mengukur momentum harga
    • Menggunakan purata bergerak tertimbang WMA kepada penunjuk SCO
    • Lihat panjang (pendek) apabila CMO di atas (di bawah WMA)

Masukkan kedudukan apabila kedua-dua bahagian memberi isyarat ke arah yang sama.

Kelebihan Strategi

  1. Mekanisme pengesahan berganda boleh menapis pemotongan palsu dan mengurangkan kedudukan yang tidak perlu
  2. Warna K-line merah dan hijau menghasilkan kesan visual untuk menilai keadaan pasaran dengan mudah
  3. Gabungan penunjuk pembalikan dan momentum memberikan kestabilan keseluruhan
  4. Tetapan parameter mudah menjadikannya sesuai untuk pelbagai produk dan mudah dilaksanakan

Risiko Strategi

  1. Harga boleh berbalik lagi selepas pembalikan awal, dengan risiko whipsaws
  2. Pertukaran kedudukan yang kerap menghasilkan bayaran dagangan yang berlebihan
  3. Tetapan parameter yang tidak betul boleh menyebabkan terlalu banyak atau terlalu sedikit isyarat
  4. Parameter KMO perlu diselaraskan berdasarkan ciri produk

Risiko boleh dikurangkan dengan melonggarkan keadaan pembalikan, meningkatkan tempoh penahan, mengoptimumkan kombinasi parameter dan lain-lain.

Arahan pengoptimuman

  1. Kesan ujian parameter Stochastic yang berbeza
  2. Mengganti/menambah pengesahan dengan penunjuk lain seperti MACD, KDJ dll.
  3. Pengoptimuman ujian panjang CMO dan WMA yang berbeza
  4. Cuba menambah stop loss / mengambil keuntungan pada tahap tertentu
  5. Tetapkan penapis untuk mengawal kekerapan kedudukan baru

Ringkasan

Strategi ini secara keseluruhan kukuh dengan parameter yang mudah, mudah dilaksanakan, menggabungkan pembalikan harga dan penunjuk momentum untuk membentuk mekanisme penapisan isyarat dua yang berkesan untuk menghapuskan isyarat palsu. Warna K-line menyediakan visual yang intuitif. Penambahbaikan prestasi lanjut boleh datang dari pengoptimuman parameter dan kawalan risiko.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 19/08/2019
// 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 indicator plots Chandre Momentum Oscillator and its WMA on the 
//    same chart. This indicator plots the absolute value of CMO.
//    The CMO is closely related to, yet unique from, other momentum oriented 
//    indicators such as Relative Strength Index, Stochastic, Rate-of-Change, 
//    etc. It is most closely related to Welles Wilder?s RSI, yet it differs 
//    in several ways:
//    - It uses data for both up days and down days in the numerator, thereby 
//        directly measuring momentum;
//    - The calculations are applied on unsmoothed data. Therefore, short-term 
//        extreme movements in price are not hidden. Once calculated, smoothing 
//        can be applied to the CMO, if desired;
//    - The scale is bounded between +100 and -100, thereby allowing you to clearly 
//        see changes in net momentum using the 0 level. The bounded scale also allows 
//        you to conveniently compare values across different securities.
//
// 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

CMOWMA(Length, LengthWMA) =>
    pos = 0
    xMom = abs(close - close[1])
    xSMA_mom = sma(xMom, Length)
    xMomLength = close - close[Length]
    nRes = 100 * (xMomLength / (xSMA_mom * Length))
    xWMACMO = wma(nRes, LengthWMA)
    pos := iff(nRes > xWMACMO, 1,
    	   iff(nRes <= xWMACMO, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & CMO & WMA", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthCMO = input(14, minval=1)
LengthWMA = input(13, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCMOWMA = CMOWMA(LengthCMO, LengthWMA)
pos = iff(posReversal123 == 1 and posCMOWMA == 1 , 1,
	   iff(posReversal123 == -1 and posCMOWMA == -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