Impulso Swing Estrategia de ganancias eficaces

El autor:¿ Qué pasa?, fecha: 2023-11-02 15:02:05
Las etiquetas:

img

Resumen general

La estrategia de ganancias efectivas es una estrategia comercial cuantitativa diseñada para capturar oportunidades rentables en los mercados financieros a mediano plazo mediante la integración de principios de negociación de swing e indicadores de impulso. La estrategia utiliza una combinación de indicadores técnicos, incluidos promedios móviles, señales de cruce y análisis de volumen para generar señales de compra y venta.

Estrategia lógica

La señal de compra está determinada por múltiples factores incluyendo A1, A2, A3, XG y WeeklySlope.

A1 Condición: Verifica las relaciones de precios específicas, verificando que la relación entre el precio más alto y el precio de cierre es inferior a 1.03, la relación entre el precio de apertura y el precio más bajo es inferior a 1.03, y la relación entre el precio más alto y el precio de cierre anterior es mayor a 1.06.

A2 Condición: verifica las relaciones de precios relacionadas con el precio de cierre, verificando que la relación entre el precio de cierre y el precio de apertura es superior a 1,05 o que la relación entre el precio de cierre y el precio de cierre anterior es superior a 1,05.

A3 Condición: se centra en el volumen, comprobando si el volumen actual supera el volumen más alto en los últimos 60 períodos.

Condición XG: Combina las condiciones A1 y A2 y verifica si son ciertas tanto para las barras actuales como para las anteriores. También verifica la relación entre el precio de cierre y los cruces de la EMA de 5 períodos por encima de la SMA de 9 períodos de la misma relación. Esta condición ayuda a identificar señales de compra potenciales cuando múltiples factores se alinean, lo que indica un fuerte impulso alcista y un posible punto de entrada.

Factor de tendencia semanal: Calcula la pendiente de la SMA de 50 períodos en un marco de tiempo semanal. Comprueba si la pendiente es positiva, indicando una tendencia general al alza semanal. Esta condición proporciona una confirmación adicional de que el stock está en una tendencia al alza.

Cuando se cumplen todas estas condiciones, se activa la condición de compra, lo que indica un momento favorable para entrar en una posición larga.

La condición de venta es relativamente simple en la estrategia:

La condición de venta simplemente comprueba si el precio de cierre cruza por debajo de la EMA de 10 períodos. Cuando se cumple esta condición, indica una posible inversión o debilitamiento del impulso al alza del precio y se genera una señal de venta.

Análisis de ventajas

  • Combina el swing trading y los indicadores de impulso, integrando diferentes ideas de estrategia
  • Optimiza la combinación de múltiples indicadores técnicos para identificar oportunidades comerciales de alta probabilidad
  • Emplear técnicas de dimensionamiento de posiciones y stop loss para la gestión del riesgo
  • Buen resultado de pruebas de retroceso con ganancias netas considerables y tasa de ganancia

Análisis de riesgos

  • Más eficaz en el mercado alcista, incapaz de adaptarse a los mercados bajistas
  • Las fugas falsas pueden llevar a operaciones equivocadas.
  • El tamaño incorrecto de la posición y la configuración de la parada de pérdidas pueden amplificar las pérdidas
  • Los parámetros deben ajustarse adecuadamente a los diferentes entornos del mercado

Optimización

  • Añadir indicadores de filtrado para mejorar la calidad de la señal
  • Optimiza los métodos de stop loss como el stop loss de seguimiento
  • Ajuste dinámico del tamaño de la posición
  • Combinar el aprendizaje automático para mejorar la optimización de parámetros

Conclusión

La estrategia de ganancias efectivas de Momentum Swing integra los principios de negociación de swing e indicadores de impulso a través de la optimización de parámetros e integración de condiciones, logrando ganancias considerables en backtests. Captura bien las tendencias a mediano plazo, pero debe ser consciente de los riesgos de inversión de tendencia.


/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © fzj20020403
//@version=5
strategy("Slight Swing Momentum Strategy.", overlay=true)

// Position Status Definition
var inPosition = false

// Moving Average Definition
ma60 = ta.sma(close, 60)

// A1 Condition Definition
A1 = high / close < 1.03 and open / low < 1.03 and high / close[1] > 1.06

// A2 Condition Definition
A2 = close / open > 1.05 or close / close[1] > 1.05

// A3 Condition Definition
highestVol = ta.highest(volume, 60)
A3 = ta.crossover(volume, highestVol[1])

// B1 Condition Definition
ema5 = ta.ema(close, 5)
B1 = close / ema5

// XG Condition Definition
A1andA2 = (A1 and A2) and (A1[1] and A2[1])
XG = ta.crossover(B1, ta.sma(B1, 9))

// Weekly Trend Factor Definition
weeklyMa = ta.sma(close, 50)
weeklySlope = (weeklyMa - weeklyMa[4]) / 4 > 0

// Buy Signal using XG Condition
buySignal = A1 and close > ma60 or A2 and A3 and XG and close > ma60 and weeklySlope 

// Sell Signal Condition
sellSignal = close < ta.ema(close, 10)

// Buy and Sell Conditions
buyCondition = buySignal and not inPosition
sellCondition = sellSignal and inPosition

// Execute Buy and Sell Operations
if (buyCondition)
    strategy.entry("Buy", strategy.long)
    inPosition := true
if (sellCondition)
    strategy.close("Buy")
    inPosition := false

// Stop Loss and Take Profit Levels
stopLoss = strategy.position_avg_price * 0.5
takeProfit = strategy.position_avg_price * 1.30

// Apply Stop Loss and Take Profit Levels
if inPosition
    strategy.exit("Long Stop Loss", "Buy", stop=stopLoss)
    strategy.exit("Long Take Profit", "Buy", limit=takeProfit)

// Plot Buy and Sell Signal Shapes
plotshape(buyCondition, style=shape.arrowdown, location=location.belowbar, color=color.green, size=size.small)
plotshape(sellCondition, style=shape.arrowup, location=location.abovebar, color=color.red, size=size.small)

// EMA Variable Definition
ema = ta.ema(close, 5)

// Plot Indicator Line
plot(ema, color=color.green, title="EMA")


Más.