Estrategia de negociación de la tendencia de inversión de la media de la proporción dorada

El autor:¿ Qué pasa?, Fecha: 2023-12-07 11:03:20
Las etiquetas:

img

Resumen general

La estrategia de negociación de tendencia de reversión de la media de la proporción dorada identifica direcciones de tendencia más fuertes utilizando indicadores de canal y promedios móviles, y abre posiciones en la dirección de la tendencia después de que los precios retroceden a una cierta proporción.

Estrategia lógica

Los indicadores centrales de esta estrategia incluyen indicadores de canal, promedios móviles y líneas de activación de retroceso.

  1. El indicador de canal se calcula a partir del máximo más alto y el mínimo más bajo para identificar el canal de precios.
  2. La media móvil se utiliza para determinar la dirección general de la tendencia de los precios.
  3. La línea de activación de retroceso luego abre posiciones después de que los precios rebotan de nuevo desde el límite del canal en una cierta proporción.

Cuando el precio toca el fondo del canal, la estrategia registra el punto más bajo como punto de referencia y establece una señal de venta.

Por el contrario, cuando el precio alcanza la parte superior del canal, la estrategia registra el punto más alto como punto de referencia y establece una señal de compra.

Por lo tanto, la lógica de negociación de esta estrategia es seguir el canal de precios e intervenir en la tendencia existente cuando aparecen señales de reversión.

Análisis de ventajas

Las principales ventajas de esta estrategia son las siguientes:

  1. Puede funcionar bien en mercados con tendencias fuertes.
  2. La agresividad de la entrada en operaciones puede ajustarse a través del parámetro de la relación de retroceso.
  3. Un control razonable de la extracción puede limitar las pérdidas de operaciones individuales.

Específicamente, debido a que la estrategia principalmente abre posiciones en puntos de inversión de tendencia, funciona mejor en mercados con fluctuaciones de precios más grandes y tendencias más obvias. Además, ajustar el parámetro de la relación de retroceso puede controlar el nivel de agresividad de la estrategia para seguir las tendencias. Finalmente, el stop loss puede controlar muy bien la pérdida de una sola operación.

Análisis de riesgos

Los principales riesgos de esta estrategia también incluyen:

  1. La estrategia es sensible a las características de tendencia de los instrumentos de negociación.
  2. Los ajustes inadecuados de la relación de retroceso pueden conducir a una agresividad o un exceso de conservaduría.
  3. El tiempo de mantenimiento de la posición puede ser demasiado largo, el riesgo durante la noche necesita atención.

Específicamente, si el instrumento de negociación utilizado en la estrategia tiene una tendencia más débil y una fluctuación menor, el rendimiento puede verse comprometido. Además, una relación de retroceso demasiado grande o demasiado pequeña afectará el rendimiento de la estrategia. Por último, como el período de tiempo de mantenimiento de la posición de la estrategia puede ser más largo, el control del riesgo durante la noche también necesita atención.

Para evitar los riesgos mencionados anteriormente, considere optimizar los siguientes aspectos:

  1. Seleccionar instrumentos de negociación con características de tendencia más obvias.
  2. Ajuste el parámetro de la relación de retroceso para encontrar la mejor combinación de parámetros.
  3. Establecer las salidas de ganancia para controlar razonablemente el tiempo de retención.

Conclusión

La estrategia de negociación de tendencias de reversión media de la proporción de oro juzga las tendencias de precios y las señales de retroceso a través de indicadores simples, abre posiciones para rastrear tendencias en mercados fuertes, y pertenece a un sistema de tendencias típico.


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

//@version=3
//
// A port of the TradeStation EasyLanguage code for a mean-revision strategy described at
//     http://traders.com/Documentation/FEEDbk_docs/2017/01/TradersTips.html
//
// "In “Mean-Reversion Swing Trading,” which appeared in the December 2016 issue of STOCKS & COMMODITIES, author Ken Calhoun
//  describes a trading methodology where the trader attempts to enter an existing trend after there has been a pullback. 
//  He suggests looking for 50% pullbacks in strong trends and waiting for price to move back in the direction of the trend
//  before entering the trade."
//
//  See Also:
//    - 9 Mistakes Quants Make that Cause Backtests to Lie (https://blog.quantopian.com/9-mistakes-quants-make-that-cause-backtests-to-lie-by-tucker-balch-ph-d/)
//    - When Backtests Meet Reality (http://financial-hacker.com/Backtest.pdf)
//    - Why MT4 backtesting does not work (http://www.stevehopwoodforex.com/phpBB3/viewtopic.php?f=28&t=4020)
//
// 
// -----------------------------------------------------------------------------
// Copyright 2018 sherwind
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// 
// The GNU General Public License can be found here
// <http://www.gnu.org/licenses/>.
//
// -----------------------------------------------------------------------------
//

strategy("Mean-Reversion Swing Trading Strategy v1", shorttitle="MRST Strategy v1", overlay=true)
channel_len  = input(defval=20, title="Channel Period", minval=1)
pullback_pct = input(defval=0.5, title="Percent Pull Back Trigger", minval=0.01, maxval=1, step=0.01)
trend_filter_len = input(defval=50, title="Trend MA Period", minval=1)


upper_band = highest(high, channel_len)
lower_band = lowest(low, channel_len)
trend      = sma(close, trend_filter_len)

low_ref  = 0.0
low_ref  :=  nz(low_ref[1])
high_ref = 0.0
high_ref := nz(high_ref[1])
long_ok  = false
long_ok  := nz(long_ok[1])
short_ok = false
short_ok := nz(short_ok[1])
long_ok2 = false
long_ok2  := nz(long_ok2[1])

if (low == lower_band)
    low_ref  := low
    long_ok  := false
    short_ok := true
    long_ok2 := false

if (high == upper_band)
    high_ref := high
    long_ok  := true
    short_ok := false
    long_ok2  := true

// Pull Back Level
trigger = long_ok2 ? high_ref - pullback_pct * (high_ref - low_ref) : low_ref + pullback_pct * (high_ref - low_ref)

plot(upper_band, title="Upper Band", color=long_ok2?green:red)
plot(lower_band, title="Lower Band", color=long_ok2?green:red)
plot(trigger, title="Trigger", color=purple)
plot(trend, title="Trend", color=orange)

enter_long = long_ok[1] and long_ok and crossover(close, trigger) and close > trend and strategy.position_size <= 0
enter_short = short_ok[1] and short_ok and crossunder(close, trigger) and close < trend and strategy.position_size >= 0

if (enter_long)
    long_ok := false
    strategy.entry("pullback-long", strategy.long, stop=close, comment="pullback-long")
else
    strategy.cancel("pullback-long")

if (enter_short)
	short_ok := false
    strategy.entry("pullback-short", strategy.short, stop=close, comment="pullback-short")
else
    strategy.cancel("pullback-short")

strategy.exit("exit-long", "pullback-long", limit=upper_band, stop=lower_band)
strategy.exit("exit-short", "pullback-short", limit=lower_band, stop=upper_band)


Más.