
Strategi ini menggunakan kombinasi indikator momentum CMO dan indikator stochastic reversal untuk mewujudkan model multi-faktor untuk mengeksplorasi peluang perdagangan dalam berbagai kondisi pasar.
Strategi ini terdiri dari dua substrategi:
123 Strategi Pembalasan
Strategi nilai mutlak CMO
Akhirnya, jika kedua sinyal strategi anak sesuai, maka sinyal perdagangan akan dikeluarkan.
Strategi ini memanfaatkan CMO dan Stochastic. CMO lebih baik dalam mengidentifikasi tren dan Stochastic lebih baik dalam menemukan peluang untuk reversal jangka pendek. Keduanya digunakan bersama untuk menemukan peluang perdagangan pada tahap yang berbeda.
Strategi ini memiliki keuntungan sebagai berikut:
Model multi-faktor, yang menggabungkan momentum dan reversibilitas, dapat beradaptasi dengan lingkungan pasar yang berbeda
CMO memiliki kemampuan untuk mengidentifikasi tren, Stochastic menilai titik balik dengan akurat
Perdagangan hanya jika dua sinyal cocok, menghindari sinyal salah, meningkatkan probabilitas keuntungan
Optimasi parameter yang luas, dapat disesuaikan untuk varietas dan siklus yang berbeda
Menggunakan indikator jangka panjang dan jangka pendek untuk menemukan lebih banyak peluang perdagangan
Peraturan yang sederhana, jelas, mudah dipahami, dan cocok untuk perdagangan algoritmik
Strategi ini juga memiliki risiko sebagai berikut:
Probabilitas bahwa substrategi akan mengirimkan sinyal yang salah, parameter yang perlu dioptimalkan
Kejadian tak terduga menyebabkan pergeseran tren, yang menghasilkan kerugian lebih besar
Frekuensi transaksi mungkin terlalu tinggi, dan biaya transaksi adalah faktor yang perlu dipertimbangkan
Strategi anak adalah indikator keterlambatan, ada masalah keterlambatan waktu
Perlu menyesuaikan parameter untuk varietas yang berbeda, persyaratan optimasi parameter yang lebih tinggi
Tanggapan:
Optimasi parameter substrategi untuk mengurangi kemungkinan sinyal yang salah
Pengaturan Stop Loss, Kontrol Kerugian Tunggal
Adapun kondisi pembukaan posisi, mengurangi frekuensi transaksi.
Menggunakan data tick real-time untuk mengurangi lag
Parameter yang dioptimalkan secara otomatis menggunakan metode pembelajaran mesin
Strategi ini dapat dioptimalkan dengan:
Masukkan lebih banyak faktor seperti volatilitas, kuantitas, dan lain-lain untuk membentuk model multi-faktor yang sistematis
Membangun mekanisme optimasi parameter dinamis, menyesuaikan parameter sesuai dengan kondisi pasar
Mengoptimalkan logika pembukaan posisi, memperkenalkan probabilitas, dan metode penyejukan indeks
Menjaga posisi jangka panjang dalam jangka pendek untuk mencapai tujuan ganda
Menggunakan Deep Learning untuk Menggali Lebih Banyak Fitur dan Menciptakan Aturan Transaksi Non-Linear
Menjelajahi model tanpa parameter, menghindari bias yang disebabkan oleh parameter seleksi buatan
Menggabungkan data frekuensi tinggi, berita, dan mengurangi keterlambatan sinyal
Strategi ini menggunakan indikator momentum CMO dan indikator stochastic reversal, untuk mewujudkan model multi-faktor, untuk mengeksplorasi lebih banyak peluang perdagangan di pasar traversal. Dibandingkan dengan indikator tunggal, kombinasi multi-faktor dapat beradaptasi dengan lingkungan pasar yang lebih kompleks.
/*backtest
start: 2023-09-22 00:00:00
end: 2023-10-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 17/09/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 the absolute value of CMO. CMO was developed by Tushar
// Chande. A scientist, an inventor, and a respected trading system developer,
// Mr. Chande developed the CMO to capture what he calls "pure momentum". For
// more definitive information on the CMO and other indicators we recommend the
// book The New Technical Trader by Tushar Chande and Stanley Kroll.
// 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
CMOabs(Length, TopBand, LowBand) =>
pos = 0
xMom = abs(close - close[1])
xSMA_mom = sma(xMom, Length)
xMomLength = close - close[Length]
nRes = abs(100 * (xMomLength / (xSMA_mom * Length)))
pos := iff(nRes > TopBand, -1,
iff(nRes < LowBand, 1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & CMOabs", 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(9, minval=1)
TopBand = input(70, minval=1)
LowBand = input(20, maxval=0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCMOabs = CMOabs(LengthCMO, TopBand, LowBand)
pos = iff(posReversal123 == 1 and posCMOabs == 1 , 1,
iff(posReversal123 == -1 and posCMOabs == -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 )