Fisher Turnaround EMA Multi-Take Profit y estrategia de múltiples paradas

El autor:¿ Qué pasa?, fecha: 2024-01-05 15:40:28
Las etiquetas:

img

Resumen general

La estrategia Fisher Turnaround EMA Multi-Take Profit y Multi-Stop Strategy combina el indicador EMA y una señal de Fisher Turn personalizada para implementar operaciones de seguimiento de tendencias. Genera señales de compra cuando el EMA de corto período cruza por encima de la EMA de largo período y la señal de Fisher Turn es mayor que 0. La estrategia establece dos niveles de take profit y una stop loss dinámica para bloquear las ganancias y controlar los riesgos. La primera take profit es 2xATR, la segunda 3xATR y la stop loss es 1xATR. Después de que se activa la primera take profit, la stop loss se moverá al precio de entrada. Esta estrategia es adecuada para que el intercambio GDAX encuentre oportunidades potenciales de trading de tendencias.

Estrategia lógica

La estrategia se basa principalmente en dos indicadores técnicos:

  1. EMA: promedio móvil exponencial. La estrategia utiliza 12 y 26 periodos de EMA.
  2. Esta señal se calcula en función de la diferencia entre los máximos y mínimos durante un cierto período.

Las señales de compra se generan cuando la EMA del período corto cruza por encima de la EMA del período largo. Además, la línea de señal Fisher Turn también debe ser mayor que 0, lo que indica la tendencia alcista actual.

Las reglas de toma de ganancias y stop loss son las siguientes:

  1. Primero tome ganancias en 2xATR
  2. El segundo toma ganancias a 3xATR
  3. Pérdida de parada en 1xATR
  4. Después de que se activa la primera toma de ganancias, el stop loss se moverá al precio de entrada.

La estrategia se puede optimizar ajustando parámetros como los períodos EMA, los períodos de señal Fisher Turn y los períodos ATR.

Ventajas

Al combinar indicadores de seguimiento de tendencias e indicadores de gestión de riesgos, esta estrategia tiene las siguientes ventajas:

  1. Uso de la EMA para determinar la dirección de la tendencia
  2. Filtro de señal de giro de Fisher personalizado para fuga falsa
  3. Niveles de ganancias múltiples para bloquear las ganancias
  4. Las pérdidas de detención dinámicas para controlar los riesgos
  5. Los parámetros ajustables se adaptan a los diferentes entornos del mercado

Los riesgos

Esta estrategia también presenta algunos riesgos:

  1. La inversión de tendencia desencadena el stop loss
  2. La configuración incorrecta de los parámetros causa entradas demasiado agresivas o salidas prematuras
  3. La señal de giro de Fisher personalizada puede fallar en ciertos entornos de mercado

Estos riesgos pueden reducirse mediante la optimización de los parámetros, la combinación de otros indicadores, la intervención manual, etc.

Direcciones de optimización

La estrategia se puede optimizar en los siguientes aspectos:

  1. Optimizar los parámetros de los períodos de EMA para adaptarse a más entornos de mercado
  2. Añadir otros indicadores de tendencia para verificar las señales de compra
  3. Incorporar filtros generales del mercado para evitar entornos inciertos
  4. Optimiza los parámetros de señal de Fisher Turn o prueba otros indicadores personalizados
  5. Añadir más niveles de ganancias para bloquear más ganancias
  6. Integrar la función de pérdida automática de seguimiento

Al probar diferentes configuraciones de parámetros y combinaciones de indicadores, el rendimiento de la estrategia puede mejorarse continuamente.

Conclusión

La estrategia Fisher Turnaround EMA Multi-Take Profit y Multi-Stop integra las fortalezas del seguimiento de tendencias y la gestión de riesgos. Con un gran potencial para la verificación y optimización a largo plazo, es una estrategia prometedora. Todavía hay un amplio margen para optimizar parámetros y combinar indicadores para lograr un rendimiento constante en el comercio en vivo.


/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 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/
// © Eliebf13
//@version=4
strategy("GDAX EMA & Blackflag FTS Strategy with Multiple Take Profits and Dynamic Stop Loss", overlay=true)

// Input parameters for Blackflag FTS
fts_length = input(14, title="Blackflag FTS Length")
atr_length = input(14, title="ATR Length")

// GDAX EMA calculation
short = ema(close, 12)
long = ema(close, 26)

// Calculate Blackflag FTS signal line manually
up = 0.0
down = 0.0
for i = 0 to fts_length - 1
    up := up + (high[i] - low[i])
    down := down + (high[i] - low[i])

fts_value = down == 0 ? 100 : 100 - (100 / (1 + (up / down)))

// Buy condition: GDAX EMA crossover and Blackflag FTS signal above zero
buy_condition = crossover(short, long) and fts_value > 0

// ATR calculation
atr_value = atr(atr_length)

// Calculate Stop Loss and Take Profit levels
stop_loss_level = close - atr_value
take_profit_level1 = close + 2 * atr_value
take_profit_level2 = close + 3 * atr_value

// Sell condition: GDAX EMA crossunder or Blackflag FTS signal below zero
sell_condition = crossunder(short, long) or fts_value < 0

// Strategy orders with Multiple Take Profits and Dynamic Stop Loss
strategy.entry("Buy", strategy.long, when = buy_condition)

// Calculate position size for 50% closure at each take profit level
position_size = strategy.position_size
target_position_size1 = position_size * 0.5
target_position_size2 = position_size * 1

strategy.exit("Take Profit 1", from_entry="Buy", loss=close, profit=take_profit_level1, qty=target_position_size1)
strategy.exit("Take Profit 2/Move Stop Loss", from_entry="Buy", loss=close, profit=take_profit_level2, qty=target_position_size2)

// Plot GDAX EMA lines
plot(short, color=#6f92ce, linewidth=2, title="Ema 12")
plot(long, color=#e08937, linewidth=2, title="Ema 26")

// Plot Blackflag FTS signal
plot(fts_value, color=color.blue, title="Blackflag FTS Signal")

// Plot buy and sell signals on the chart
plotshape(series=buy_condition, location=location.belowbar, color=color.green, style=shape.triangleup, title="Buy Signal")
plotshape(series=sell_condition, location=location.abovebar, color=color.red, style=shape.triangledown, title="Sell Signal")

Más.