
La estrategia de trading MACD Dynamic Stoch RSI es una estrategia de trading cuantitativa que utiliza los tres indicadores MACD, Dynamic y Stoch RSI para juzgar. La estrategia se aplica principalmente a las operaciones de línea de sol en Bitcoin y Ethereum.
La estrategia se basa en los siguientes indicadores clave:
Indicador MACD: el ciclo SMA rápido es de 50, el ciclo SMA lento es de 200, representando las líneas de 50 y 200 días que se utilizan comúnmente en el mercado. Este indicador determina la dirección de la tendencia a largo plazo del mercado.
Indicador de dinámica creado por uno mismo: similar en esencia al indicador de Stoch, para determinar la dirección de la dinámica a corto plazo del mercado.
El indicador StochRSI: para juzgar la fuerza del mercado y las tendencias de sobrecompra y sobreventa.
Al entrar en el polinomio, es necesario satisfacer simultáneamente las 3 condiciones MACD> 0 (que representa una tendencia al alza a mediano y largo plazo), el indicador de volumen de creación propia> 0 (que representa una tendencia al alza a corto plazo) y el precio de cierre más alto que el día anterior (que representa una tendencia al alza en la actualidad).
Las señales de múltiples cabezas planas son un poco complejas, y requieren que se cumplan simultáneamente las 4 condiciones de MACD < 0, índice de volumen de creación automática < 0, precio de cierre más bajo que el día anterior y StochRSI > 20.
El análisis de la estrategia, que analiza las tendencias a medio y largo plazo, la dinámica a corto plazo y las tendencias actuales, es un sistema de ruptura más robusto.
El análisis de múltiples indicadores evita falsas señales
Los parámetros del MACD se eligieron teniendo en cuenta las líneas de 50 y 200 días que son importantes para el mercado
Después de probar los cambios en los parámetros de los indicadores, la eficacia de la estrategia no cambió mucho, evitando el riesgo de sobreajuste
Los datos de detección son completos y de alta fiabilidad
Los sistemas de penetración son propensos a la subastas, lo que puede aumentar el número de transacciones y los costos de los puntos de deslizamiento.
La complejidad de las evaluaciones integradas de múltiples indicadores es alta, y el ajuste y optimización de los parámetros es difícil
El riesgo de operar en línea corta durante el día es mayor
Combinado con más indicadores, como el análisis del volumen de transacciones
Aumentar el algoritmo de aprendizaje automático para optimizar los parámetros dinámicos
Reducir la frecuencia de las transacciones y cambiar a un ciclo más alto para juzgar
La estrategia de negociación MACD de StochRSI, que integra varios indicadores para determinar la tendencia y la intensidad del mercado, tiene un buen efecto de retroalimentación y una alta fiabilidad, es adecuada para que los operadores cuantitativos experimentados la apliquen y optimizen en monedas digitales de alta calidad.
/*backtest
start: 2023-02-16 00:00:00
end: 2024-02-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// // © MoonFlag
//@version=5
strategy("MoonFlag 1D MACD Momentum StochRSI Strategy", max_bars_back=500, overlay=false, initial_capital=5000, default_qty_type=strategy.percent_of_equity, default_qty_value=80, pyramiding=0, calc_on_order_fills=true)
d(gaps_1, data)=>
float out = 0.
out :=(ta.wma(ta.wma(ta.wma(data, math.round(((1 * gaps_1) - math.round((1 * gaps_1) / 3)) / 2)), math.round((1 * gaps_1) / 3)) , int(((1 * gaps_1) - math.round((1 * gaps_1) / 3)) / 2)))
out
MoonFlagAverage(gaps_1,data)=>
float out = 0.
out:=d(gaps_1,d(gaps_1, d(gaps_1, data)))
out
fastLength = input.int(50, "MACD SMA Fast Length")
slowlength = input.int(200, "MACD SMA Slow Length")
MACDLength = 9//input.int(9, "MACD Length")
MACD = ta.ema(close, fastLength) - ta.ema(close, slowlength)
aMACD = ta.sma(MACD, MACDLength)
MACDdelta = MACD - aMACD
//plot (MACD, "MACD1", color.red)
//plot (aMACD, "aMACD1", color.green)
//plot (delta, "MACD delta", color.white)
fastLength2 = input.int(12, "MoonFlag Momentum Length")
slowlength2 = 2*fastLength2//input.int(50, "MoonFlag Momentum Slow Length")
MACDLength2 = 20//input.int(20, "Momentum Delta")
MoonFlag_MACD2 = MoonFlagAverage(fastLength2, close) - MoonFlagAverage(slowlength2,close)
MoonFlag_aMACD2 = MoonFlagAverage(MACDLength2, MoonFlag_MACD2)
MoonFlag_delta = MoonFlag_MACD2 - MoonFlag_aMACD2
MoonFlag_delta_line=0
if MoonFlag_delta < 0
MoonFlag_delta_line:=-100
else
MoonFlag_delta_line:=100
//plot (MoonFlag_MACD2, "MoonFlag Momentum Fast Length", color.red)
//plot (MoonFlag_aMACD2, "MoonFlag Momentum Slow Length", color.green)
//plot (MoonFlag_delta2, "MoonFlag Delta", color.white)
uptrend = (close + high)/(close[1] + high[1])
downtrend = (close + low)/(close[1] + low[1])
lineColor = color.green
if uptrend > 1
lineColor := color.green
if downtrend < 1
lineColor := color.red
smoothK = 2//input.int(2, minval=1, title="K smoothing Stoch RSI")
smoothD = 3//input.int(3, minval=1, title= "D smoothing for Stoch RSI")
lengthRSI = 7//input.int(7, minval=1, title="RSI Length")
lengthStoch = 8//input.int(8, minval=1, title="Stochastic Length")
src = close//input(close, title="RSI Source")
rsi1 = ta.rsi(src, lengthRSI)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
StochRSI = ta.sma(k, smoothD)
MACDdirection_line = 0
MACDdirection_line := MACDdirection_line[1]
if (MACDdelta > 0)
MACDdirection_line := 50
if (MACDdelta < 0)
MACDdirection_line := -50
useStochRSI = input.bool(true,"Include Condition (StochRSI > 20) with Exit Long/Enter Short")
StochRSI_val = 20//input.int(20,"StochRSI greater than to exit short")
h1 = hline(StochRSI_val)
StochRSIGreaterThanSetValue = true
if useStochRSI
if (StochRSI > StochRSI_val)
StochRSIGreaterThanSetValue := true
else
StochRSIGreaterThanSetValue := false
stoch20 = lineColor
if StochRSI < StochRSI_val
stoch20 := color.white
yearin = input.int(2019, title="Start backtesting from year:")
includeShorts = false//input.bool(false, "Include Shorts")
plot(MoonFlag_delta_line,"MoonFlag Momentum Direction", color.white)
plot(MACDdirection_line,"MACD Direction", color = color.orange)
plot(StochRSI, "StochRSI", color=lineColor)
if (year>=yearin)
if (MACDdelta > 0) and (uptrend > 1) and MoonFlag_delta_line > 0
strategy.entry("buy2", strategy.long, comment="buy")
if (MACDdelta < 0) and (downtrend < 1) and MoonFlag_delta_line < 0 and StochRSIGreaterThanSetValue
if includeShorts
strategy.entry("sell", strategy.short, comment="sell")
else
strategy.close("buy2", comment = "sell")