Osilator Momentum & Strategi corak 123

Penulis:ChaoZhang, Tarikh: 2024-01-25 14:27:29
Tag:

img

Ringkasan

Strategi ini menggabungkan Indeks Osilator Momentum dan corak 123 ke dalam isyarat perdagangan kumulatif untuk meningkatkan keuntungan. Osilator Momentum mengesan turun naik pasaran dan menyesuaikan parameter RSI untuk menangkap trend jangka pendek. Corak 123 membentuk isyarat perdagangan dengan mengenal pasti harga yang lebih tinggi dan lebih rendah dalam jangka pendek. Gabungan kedua-dua strategi membolehkan strategi untuk mengekalkan prestasi di pelbagai persekitaran pasaran.

Logika Strategi

123 corak

Pattern 123 terdiri daripada tiga peringkat. Pertama, harga menurun selama dua hari berturut-turut. Kedua, harga meningkat selama dua hari berikutnya. Akhirnya, harga menurun lagi pada hari ketiga. Menurut corak ini, kita boleh menentukan untuk menubuhkan kedudukan panjang apabila harga meningkat pada peringkat kedua, dan kedudukan pendek apabila harga jatuh kembali pada peringkat ketiga.

Secara khusus, jika harga penutupan lebih tinggi daripada penutupan sebelumnya selama dua hari berturut-turut selepas dua hari penurunan, dan 9-hari Stochastic Slow di bawah 50, ia adalah isyarat beli.

Osilator Momentum

Momentum Oscillator dibina sama dengan RSI, dengan perbezaan utama adalah tempoh berubah-ubah dari momentum oscillator. Bilangan tempoh bergantung kepada turun naik harga baru-baru ini - turun naik yang lebih tinggi membawa kepada tempoh yang lebih pendek, menjadikan penunjuk lebih sensitif, sementara harga yang stabil membawa kepada tempoh yang lebih lama untuk mengurangkan isyarat palsu.

Formula pengiraan adalah:

DMI = RSI(DTime)  

Where:  
DTime = 14 / 10-day SMA of standard deviation of close over past 5 days

Ia berkongsi ambang yang sama dengan RSI:

Dibeli melebihi: DMI > 30 Penjualan berlebihan: DMI < 70

Isyarat beli dan jual dihasilkan apabila DMI melintasi ambang ini.

Analisis Kelebihan

  1. Corak 123 adalah mudah dan berkesan. Ia menggunakan corak pembalikan jangka pendek untuk memasuki bahagian bawah kecil dan keluar pada bahagian atas kecil, mengelakkan mengambil kedudukan terhadap trend.

  2. Momentum Oscillator lebih sensitif. Tempohnya yang berubah-ubah membolehkannya menyesuaikan diri dengan pasaran dan menangkap titik perubahan tepat pada masanya walaupun semasa turun naik yang tinggi.

  3. Kedua-dua strategi membantu menapis isyarat palsu dengan berkesan. Memeriksa DMI untuk konteks pasaran apabila 123 isyarat berlaku dapat mengurangkan kerugian dari perdagangan terhadap trend.

  4. Menggabungkan kekuatan kedua-dua strategi. Menggunakan DMI sebagai penapis bersama dengan corak 123 sangat meningkatkan kestabilan sistem.

Analisis Risiko

  1. Kedua-dua DMI dan 123 Pattern boleh menghasilkan isyarat palsu apabila harga hanya turun naik sementara dan bukannya membalik.

  2. Frekuensi perdagangan yang berpotensi tinggi. Tempoh DMI yang berubah menjadikannya sangat sensitif terhadap bunyi pasaran. Parameter perlu disesuaikan dengan betul untuk mengawal frekuensi perdagangan.

  3. 123 corak mungkin terlepas peluang trend jangka menengah. ia terutamanya menangkap pembalikan jangka pendek dan tidak dapat mendapat keuntungan secara konsisten dari trend jangka menengah dan panjang.

  4. Perlu untuk mengehadkan perdagangan maksimum. terlalu banyak perdagangan boleh mengakibatkan bayaran komisen yang tinggi dan kos slippage.

Arahan pengoptimuman

  1. Mengoptimumkan parameter DMI. Boleh menguji tempoh RSI yang berbeza, nilai ambang untuk mencari kombinasi terbaik.

  2. Mengoptimumkan penapis corak 123. boleh menguji parameter Stoch yang berbeza atau penapis lain seperti MACD.

  3. Tambahkan mekanisme stop loss. Saiz stop loss yang sesuai membantu mengehadkan penurunan pada perdagangan yang rugi.

  4. Tambah peraturan saiz kedudukan. kuantiti tetap atau saiz kedudukan pecahan tetap meningkatkan kawalan risiko.

Kesimpulan

Strategi ini menggabungkan analisis dari kedua-dua Momentum Oscillator dan 123 Pattern untuk meningkatkan prestasi isyarat perdagangan. Walau bagaimanapun, tidak ada strategi tunggal yang dapat menyesuaikan diri dengan sempurna dengan keadaan pasaran yang berubah. Pelabur harus memberi tumpuan kepada mengawal risiko, sentiasa menguji balik dan mengemas kini parameter berdasarkan hasil langsung supaya keuntungan dapat dikekalkan.


/*backtest
start: 2024-01-17 00:00:00
end: 2024-01-24 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/03/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 indicator plots Dynamic Momentum Index indicator. The Dynamic Momentum 
// Index (DMI) was developed by Tushar Chande and Stanley Kroll. The indicator 
// is covered in detail in their book The New Technical Trader.
// The DMI is identical to Welles Wilder`s Relative Strength Index except the 
// number of periods is variable rather than fixed. The variability of the time 
// periods used in the DMI is controlled by the recent volatility of prices. 
// The more volatile the prices, the more sensitive the DMI is to price changes. 
// In other words, the DMI will use more time periods during quiet markets, and 
// less during active markets. The maximum time periods the DMI can reach is 30 
// and the minimum is 3. This calculation method is similar to the Variable 
// Moving Average, also developed by Tushar Chande.
// The advantage of using a variable length time period when calculating the RSI 
// is that it overcomes the negative effects of smoothing, which often obscure short-term moves.
// The volatility index used in controlling the time periods in the DMI is based 
// on a calculation using a five period standard deviation and a ten period average 
// of the standard deviation.
//
// 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

DMI(RSILen, BuyZone,SellZone,UpLimit,LoLimit) =>
    pos = 0
    xStdDev = stdev(close, 5) 
    xSMAStdDev = sma(xStdDev, 10)
    DTime = round(14 / xSMAStdDev - 0.5)
    xDMI = iff(DTime > UpLimit, UpLimit,
             iff(DTime < LoLimit, LoLimit, DTime))
    xRSI = rsi(xDMI, RSILen)
    pos := iff(xRSI > BuyZone, 1,
             iff(xRSI < SellZone, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Dynamic Momentum Index", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
RSILen = input(14, minval=1)
BuyZone = input(30, minval=1)
SellZone = input(70, minval=1)
UpLimit = input(30, minval=1)
LoLimit = input(5, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDMI = DMI(RSILen, BuyZone,SellZone,UpLimit,LoLimit)
pos = iff(posReversal123 == 1 and posDMI == 1 , 1,
	   iff(posReversal123 == -1 and posDMI == -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