La estrategia permite el seguimiento de tendencias y el comercio de inversiones mediante la combinación de 123 formas invertidas con indicadores de flujo de capital.
En primer lugar, a través de 123 formas de inversión para determinar el punto de inflexión de precios. En concreto, si el precio de cierre de los dos primeros días bajó, el precio de cierre del tercer día subió, y el indicador aleatorio está por debajo de la brecha, generando una señal de compra; si el precio de cierre de los dos primeros días subió, el precio de cierre del tercer día bajó, y el indicador aleatorio está por encima de la brecha, generando una señal de venta.
En segundo lugar, se calcula el índice de flujo de fondos de la línea rápida y la línea lenta. La línea rápida está formada por el promedio móvil del índice de flujo de fondos reciente, y la línea lenta es el promedio móvil del índice de un período más largo. Si la línea rápida es más alta que la línea lenta, se juzga que el flujo de fondos genera una señal de compra; a la inversa, genera una señal de venta.
Por último, la combinación de las señales de 123 inversiones con el indicador de fluidez de fondos, si las dos señales coinciden, produce una señal de negociación.
Se puede controlar el riesgo mediante la mejora de la fiabilidad de la forma inversa, la sensibilidad de los indicadores de fluidez de fondos y la adición de la lógica de stop loss.
Esta estrategia combina las ventajas de las inversiones con el seguimiento de tendencias, lo que permite identificar con eficacia los puntos de inflexión del mercado. Sin embargo, se debe tener en cuenta la ajuste de parámetros y el control de riesgos, para evitar la generación de demasiadas señales erróneas mientras se sigue la tendencia. Si se usa correctamente, puede ser una de las estrategias de negociación más eficientes.
/*backtest
start: 2023-08-17 00:00:00
end: 2023-09-16 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 24/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
// Indicator plots Money Flow Indicator (Chaikin). This indicator looks
// to improve on Larry William's Accumulation Distribution formula that
// compared the closing price with the opening price. In the early 1970's,
// opening prices for stocks stopped being transmitted by the exchanges.
// This made it difficult to calculate Williams' formula. The Chaikin
// Oscillator uses the average price of the bar calculated as follows
// (High + Low) /2 instead of the Open.
// The indicator subtracts a 10 period exponential moving average of the
// AccumDist function from a 3 period exponential moving average of the
// AccumDist function.
//
// 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
MFI(Fast,Slow) =>
pos = 0.0
lenMax = max(Fast, Slow)
lenMin = min(Fast, Slow)
xDiv = (high - low) * volume
SumMax = sum(iff(xDiv > 0, (close - open) / (high - low) * volume , 0) , lenMax)
SumMin = sum(iff(xDiv > 0, (close - open) / (high - low) * volume , 0) , lenMin)
emaMax = ema(SumMax, lenMax)
emaMin = ema(SumMin, lenMin)
nRes = emaMax - emaMin
pos:= iff(nRes > 0, 1,
iff(nRes < 0, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Money Flow Indicator", 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, "---- Money Flow ----")
Fast = input(3, minval=1)
Slow = input(10, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMFI = MFI(Fast,Slow)
pos = iff(posReversal123 == 1 and posMFI == 1 , 1,
iff(posReversal123 == -1 and posMFI == -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 )