
Strategi ini menggabungkan dua strategi, yaitu Recursive Moving Average and 123 Reversal, untuk membentuk sinyal komposit yang meningkatkan stabilitas dan profitabilitas strategi tersebut.
Bagian ini mengacu pada Ulf Jensen dalam buku How I Get Three-Fold Income in the Futures Market. Sinyal pembelian adalah: harga close-out naik dua hari terakhir dan STO SLOWK pada siklus 9 hari naik di bawah 50, dan sinyal jual adalah: harga close-out turun dua hari terakhir dan STO FASTK pada siklus 9 hari naik di atas 50, dan STO FASTK di bawah 50.
Bagian ini menggunakan sebuah teknik yang disebut matching matching matching. Ideanya adalah menggunakan harga beberapa hari yang lalu dan harga hari itu untuk memprediksi harga hari berikutnya. Lihatlah ke bawah ketika harga yang diprediksi lebih tinggi dari harga sebenarnya kemarin, sebaliknya lihatlah lebih tinggi.
Strategi kombinasi ini dapat memanfaatkan keuntungan dari kedua strategi tersebut dan menghindari keterbatasan dari strategi tunggal. 123 pola berbalik dapat menangkap tren yang lebih besar saat harga berbalik. Sedangkan garis rata-rata tren bergerak berulang dapat lebih akurat menentukan arah pergerakan harga.
Strategi ini menggabungkan dua jenis strategi yang berbeda untuk meningkatkan stabilitas dengan menghasilkan sinyal komposit. Dengan menggabungkan keunggulan keduanya, strategi ini dapat menangkap titik balik harga dan menentukan pergerakan harga di masa depan.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 01/06/2021
// 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
// Taken from an article "The Yen Recused" in the December 1998 issue of TASC,
// written by Dennis Meyers. He describes the Recursive MA in mathematical terms
// as "recursive polynomial fit, a technique that uses a small number of past values
// of the estimated price and today's price to predict tomorrows price."
// Red bars color - short position. Green is long.
//
// 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
RMTA(Length) =>
pos = 0.0
Bot = 0.0
nRes = 0.0
Alpha = 2 / (Length+1)
Bot := (1-Alpha) * nz(Bot[1],close) + close
nRes := (1-Alpha) * nz(nRes[1],close) + (Alpha*(close + Bot - nz(Bot[1], 0)))
pos:= iff(nRes > close[1], -1,
iff(nRes < close[1], 1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Recursive Moving Trend Average", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Recursive Moving Trend Average ----")
LengthRMTA = input(21, minval=3)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRMTA = RMTA(LengthRMTA)
pos = iff(posReversal123 == 1 and posRMTA == 1 , 1,
iff(posReversal123 == -1 and posRMTA == -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 )