Este es el artículo que he intentado escribir en respuesta a su solicitud:
Esta estrategia combina la estrategia de inversión de la forma 123 y la estrategia del indicador de fuerza bajista, que genera una señal de negociación cuando aparecen señales de venta o ventaja simultáneas, y pertenece a la estrategia de negociación de inversión de ruptura.
La estrategia tiene dos partes:
Cuando el precio de cierre se rompe hacia arriba en el tercer día de cierre después de 2 días consecutivos de caída, y el indicador de toque bajo genera una señal de compra cuando rebota desde el nivel bajo; cuando el precio de cierre se rompe hacia abajo en el tercer día de cierre después de 2 días consecutivos de subida, y el indicador de toque alto genera una señal de venta cuando retrocede desde el nivel alto.
El indicador de fuerza bajista refleja el contraste de fuerzas en el espacio, generando una señal de venta cuando el indicador es mayor que el límite de venta establecido y una señal de compra cuando el indicador es menor que el límite de compra establecido.
En la señal de combinación, si ambos dan una señal de sincronización, se produce una señal de transacción real.
La combinación de la señal de retorno y el filtro del indicador evita la falsa ruptura y mejora la calidad de la señal.
Se puede aplicar en varios períodos de tiempo, con flexibilidad para adaptarse a diferentes entornos de mercado.
Se puede usar por separado o en combinación con las estrategias de los componentes, con un diseño modular de estrategias.
La señal de retorno puede tener una mayor profundidad de retorno.
La configuración de los parámetros del indicador de fuerza de atracción requiere pruebas repetidas y optimización.
El ajuste de los parámetros de la estrategia integral multifactorial es complejo y requiere una gran cantidad de pruebas de datos históricos.
El módulo de cuantificación join conecta más fuentes de datos y obtiene más información durante un período más largo.
Aplicar métodos de aprendizaje automático para buscar y evaluar conjuntos de parámetros.
Aumentar el mecanismo de suspensión de pérdidas para controlar las pérdidas individuales.
Esta estrategia integra el uso de análisis de tecnología inversa y indicadores cuantitativos para mejorar la calidad de la señal a través de la doble confirmación, tiene un alto grado de modularización, es escalable y es una estrategia práctica. Posteriormente, se puede optimizar mediante la introducción de más medios tecnológicos avanzados para adaptarse a un entorno de mercado más complejo.
/*backtest
start: 2023-11-13 00:00:00
end: 2023-11-20 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 29/05/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.
//
// Second strategy
// Bear Power Indicator
// To get more information please see "Bull And Bear Balance Indicator"
// by Vadim Gimelfarb.
//
// 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
BearPower(SellLevel, BuyLevel) =>
value = iff (close < open ,
iff (close[1] > open , max(close - open, high - low), high - low),
iff (close > open,
iff(close[1] > open, max(close[1] - low, high - close), max(open - low, high - close)),
iff(high - close > close - low,
iff (close[1] > open, max(close[1] - open, high - low), high - low),
iff (high - close < close - low,
iff(close > open, max(close - low, high - close),open - low),
iff (close > open, max(close[1] - open, high - close),
iff(close[1] < open, max(open - low, high - close), high - low))))))
pos = 0.0
pos := iff(value > SellLevel, -1,
iff(value <= BuyLevel, 1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Bear Power", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
SellLevel = input(30)
BuyLevel = input(3)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBearPower = BearPower(SellLevel, BuyLevel)
pos = iff(posReversal123 == 1 and posBearPower == 1 , 1,
iff(posReversal123 == -1 and posBearPower == -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 )