El valor de las operaciones de mercado se calcula a partir de las cifras de las operaciones de mercado de los Estados miembros.

El autor:¿ Qué pasa?, Fecha: 2024-02-23 15:06:59
Las etiquetas:

img

Resumen general

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.

Estrategia lógica

La estrategia utiliza los siguientes indicadores clave para el juicio:

  1. 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.

  2. Indicador de impulso personalizado: esencialmente similar al indicador Stoch, utilizado para juzgar la dirección de impulso a corto plazo del mercado.

  3. 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.

Ventajas de la estrategia

  1. La evaluación global de múltiples indicadores evita la generación de señales falsas

  2. 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.

  3. 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

  4. Prueba previa con datos suficientes y con una alta fiabilidad

Riesgos de la estrategia

  1. Los sistemas de breakout son propensos al arbitraje, lo que puede aumentar el número de operaciones y los costos de deslizamiento

  2. Alta complejidad con un juicio exhaustivo de varios indicadores, dificultad para ajustar y optimizar los parámetros

  3. Riesgos de negociación a corto plazo dentro del día

Direcciones de optimización

  1. Incorporar análisis de más indicadores, como el volumen de operaciones

  2. Aumentar los algoritmos de aprendizaje automático para la optimización de parámetros dinámicos

  3. Menor frecuencia de negociación, conversión a una mayor periodicidad para los juicios

Resumen de las actividades

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")



Más.