
Strategi ini menggabungkan dua sub-strategi pembalikan dua faktor dan trend kuantiti harga yang disempurnakan untuk mendapatkan isyarat perdagangan komprehensif. Strategi pembalikan dua faktor ini berdasarkan kepada P183 dalam buku Ulf Jensen, menghasilkan isyarat apabila harga saham ditutup dalam dua hari dan keadaan penunjuk rawak dibuat.
Strategi pembalikan dua faktor menggunakan prinsip pembalikan harga penutupan dua hari dengan penilaian kosong indikator rawak. Jika harga penutupan pada hari sebelumnya lebih tinggi dan hari ini harga penutupan berbalik turun, dan indikator rawak cepat lebih rendah daripada indikator rawak perlahan dan indikator rawak cepat lebih tinggi daripada 50, isyarat kepala kosong dihasilkan. Jika penutupan pada hari sebelumnya lebih rendah dan hari ini harga penutupan berbalik naik, dan indikator rawak cepat lebih tinggi daripada indikator rawak perlahan dan indikator rawak cepat lebih rendah daripada 50, isyarat kepala banyak dihasilkan.
Strategi trend kuantiti harga yang diperbaiki berdasarkan penilaian bersama harga dan kuantiti transaksi. Rumus pengiraan adalah: PxVFactor = PriceFactor + Scale * CumPVT, di mana PriceFactor adalah faktor harga, CumPVT adalah penunjuk tenaga terkumpul.
Strategi gabungan mempertimbangkan secara komprehensif isyarat kedua-dua substrategi, apabila pembalikan dua faktor dan trend kuantiti harga yang disempurnakan sama dengan over atau under, maka ia menghasilkan isyarat over kosong yang sesuai.
Secara keseluruhannya, strategi gabungan trend kuantiti harga pengubahsuaian dan pengubahsuaian dua faktor, digabungkan dengan pengubahsuaian dan pengubahsuaian dua dimensi, kedua-duanya dapat saling mengesahkan isyarat dan meningkatkan kestabilan. Menambah indikator trend sebagai penilaian tambahan dalam strategi pengubahsuaian 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 )