La estrategia combina el indicador MACD doble y el indicador StochRSI aleatorio para la determinación de la señal de negociación. El MACD doble utiliza diferentes configuraciones de parámetros para lograr un efecto rápido y lento, y el StochRSI se utiliza para la verificación de la espalda fuerte. La estrategia también incorpora el juicio de tendencias y el control de los riesgos de las condiciones de parada.
Las señales de negociación de esta estrategia se basan en los siguientes indicadores:
MACD doble: MACD rápido utiliza parámetros de ciclo corto y MACD lento utiliza parámetros de ciclo largo para lograr diferentes efectos de suavizado.
StochRSI: Calcula los máximos y mínimos del RSI durante un período determinado para determinar si el RSI está sobrecomprando o sobrevendendo.
Las reglas para juzgar las señales de transacción:
Haga más: el MACD rápido cruza el eje cero y el MACD lento cruza el eje cero, el StochRSI está sobrevendido y cruza la línea D en la línea K, y está en tendencia alcista.
Hacer vacío: el MACD rápido pasa por el eje cero y el MACD lento pasa por el eje cero, el StochRSI está sobrecomprado y pasa por la línea K y la línea D, y está en una tendencia descendente.
La verificación doble MACD evita falsas brechas y mejora la calidad de la señal.
El StochRSI está sobrecomprando y vendiendo, evitando las caídas.
Tener en cuenta la dirección de las grandes tendencias y reducir las pérdidas de operaciones en contra.
Realizar la verificación de indicadores en múltiples marcos de tiempo para mejorar la eficacia de la señal.
Configuración de los riesgos de control de las condiciones de parada.
El MACD es propenso a generar falsas señales y requiere una mayor filtración.
El StochRSI puede perderse una oportunidad de negociación si no se ajusta correctamente.
La configuración de los puntos de parada no es razonable y puede ser demasiado conservadora o radical.
La falta de una estrategia de gestión de las posiciones y la imposibilidad de detener los pérdidas dinámicas.
Se puede optimizar en los siguientes aspectos:
Los filtros incluyen condiciones como aumento de volumen de transacciones o ángulo de línea media.
Optimizar el parámetro StochRSI o introducir otros indicadores aleatorios
Ajuste dinámico de los puntos de parada, seguimiento de los puntos de parada.
Agrega un módulo de administración de posiciones para ajustar dinámicamente las posiciones según el rendimiento de la estrategia.
Las principales direcciones de optimización de la estrategia son:
Optimización de los parámetros de los indicadores para mejorar la eficacia de los mismos.
Se han añadido condiciones de filtración para filtrar las falsas señales.
Optimización de las estrategias de detención de pérdidas, para lograr la detención dinámica de pérdidas.
Introducción de la gestión de posiciones para ajustar las posiciones según el efecto de la estrategia.
La aplicación de la tecnología de la nube para la optimización automática de los datos masivos.
La estrategia integra varios indicadores para formar una señal de negociación más fuerte. Sin embargo, aún hay que optimizar la configuración de los parámetros, filtrar aún más las señales y los paros dinámicos para reducir las operaciones innecesarias y mejorar la probabilidad de obtener ganancias. En general, la estrategia es razonable y hay un buen espacio para la optimización.
/*backtest
start: 2023-09-14 00:00:00
end: 2023-09-21 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
//This strategy is an ongoing work in progress. Last updated 8/6/16.
//Feel free to modify it as you see fit, if you do borrow code then send me a link so I
//can see and maybe borrow some of your code to improve this.
//Thanks to ChrisMoody who I stole the code for setting custom resolution from.
//
//more info in comments at end of script
strategy("MACDouble & StochRSI w/ safeties v0.3", overlay=true)
source = close
useCurrentRes = input(true, title="Uncheck to use custom res./intrv. for 2nd MACD indicator")
resCustom = input(title="Resolution/interval to use for 2nd MACD:", defval="45")
res = useCurrentRes ? timeframe.period : resCustom
useCurrentRes2 = input(true, title="Uncheck to use custom res/intrv for StochRSI")
resCustom2 = input(title="Resolution to use for StochRSI indicator:", defval="45")
res2 = useCurrentRes2 ? timeframe.period : resCustom2
//MACD1
fastLength = input(10, title="MACD fast length")
slowlength = input(21, title="MACD slow length")
sigLength = input(9, title="MACD signal length")
MACD = ema(source, fastLength) - ema(source, slowlength)
signal = sma(MACD, sigLength)
delta = MACD - signal
//MACD2
fastLength2 = input(31, title= "2nd MACD fast length")
slowlength2 = input(63, title= "2nd MACD slow length")
sigLength2 = input(30, title= "2nd MACD signal length")
MACD2 = ema(source, fastLength2) - ema(source, slowlength2)
signal2 = sma(MACD2, sigLength2)
delta2 = MACD2 - signal2
MACDRes = security(syminfo.tickerid, res, MACD2)
signalRes = security(syminfo.tickerid,res, signal2)
deltaRes = security(syminfo.tickerid, res, delta2)
uptrend = (close + high)/(close[1] + high[2])
downtrend = (close + low)/(close[1] + low[2])
smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(11, minval=1)
lengthStoch = input(11, minval=1)
src = close
rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
RSI_buyTrig = input(90)
RSI_sellTrig = input(20)
kRes = security(syminfo.tickerid, res2, k)
dRes = security(syminfo.tickerid, res2, d)
if (delta > 0) and (year>2012) and (deltaRes > 0) and (uptrend > 1) and ( kRes and dRes < RSI_buyTrig) and (kRes > dRes)
strategy.entry("buy", strategy.long, comment="buy")
if (delta < 0) and (year>2012) and (deltaRes < 0) and (downtrend < 1) and ( kRes and dRes > RSI_sellTrig) and (kRes < dRes)
strategy.entry("sell", strategy.short, comment="sell")
strategy.exit("sell", loss = 9000)
// RELEASE NOTES, ETC
//
// The core starting idea for this backtesting script came from the desire to have two traditional
//MACD indicators: one 'fast' and one 'slow'. The slow one is to pretty much smooth out noisy signals
//so that short term changes in price are ignored (ideally).
// A brief version history
// v0.1 - Basic two MACD indicators script
// v0.2 - Added StochRSI indicator
// v0.21- Added primitive uptrend/downtrend safety condition
// v0.22- Added changable time resolution for MACDslow
// v0.23- Added exit safeties conditional on loss threshold
// v0.3 - Added changeable resolution for StochRSI
// Future changes planned for next release:
// -Fine tuning exit safeties
// -Major overhaul of trade logic/triggers (may be forked as a different script)
//
//I am more than happy to discuss any difficulties you are having, questions about the script, or improvement suggestions.
//I am not a coder and my background is actually in economics, so feel free to debug ;)
//Feel free to tip me on the indcluded bitcoin address on TV as well
// tradingview.com/u/RyanMartin
// [email protected]