La estrategia de trading de Momentum StochRSI de MoonFlag es una estrategia de trading cuantitativa que utiliza los indicadores MACD, Momentum y StochRSI para el juicio. Es principalmente adecuada para el comercio diario de Bitcoin y Ethereum.
La estrategia utiliza los siguientes indicadores clave para el juicio:
Indicador MACD: el período de SMA rápido es 50 y el período de SMA lento es 200, que representa la línea de 50 días y la línea de 200 días comúnmente utilizada en el mercado.
Indicador de impulso personalizado: esencialmente similar al indicador Stoch, utilizado para juzgar la dirección de impulso a corto plazo del mercado.
Indicador StochRSI: evalúa la solidez y los niveles de sobrecompra/sobreventa del mercado.
Para entrar a largo plazo, debe cumplir las 3 condiciones de MACD> 0 (que representa la tendencia alcista a medio y largo plazo), el indicador de impulso personalizado > 0 (que representa el impulso alcista a corto plazo) y el precio de cierre superior al cierre anterior (que representa la tendencia alcista actual) simultáneamente.
El cierre de la señal larga es ligeramente más complejo, requiriendo que el MACD <0, el indicador de impulso personalizado <0, el precio de cierre inferior al cierre anterior y el StochRSI>20 se cumplan simultáneamente las 4 condiciones.
La estrategia evalúa de manera exhaustiva la tendencia a medio y largo plazo, el impulso a corto plazo y la tendencia actual, y es un sistema de ruptura relativamente sólido.
La evaluación global de múltiples indicadores evita la generación de señales falsas
La selección del parámetro MACD tiene en cuenta la línea de 50 días y la línea de 200 días importantes en el mercado.
Después de que los parámetros de cada indicador fueron probados para detectar variaciones, el rendimiento de la estrategia cambió poco, evitando el riesgo de sobreajuste
Prueba previa con datos suficientes y con una alta fiabilidad
Los sistemas de breakout son propensos al arbitraje, lo que puede aumentar el número de operaciones y los costos de deslizamiento
Alta complejidad con un juicio exhaustivo de varios indicadores, dificultad para ajustar y optimizar los parámetros
Riesgos de negociación a corto plazo dentro del día
Incorporar análisis de más indicadores, como el volumen de operaciones
Aumentar los algoritmos de aprendizaje automático para la optimización de parámetros dinámicos
Menor frecuencia de negociación, conversión a una mayor periodicidad para los juicios
La estrategia de trading de MoonFlag MACD Momentum StochRSI juzga de manera exhaustiva las tendencias y la fortaleza del mercado con múltiples indicadores, tiene buenos resultados de backtest y alta confiabilidad, adecuada para que los operadores cuantitativos experimentados apliquen y optimicen criptomonedas de 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")