Estrategia de stop loss circular con ruptura de resistencia


Fecha de creación: 2023-12-11 11:44:49 Última modificación: 2023-12-11 11:44:49
Copiar: 1 Número de Visitas: 573
1
Seguir
1621
Seguidores

Estrategia de stop loss circular con ruptura de resistencia

Descripción general

La estrategia utiliza una señal de forma de precio de ruptura de resistencia y un mecanismo de control de riesgo de ruptura de la espiral. Se construye más posiciones después de la ruptura de la resistencia y se vacía las posiciones después de la ruptura de la posición de soporte. Al mismo tiempo, se establece la ruptura de la espiral y la ruptura de la espiral, para controlar eficazmente el riesgo.

Principio de estrategia

La estrategia se basa principalmente en los siguientes puntos:

  1. Utilice la línea media para determinar la dirección de la tendencia. En la estrategia, establezca una línea media rápida y lenta. Una línea lenta en la línea rápida representa un aumento en la línea larga y una línea baja representa una disminución en la línea larga.

  2. Cuando el precio sube más allá de los máximos recientes, se considera una señal de ruptura de la resistencia y se hace una entrada adicional.

  3. Se considera una señal de ruptura de soporte cuando el precio baja y se rompe un mínimo reciente. Se considera una señal de ruptura de soporte cuando el precio baja y se rompe un mínimo reciente.

  4. Establezca un stop loss circular. Establezca una línea de stop loss después de la entrada y realice un funcionamiento de precios alrededor de la línea de stop loss ajustándose a las fluctuaciones de precios.

  5. El stop loss y el stop exit. El stop loss y el stop exit controlan el riesgo de manera efectiva, mientras que el stop stop y el stop exit bloquean los beneficios.

En concreto, la estrategia utiliza el promedio de precios altos y bajos como fuente de precios para calcular la dirección de la tendencia de los EMAs rápidos y lentos. Haga más cuando la línea rápida atraviesa la línea lenta y aparece una señal de ruptura de resistencia, y deje de lado cuando la línea rápida atraviesa la línea lenta y aparece una señal de ruptura de soporte.

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. Estabilidad de ganancias. Operaciones de seguimiento de tendencias para obtener ganancias en tendencias de líneas largas a nivel de índices.

  2. El riesgo está bien controlado. La configuración de los circuitos de detención de pérdidas y de la parada de pérdidas, puede detener la pérdida y la salida a tiempo.

  3. La señal es precisa. El punto de resistencia se rompe y el punto de soporte se rompe. La señal es precisa y confiable.

  4. Sencilla y fácil de usar. Las reglas de los indicadores y señales son simples y claras, y la configuración de los parámetros no es compleja.

  5. Adaptación al mercado. Puede operar en diferentes variedades y en cualquier condición de mercado.

Análisis de riesgos

La estrategia también tiene algunos riesgos a tener en cuenta:

  1. Riesgo de fracaso de la ruptura. Después de la ruptura del soporte de resistencia, puede haber reajustes y reensayos, lo que provoca pérdidas.

  2. Riesgo de optimización de parámetros. La configuración incorrecta de los parámetros puede causar una señal frecuente o insuficiente. El proceso de optimización debe ser prudente.

  3. Riesgo de fallo de los indicadores. En circunstancias especiales, los indicadores EMA pueden fallar o retrasarse.

  4. Riesgo de reversión de la tendencia. El riesgo de pérdidas puede aumentar cuando se produce una desviación de la dirección del mercado.

Estos riesgos pueden ser controlados y mitigados en gran medida mediante la optimización de los parámetros, la tolerancia adecuada y el seguimiento estricto de las señales.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Optimización del ciclo de tiempo. Ajuste los parámetros del ciclo de tiempo para calcular la línea media y la forma de los precios, buscando la combinación óptima.

  2. Optimización de la adaptabilidad de las variedades. Ajuste la configuración de los parámetros según las características de las diferentes variedades.

  3. Optimización de las estrategias de detención de pérdidas. Aplicación de métodos de detención más estables y precisos, como detención móvil, detención de vibración, etc.

  4. Optimización de la estrategia de stop-loss. Establezca un stop-loss móvil o un stop-loss indexado para aumentar las ganancias.

  5. Aumentar las condiciones de filtración. Añadir las condiciones de filtración como volumen de transacciones, volatilidad y excluir falsas brechas.

  6. Aumentar la señal de entrada. Agregar más indicadores o formas como confirmación de la señal de entrada.

Resumir

La estrategia en general funciona bien, la idea central es clara, tiene una gran estabilidad y capacidad de rentabilidad. El control de riesgos y la aplicación de indicadores también son adecuados, es una estrategia de clasificación de ruptura que vale la pena usar. La optimización posterior a través de parámetros y módulos puede perfeccionar la estrategia para adaptarse a más variedades y entornos de mercado complejos.

Código Fuente de la Estrategia
/*backtest
start: 2023-12-03 00:00:00
end: 2023-12-10 00:00:00
period: 30m
basePeriod: 15m
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/
// © EduardoMattje

//@version=4
strategy("Reversal closing price", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, initial_capital=10000)

src = input(hl2, "Price source")
order_direction = input("Both", "Order direction", options=["Both", "Long", "Short"])

// EMA calculation and plot

ema_long_period = input(80, "EMA long period")
ema_short_period = input(8, "EMA short period")
ema_long = ema(src, ema_long_period)
ema_short = ema(src, ema_short_period)
ema_bull = ema_short > ema_long
ema_bear = ema_short < ema_long
plot(ema_long, "EMA long", ema_bull ? color.green : color.red, 3)
plot(ema_short, "EMA short", ema_bull ? color.green : color.red, 3)

// Settings

risk_reward_ratio = input(2.0, "Risk to reward ratio", minval=1.0, step=0.1)
stop_lookback = input(3, "Stoploss candle lookback", minval=1)
ema_cross_stop = input(true, "Close if EMA crosses in oposite direction")
allow_retracing = input(true, "Allow price retracing")

// RCP calculation

rcp_bull = low[0] < low[1] and low[0] < low[2] and close[0] > close[1]
rcp_bear = high[0] > high[1] and high[0] > high[2] and close[0] < close[1]

// Order placement

in_market = strategy.position_size != 0

long_condition = rcp_bull and ema_bull and not in_market and order_direction != "Short"
short_condition = rcp_bear and ema_bear and not in_market and order_direction != "Long"

bought = strategy.position_size[0] > strategy.position_size[1] and strategy.position_size[1] == 0
sold = strategy.position_size[0] < strategy.position_size[1] and strategy.position_size[1] == 0
closed = not in_market and in_market[1]

long_position = strategy.position_size > 0
short_position = strategy.position_size < 0

buy_price = high + syminfo.mintick
sell_price = low - syminfo.mintick

if long_condition
    strategy.entry("Long", true, stop=buy_price)
if short_condition
    strategy.entry("Short", false, stop=sell_price)
    
if allow_retracing
    better_price_long = barssince(closed) > barssince(long_condition) and barssince(long_condition) >= 1 and not in_market and ema_bull and buy_price < valuewhen(long_condition, buy_price, 0) and buy_price[0] < buy_price[1]
    if better_price_long
        strategy.cancel("Long")
        strategy.entry("Long", true, stop=buy_price)
    
    better_price_short = barssince(closed) > barssince(short_condition) and barssince(short_condition) >= 1 and not in_market and ema_bear and sell_price > valuewhen(short_condition, sell_price, 0) and sell_price[0] > sell_price[1]
    if better_price_short
        strategy.cancel("Short")
        strategy.entry("Short", false, stop=sell_price)

// Stoploss orders

stop_price = long_position ? valuewhen(bought, lowest(stop_lookback)[1] - syminfo.mintick, 0) : short_position ? valuewhen(sold, highest(3)[1] + syminfo.mintick, 0) : na
stop_comment = "Stoploss triggered"
strategy.close("Long", low <= stop_price, stop_comment)
strategy.close("Short", high >= stop_price, stop_comment)
plot(stop_price, "Stop price", color.red, 2, plot.style_linebr)

// EMA cross close orders

if ema_cross_stop
    if long_position and ema_bear
        strategy.close("Long", comment=stop_comment)
    if short_position and ema_bull
        strategy.close("Short", comment=stop_comment)

// Take profit orders

stop_ticks = abs(strategy.position_avg_price - stop_price)
take_profit_price = long_position ? valuewhen(bought, strategy.position_avg_price + stop_ticks * risk_reward_ratio, 0) : short_position ? valuewhen(sold, strategy.position_avg_price  - (stop_ticks * risk_reward_ratio), 0) : na
target_comment = "Take profit"
strategy.close("Long", high >= take_profit_price, target_comment)
strategy.close("Short", low <= take_profit_price, target_comment)
plot(take_profit_price, "Target price", color.green, 2, plot.style_linebr)