
Strategi ini menggabungkan dua indikator: Moving Average Line Reversal dan Price Vibration Indicator untuk membentuk sinyal perdagangan, yang memungkinkan strategi perdagangan tren untuk menangkap rebound setelah terjadi siklus reversal.
Strategi ini menggunakan dua indikator teknis untuk menilai sinyal perdagangan:
Bagian ini menghasilkan sinyal beli ketika harga terus meningkat selama dua hari terakhir dan nilai K garis cepat lebih rendah dari nilai K garis lambat; menghasilkan sinyal jual ketika harga terus turun selama dua hari terakhir dan nilai K garis cepat lebih tinggi dari nilai K garis lambat.
Indikator Detrend Price Oscillator mengidentifikasi siklus harga dengan memetakan rata-rata bergerak horizontal dan mengidentifikasi siklus harga berdasarkan hubungan harga dengan garis tersebut. Ini menyaring tren yang lebih lama dari siklus yang dihitung, sehingga dapat mengidentifikasi fluktuasi periode pendek yang disembunyikan oleh rata-rata bergerak.
Strategi ini menggabungkan sinyal dari dua indikator, yaitu ketika ada sinyal reversal Moving Average Line, dan pada saat yang sama indikator harga lepas dari harga juga memberikan sinyal reversal yang dikonfirmasi, maka instruksi perdagangan dihasilkan. Dengan demikian, Anda dapat menyaring beberapa sinyal reversal yang tidak efektif, dan menangkap peluang tren untuk bangkit setelah reversal.
Keuntungan terbesar dari strategi ini adalah memanfaatkan kedua indikator secara rasional, melakukan konfirmasi yang saling melengkapi, dapat secara efektif memfilter sinyal yang tidak efektif, meningkatkan keandalan sinyal.
Indikator reversal Moving Average Line sendiri mudah menghasilkan sinyal yang salah, hanya mengandalkannya untuk menilai, mudah mengejar naik dan turun. Sedangkan pengenalan indikator harga yang terpisah dari kombinasi dapat menghindari operasi reversal di zona getaran yang tidak ideal.
Pengaturan parameter harga yang terpisah dari indikator juga menentukan bahwa itu hanya mengidentifikasi pergerakan dengan periode yang lebih pendek, sehingga sangat sesuai dengan keputusan pembalikan rata-rata bergerak, yang dapat mengidentifikasi waktu pembalikan yang wajar.
Strategi ini memiliki risiko utama sebagai berikut:
Peralihan garis rata-rata bergerak mudah terjadi di antara zona getaran. Jika resonansi tidak cukup, mudah untuk kembali menyetel lagi dan menyentuh garis stop loss, tidak dapat menghasilkan keuntungan.
Parameter yang diatur terlalu besar untuk harga deviasi indikator akan mengidentifikasi tren siklus garis tengah panjang; terlalu kecil akan meningkatkan risiko kesalahan penilaian. Perlu tes hati-hati untuk varietas yang berbeda.
Kejadian berita besar yang terjadi dapat mengganggu penilaian tren yang sudah ada dan menyebabkan sinyal pembalikan tidak berfungsi. Hal ini memerlukan perhatian pada berita dasar dan menghindari perdagangan buta saat kejadian berita terjadi.
Strategi ini dapat dioptimalkan lebih lanjut dengan:
Pengaturan yang masuk akal dari stop loss bergerak atau stop loss waktu, dapat mengontrol kerugian satu kali.
Meningkatkan konfirmasi volume transaksi, misalnya, hanya mengirimkan sinyal ketika volume transaksi rata-rata terobosan, dapat mencegah terobosan tidak efektif dengan kapasitas volume yang tidak mencukupi.
Optimalkan parameter secara dinamis sesuai dengan tahap pasar, perbaiki parameter dengan tepat saat tren jelas, dan kencangkan parameter saat goncangan.
Menggunakan metode pembelajaran mesin seperti hutan acak untuk mengevaluasi dan memilih kombinasi parameter, untuk mengoptimalkan kecerdasan dinamis.
Strategi ini menggabungkan keunggulan dari kedua indikator dengan baik, menangkap tren rebound di titik balik. Meskipun masih ada masalah seperti penyesuaian, optimasi parameter, dan lain-lain, ide keseluruhan jelas, logis, dan layak untuk diuji dan dioptimalkan lebih lanjut, untuk mencapai keuntungan yang stabil.
/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 30/12/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
// The Detrend Price Osc indicator is similar to a moving average,
// in that it filters out trends in prices to more easily identify
// cycles. The indicator is an attempt to define cycles in a trend
// by drawing a moving average as a horizontal straight line and
// placing prices along the line according to their relation to a
// moving average. It provides a means of identifying underlying
// cycles not apparent when the moving average is viewed within a
// price chart. Cycles of a longer duration than the Length (number
// of bars used to calculate the Detrend Price Osc) are effectively
// filtered or removed by the oscillator.
//
// 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
DPO(Length) =>
pos = 0.0
xPrice = close
xsma = sma(xPrice, Length)
nRes = xPrice - xsma
pos := iff(nRes > 0, 1,
iff(nRes < 0, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Detrended Price Oscillator", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDPO = input(14, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDPO = DPO(LengthDPO)
pos = iff(posReversal123 == 1 and posDPO == 1 , 1,
iff(posReversal123 == -1 and posDPO == -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 )