Strategi Pembalikan Siklus Mengikuti Trend Selepas Pullback

Penulis:ChaoZhang, Tarikh: 2023-11-15 17:13:18
Tag:

img

Ringkasan

Strategi ini menggabungkan dua penunjuk: pembalikan purata bergerak dan pengayun harga untuk menjana isyarat perdagangan dan menangkap trend pemulihan selepas pembalikan kitaran.

Prinsip-prinsip

Strategi ini terutamanya menggunakan dua penunjuk teknikal berikut untuk penilaian isyarat perdagangan:

  1. Pembalikan purata bergerak

    Ia mengira trend kenaikan atau penurunan harga dalam dua hari yang lalu digabungkan dengan nilai garisan pantas K untuk menentukan sama ada isyarat pembalikan berlaku. Apabila harga terus meningkat dalam dua hari yang lalu dan nilai garisan pantas K lebih rendah daripada nilai garisan perlahan K, isyarat beli dihasilkan. Apabila harga terus jatuh dalam dua hari yang lalu dan nilai garisan pantas K lebih tinggi daripada nilai garisan perlahan K, isyarat jual dihasilkan.

  2. Harga Detrend Oscillator

    Detrend Price Oscillator menarik garis purata bergerak mendatar dan mengenal pasti kitaran harga berdasarkan hubungan antara harga dan garis. Ia menapis trend yang lebih lama daripada tempoh pengiraan, sehingga mendedahkan turun naik jangka pendek yang tersembunyi. Apabila harga di atas garis purata bergerak, ia adalah isyarat beli. Apabila harga di bawah garis, ia adalah isyarat jual.

Strategi ini menggabungkan isyarat kedua-dua penunjuk. iaitu, apabila isyarat pembalikan purata bergerak muncul dan osilator penurunan harga juga memberikan isyarat pembalikan pengesahan, pesanan dagangan dihasilkan. Ini dapat menapis beberapa isyarat pembalikan yang tidak sah dan menangkap trend pemulihan selepas pembalikan.

Kelebihan

Kelebihan terbesar strategi ini adalah bahawa ia menggunakan kekuatan kedua-dua penunjuk untuk pengesahan pelengkap, yang dapat menapis isyarat yang tidak sah dengan berkesan dan meningkatkan kebolehpercayaan isyarat.

Indikator pembalikan purata bergerak sendiri cenderung menghasilkan isyarat palsu. Bergantung semata-mata padanya untuk penilaian cenderung mengejar puncak dan memukul bahagian bawah. Pengenalan pengayun harga detrend untuk kombinasi dapat mengelakkan operasi pembalikan di zon osilasi yang tidak ideal.

Tetapan parameter pengayun harga juga menentukan bahawa ia hanya mengenal pasti turun naik jangka pendek, yang sangat sesuai dengan penghakiman pembalikan purata bergerak dan dapat mengenal pasti masa pembalikan yang munasabah.

Risiko

Risiko utama strategi ini termasuk:

  1. Momentum rebound yang tidak mencukupi, cenderung terperangkap

Pembalikan purata bergerak cenderung berlaku dalam julat sisi. Jika momentum rebound tidak mencukupi, ia cenderung untuk memanggil balik dan menyentuh stop loss lagi, gagal untuk mendapat keuntungan.

  1. Tetapan parameter yang tidak betul

Jika parameter pengayun trend harga ditetapkan terlalu besar, ia akan mengenal pasti trend jangka menengah dan panjang; jika terlalu kecil, ia akan meningkatkan risiko penilaian yang salah.

  1. Kegagalan pembalikan disebabkan oleh peristiwa tiba-tiba

Peristiwa berita utama boleh mengganggu penilaian trend yang sedia ada, mengakibatkan kegagalan isyarat pembalikan.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan lagi dalam aspek berikut:

  1. Tambahkan mekanisme stop loss

Tetapkan stop loss atau time stop loss dengan munasabah untuk mengawal loss tunggal.

  1. Gabungkan dengan penunjuk jumlah

Tambah pengesahan jumlah, seperti mengeluarkan isyarat hanya apabila memecahkan jumlah purata, untuk mengelakkan terobosan yang tidak berkesan kerana momentum yang tidak mencukupi.

  1. Pengoptimuman parameter dinamik

Mengoptimumkan parameter secara dinamik mengikut keadaan pasaran, melonggarkan parameter dengan sewajarnya semasa trend yang jelas, dan mengetatkan parameter semasa penyatuan.

  1. Menggunakan kaedah pembelajaran mesin untuk pengoptimuman dinamik

Gunakan kaedah pembelajaran mesin seperti hutan rawak untuk menilai dan memilih kombinasi parameter untuk mencapai pengoptimuman pintar dinamik.

Ringkasan

Strategi ini menggabungkan kekuatan dua penunjuk dengan munasabah untuk menangkap trend pemulihan pada titik pembalikan. Walaupun masalah seperti terperangkap dan pengoptimuman parameter tetap ada, idea keseluruhan jelas dan logik.


/*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 )

Lebih lanjut