
Strategi ini menggabungkan penunjuk purata bergerak, penunjuk harga, dan penunjuk guncangan untuk membentuk penapis tiga, yang bertujuan untuk menangkap trend garis pendek tengah dan mendapatkan pulangan yang lebih baik dalam keadaan trend.
Strategi ini terdiri daripada tiga bahagian utama:
Membina penapis trend menggunakan purata bergerak indeks 20 hari dan purata bergerak indeks 60 hari. Apabila purata bergerak jangka pendek di atas rata-rata bergerak jangka panjang, ia membentuk isyarat beli; apabila purata bergerak jangka pendek di bawah rata-rata bergerak jangka panjang, ia membentuk isyarat jual.
Menggunakan jumlah transaksi yang dibahagikan dengan jumlah transaksi yang dikira sebagai penunjuk harga kuantitatif, untuk menilai aliran wang. Kenaikan kuantiti menunjukkan aliran wang bersih, penurunan kuantiti menunjukkan aliran wang bersih.
Menggunakan 20 hari Donchian Channel Width untuk mengira Brin’s Band Parameter, membentuk orbit ke atas dan ke bawah. Apabila harga mendekati orbit ke atas, menunjukkan kemungkinan menghadapi tekanan pemulihan; Apabila harga mendekati orbit ke bawah, menunjukkan kemungkinan menghadapi peluang untuk bangkit kembali.
Merangkumi ketiga-tiga bahagian ini, membina strategi multi ruang untuk menangkap trend garis pendek. Apabila rata-rata bergerak jangka pendek melintasi rata-rata bergerak jangka panjang, dan indikator harga kuantitatif berada dalam trend naik, harga baru sahaja meninggalkan jalur Brin, membentuk isyarat beli; Apabila rata-rata bergerak jangka pendek melintasi rata-rata bergerak jangka panjang, indikator harga kuantitatif berada dalam trend menurun, harga baru sahaja meninggalkan jalur Brin, membentuk isyarat jual.
Strategi ini mempunyai kelebihan berikut:
Penapisan triple indicator berkesan untuk mengelakkan penembusan palsu.
Ia juga boleh mempertimbangkan trend, aliran dana dan overbought dan oversold, dan ia memberi isyarat yang lebih dipercayai.
Parameter penunjuk telah dioptimumkan untuk digunakan untuk pelbagai kitaran dan varieti.
Penarikan balik boleh dikawal, pendapatan stabil.
Logiknya jelas dan mudah difahami, parameternya boleh diselaraskan dengan mudah.
Strategi ini mempunyai beberapa risiko:
Risiko perubahan trend. Apabila trend pasaran berubah, ia boleh menyebabkan kerugian berhenti.
Ketinggalan Indeks Kuantiti Harga. Indeks Kuantiti Harga Ketinggalan Perubahan Harga, Mungkin Melewatkan Titik Beli dan Jual.
Kesukaran menyesuaikan parameter. Parameter perlu disesuaikan dengan pelbagai jenis dan kitaran, jika tidak, ia mungkin tidak berkesan.
Kawalan penarikan balik perlu dipertingkatkan. Kawalan penarikan balik boleh dioptimumkan lagi dengan hentikan kerugian dinamik atau pengurusan kedudukan.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Menambah strategi berhenti kerugian, mengawal lebih jauh penarikan balik dengan bergerak berhenti, dan mengesan berhenti.
Menambah modul pengurusan kedudukan, menyesuaikan saiz kedudukan mengikut dinamik turun naik pasaran.
Mengoptimumkan parameter penunjuk untuk mencari kombinasi parameter yang optimum dalam kitaran pelbagai jenis.
Menambah penilaian pembantu model pembelajaran mesin, meningkatkan ketepatan isyarat.
Mengambil bahagian dalam pengukuran emosi, berita dan lain-lain untuk meningkatkan penghakiman terhadap kejadian yang tidak dijangka.
Strategi ini menggabungkan penggunaan purata bergerak, indikator harga dan indikator Brin, yang berfungsi dengan baik untuk menangkap trend di garis tengah dan pendek. Dengan mengoptimumkan lagi penghentian kerugian, pengurusan kedudukan dan pilihan parameter, kesan strategi yang lebih baik dapat diperoleh. Logik strategi ini jelas dan mudah difahami, dapat menyesuaikan indikator dan parameter mengikut keperluan yang berbeza, dan mempunyai fleksibiliti yang kuat.
/*backtest
start: 2023-10-16 00:00:00
end: 2023-11-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 29/04/2019
// This is combo strategies for get
// a cumulative signal. Result signal will return 1 if two strategies
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// 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.
//
// Secon strategy
// The Average Directional Movement Index Rating (ADXR) measures the strength
// of the Average Directional Movement Index (ADX). It's calculated by taking
// the average of the current ADX and the ADX from one time period before
// (time periods can vary, but the most typical period used is 14 days).
// Like the ADX, the ADXR ranges from values of 0 to 100 and reflects strengthening
// and weakening trends. However, because it represents an average of ADX, values
// don't fluctuate as dramatically and some analysts believe the indicator helps
// better display trends in volatile markets.
//
// 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
fADX(Len) =>
up = change(high)
down = -change(low)
trur = rma(tr, Len)
plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, Len) / trur)
minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, Len) / trur)
sum = plus + minus
100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), Len)
ADXR(LengthADX, LengthADXR, Signal1, Signal2) =>
xADX = fADX(LengthADX)
xADXR = (xADX + xADX[LengthADXR]) / 2
pos = 0.0
pos := iff(xADXR < Signal1, 1,
iff(xADXR > Signal2, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal and Average Directional Movement Index Rating", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
LengthADX = input(title="Length ADX", defval=14)
LengthADXR = input(title="Length ADXR", defval=14)
Signal1 = input(13, step=0.01)
Signal2 = input(45, step=0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posADXR = ADXR(LengthADX, LengthADXR, Signal1, Signal2 )
pos = iff(posReversal123 == 1 and posADXR == 1 , 1,
iff(posReversal123 == -1 and posADXR == -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 ? red: possig == 1 ? green : blue )