
Strategi ini menggabungkan dua substrategi, yaitu double factor reversal dan modified price volume trend, untuk mendapatkan sinyal perdagangan komprehensif. Strategi double factor reversal ini didasarkan pada ide P183 dalam buku Ulf Jensen, yang menghasilkan sinyal ketika harga saham ditutup dalam dua hari dan kondisi indikator acak terbentuk. Strategi modified price volume trend didasarkan pada penilaian gabungan dari harga dan volume transaksi, menilai keselarasan pasar dan waktu tren.
Strategi reversal dua faktor menggunakan prinsip reversal harga penutupan dua hari dengan penilaian polygonal dari indikator acak. Jika hari sebelumnya harga penutupan lebih tinggi dan hari ini harga penutupan berbalik turun, dan indikator acak cepat lebih rendah dari indikator acak lambat dan indikator acak cepat lebih tinggi dari 50, sinyal kepala kosong akan dihasilkan. Jika hari sebelumnya penutupan lebih rendah dan hari ini harga penutupan berbalik naik, dan indikator acak cepat lebih tinggi dari indikator acak lambat dan acak cepat lebih rendah dari 50, sinyal kepala banyak akan dihasilkan.
PxVFactor = PriceFactor + Scale * CumPVT, di mana PriceFactor adalah faktor harga, CumPVT adalah indikator energi akumulasi. Kemudian menghitung Longth Day Simple Moving Average dari PxVFactor, dibandingkan dengan nilai PxVFactor saat ini, untuk menilai tren dan kekuatan pasar.
Kombinasi strategi secara komprehensif mempertimbangkan sinyal dari dua substrategi, dan bila reversal faktor ganda dan tren volume harga yang dimodifikasi sama-sama bullish atau bearish, maka akan menghasilkan sinyal bullish yang sesuai.
Secara keseluruhan, strategi kombinasi double-factor reversal and modification of price volume trend, yang digabungkan dengan analisis dua dimensi reversal dan trend, dapat saling memverifikasi sinyal dan meningkatkan stabilitas. Menambahkan indikator tren sebagai penilaian tambahan dalam strategi reversal yang mudah ditiru adalah perlu.
/*backtest
start: 2024-01-17 00:00:00
end: 2024-01-24 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 23/02/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
// The related article is copyrighted material from
// Stocks & Commodities.
//
// 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
MPVT(Level,Scale,Length) =>
pos = 0.0
xCumPVT = 0.0
xOHLC4 = ohlc4
xV = volume
rV = xV / 50000
xCumPVT := nz(xCumPVT[1]) + (rV * (xOHLC4 - xOHLC4[1]) / xOHLC4[1])
nRes = Level + Scale * xCumPVT
xMARes = sma(nRes, Length)
pos:= iff(nRes > xMARes, 1,
iff(nRes < xMARes, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Modified Price-Volume Trend", 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, "---- Price-Volume Trend ----")
LevelPVT = input(1)
Scale = input(1)
LengthPVT = input(23)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMPVT = MPVT(LevelPVT,Scale,LengthPVT)
pos = iff(posReversal123 == 1 and posMPVT == 1 , 1,
iff(posReversal123 == -1 and posMPVT == -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 )