
Esta estrategia combina dos estrategias de inversión de doble factor y dos subestrategias de tendencia de precio de mejora para obtener una señal de negociación integral. La estrategia de inversión de doble factor se basa en el pensamiento de P183 en el libro de Ulf Jensen, y genera una señal cuando el precio de liquidación de las acciones se invierte en dos días y se establecen condiciones de indicadores aleatorios.
La estrategia de doble factor inversa utiliza el principio de inversión de precios de cierre de dos días con el juicio de espacio múltiple de indicadores aleatorios. Si el día anterior el precio de cierre era alto y el precio de cierre se invertió hoy y el indicador aleatorio rápido es inferior al indicador aleatorio lento y el indicador aleatorio rápido es superior a 50, se produce una señal de cabeza vacía. Si el cierre del día anterior era bajo y el precio de cierre se invertió hoy y subió, y el indicador aleatorio rápido es superior al indicador aleatorio lento y el indicador aleatorio rápido es inferior a 50, se produce una señal de cabeza múltiple.
La estrategia de mejora de la tendencia de la cantidad de precios se basa en el análisis conjunto de precios y volumen de transacciones. La fórmula de cálculo es: PxVFactor = PriceFactor + Scale * CumPVT, donde PriceFactor es el factor de precios y CumPVT es el indicador de energía acumulada. Luego se calcula el promedio móvil simple de Length Day de PxVFactor, que se compara con el valor actual de PxVFactor, para determinar la tendencia y la fuerza del mercado.
La combinación de estrategias toma en cuenta de forma integral las señales de las dos subestrategias, y la inversión binaria y la mejora de la tendencia de los volúmenes de precios producen una señal de ausencia correspondiente cuando la tendencia es favorable o negativa.
En resumen, la estrategia de combinación de tendencias de reversión de doble factor y mejora de la cantidad de precios, combinada con el análisis de las dos dimensiones de la reversión y la tendencia, pueden verificar las señales entre sí y mejorar la estabilidad. Es necesario agregar indicadores de tendencia como juicio auxiliar en una estrategia de reversión fácil de ajustar.
/*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 )