
Strategi ini menggabungkan indikator Moving Average, Metric, dan Shock Indicator untuk membentuk tiga filter yang bertujuan untuk menangkap tren garis pendek dan mendapatkan hasil yang lebih baik dalam situasi tren.
Strategi ini terdiri dari tiga bagian utama:
Membangun filter tren dengan menggunakan indeks pergerakan rata-rata 20 hari dan indeks pergerakan rata-rata 60 hari. Sinyal beli terbentuk ketika indeks bergerak jangka pendek melewati rata-rata bergerak jangka panjang; Sinyal jual terbentuk ketika indeks bergerak jangka pendek melewati rata-rata bergerak jangka panjang.
Menggunakan volume transaksi dibagi dengan volume transaksi yang dihitung dengan indikator harga kuantitatif, untuk menilai aliran dana. Kenaikan harga kuantitatif menunjukkan aliran dana bersih, penurunan harga kuantitatif menunjukkan aliran dana bersih.
Dengan menggunakan 20 hari Donchian Channel Width untuk menghitung Brin’s Band Parameter, membentuk orbit ke atas dan ke bawah. Ketika harga mendekati orbit ke atas, menunjukkan kemungkinan menghadapi tekanan untuk kembali; Ketika harga mendekati orbit ke bawah, menunjukkan kemungkinan menghadapi kesempatan untuk bangkit kembali.
Strategi multi-area yang menggabungkan ketiga bagian ini untuk membangun tren garis pendek yang tertangkap. Ketika rata-rata bergerak jangka pendek melewati rata-rata bergerak jangka panjang, dan indikator harga kuantitatif berada dalam tren naik, sinyal beli terbentuk ketika harga baru saja keluar dari jalur Brin; Ketika rata-rata bergerak jangka pendek melewati rata-rata bergerak jangka panjang, indikator harga kuantitatif berada dalam tren turun, dan harga baru saja keluar dari jalur Brin, sinyal jual terbentuk.
Strategi ini memiliki keuntungan sebagai berikut:
Filter tiga indikator yang efektif untuk menghindari penembusan palsu.
Ini adalah salah satu cara yang paling efektif untuk memperkirakan harga saham di pasar Forex, dengan mempertimbangkan tren, aliran dana dan overbought dan oversold.
Parameter indikator telah dioptimalkan untuk berbagai siklus dan varietas.
Penarikan bisa dikendalikan, pendapatan stabil.
Logika jelas dan mudah dipahami, parameter disesuaikan dengan fleksibel.
Strategi ini juga memiliki beberapa risiko:
Risiko perubahan tren. Ketika tren pasar berubah, dapat menyebabkan stop loss.
Ketertinggalan Indikator Kuantitas Harga. Indikator Kuantitas Harga Ketertinggalan perubahan harga, mungkin kehilangan titik jual beli.
Kesulitan penyesuaian parameter. Perbedaan varietas dan siklus memerlukan penyesuaian parameter, jika tidak, efeknya mungkin tidak baik.
Pengendalian penarikan harus ditingkatkan. Pengendalian penarikan dapat dioptimalkan lebih lanjut melalui stop loss dinamis atau manajemen posisi.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Menambahkan strategi stop loss, dan mengontrol penarikan kembali lebih lanjut dengan cara memindahkan stop loss, menelusuri stop loss, dan sebagainya.
Menambahkan modul manajemen posisi, menyesuaikan ukuran posisi sesuai dengan dinamika volatilitas pasar.
Optimalkan parameter indikator untuk menemukan kombinasi parameter optimal dalam siklus varietas yang berbeda.
Meningkatkan penilaian model pembelajaran mesin untuk meningkatkan akurasi sinyal.
Ini adalah salah satu cara untuk meningkatkan penilaian terhadap kejadian yang terjadi secara tiba-tiba, dengan menggabungkan indikator emosi, berita, dan lainnya.
Strategi ini menggunakan kombinasi dari moving average, metric, dan Bollinger Bands untuk menangkap tren. Efek strategi yang lebih baik dapat diperoleh dengan lebih mengoptimalkan stop loss, manajemen posisi, dan pilihan parameter. Logika strategi ini jelas dan mudah dimengerti, dan dapat menyesuaikan indikator dan parameter sesuai dengan kebutuhan yang berbeda.
/*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 )