Strategi Kuantum CMO Inversi Ganda


Tanggal Pembuatan: 2024-01-04 14:35:23 Akhirnya memodifikasi: 2024-01-04 14:35:23
menyalin: 0 Jumlah klik: 557
1
fokus pada
1621
Pengikut

Strategi Kuantum CMO Inversi Ganda

Ringkasan

Strategi ini adalah strategi reversal ganda, yang menggabungkan indikator reversal 123 dan indikator kuantum CMOWMA, untuk mencapai konfirmasi ganda dari sinyal reversal harga, dengan efek visual K-line berwarna merah-hijau.

Prinsip Strategi

Strategi ini terdiri dari dua bagian:

  1. 123 Indikator Reversal

    • Peningkatan atau penurunan harga menggunakan hubungan antara ukuran harga penutupan dan harga penutupan kemarin
    • Pembagian garis cepat dan lambat dari indikator Stochastic digunakan untuk mengkonfirmasi sinyal reversal
    • Membuat sinyal over atau under saat memenuhi syarat
  2. Indikator kuantum CMOWMA

    • Mengukur pergerakan harga dengan indikator CMO
    • WMA weighted moving average untuk CMO
    • Indeks CMO lebih tinggi dari (<) WMA yang lebih tinggi (<)

Dua bagian sinyal masuk posisi sinkron.

Keunggulan Strategis

  1. Mekanisme double confirmation yang dapat menyaring monopoli dan mengurangi posisi kosong
  2. Garis K berwarna merah-hijau, membentuk efek visual, mudah untuk menilai kondisi pasar
  3. Stabilitas yang baik secara keseluruhan, menggunakan kombinasi indikator reversal dan momentum
  4. Pengaturan parameter sederhana, cocok untuk berbagai varietas, mudah diterapkan

Risiko Strategis

  1. Kembali ke masa lalu, mungkin kembali lagi, ada risiko tail end
  2. Posisi sering bertukar, menghasilkan biaya transaksi yang berlebihan
  3. Setting parameter yang salah dapat menyebabkan terlalu banyak atau terlalu sedikit sinyal
  4. Parameter CMO perlu disesuaikan dengan karakteristik varietas

Risiko dapat dikurangi dengan cara-cara seperti relaksasi kondisi reversal, peningkatan waktu kepemilikan, dan pengoptimalan kombinasi parameter.

Optimasi Strategi

  1. Dapat menguji pengaruh dari berbagai parameter Stokastik pada efek
  2. Dapat dikombinasikan dengan indikator lain seperti MACD, KDJ dan lain-lain sebagai alternatif atau tambahan konfirmasi
  3. Optimasi yang dapat diuji dengan parameter panjang CMO dan WMA yang berbeda
  4. Anda dapat mencoba menambahkan stop loss pada tingkat tertentu.
  5. Kondisi filter dapat diatur untuk mengontrol frekuensi pembukaan

Meringkaskan

Strategi ini secara keseluruhan solid, parameternya sederhana, mudah diterapkan, dan digabungkan dengan indikator harga reversal dan momentum, membentuk mekanisme penyaringan sinyal ganda yang efektif, dapat menyaring sinyal palsu, dan efek warna K-line yang intuitif. Dengan pengoptimalan parameter dan pengendalian risiko, kinerja strategi dapat ditingkatkan lebih lanjut.

Kode Sumber Strategi
/*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 )