
La estrategia de negociación de tendencia de retorno de la media divisoria en oro utiliza el indicador de canal y las medias móviles para identificar la dirección de la tendencia más fuerte y, después de una cierta corrección de la proporción de los precios, puede abrir una posición en la dirección de la tendencia. La estrategia es adecuada para mercados con características de tendencia más fuertes y puede obtener un mejor rendimiento en situaciones de tendencia.
Los indicadores centrales de la estrategia incluyen indicadores de canal, promedios móviles y líneas de activación de retroalimentación. En concreto:
Cuando el precio toca el fondo del canal, la estrategia registra el punto más bajo como punto de referencia y establece un símbolo de permiso de baja. Cuando el precio sube, se abrirá una posición baja cerca del punto de rebote una vez que el aumento alcance la proporción de reajuste.
Por el contrario, cuando el precio toca la cima de la canal, la estrategia registra el punto más alto como punto de referencia y establece que se permita hacer más señales. Cuando el precio baja, si la caída alcanza el requisito de la proporción de reajuste, se abre más posiciones cerca de ese punto.
Por lo tanto, la lógica de negociación de la estrategia es seguir el canal de precios y elegir el punto adecuado para intervenir en la tendencia existente cuando se produce una señal de reversión. Esta es una forma común de estrategia de negociación de tipo de reajuste de tendencia.
La estrategia tiene las siguientes ventajas:
En concreto, debido a que la estrategia se basa en abrir posiciones en los puntos de reversión de la tendencia, es más eficaz en los mercados donde los precios fluctúan mucho y la tendencia es evidente. Además, el ajuste de los parámetros de la proporción de reajuste puede controlar la radicalidad de la estrategia de seguimiento de la tendencia. Finalmente, el método de stop loss puede controlar bien las pérdidas individuales.
La estrategia también presenta los siguientes riesgos principales:
En concreto, si la variedad de transacciones en la que se utiliza la estrategia es de tendencia débil y con poca volatilidad, el efecto puede ser reducido. Además, la configuración de un porcentaje de reajuste demasiado grande o demasiado pequeño puede afectar el rendimiento de la estrategia. Finalmente, debido a que el período de tenencia de la estrategia puede ser largo, también se debe tener en cuenta el control del riesgo durante la noche.
Para evitar los riesgos mencionados, se puede considerar la optimización de los siguientes aspectos:
La estrategia de negociación de tendencias de retorno de la media media divisoria en oro es un sistema de tendencias más típico. Se trata de una estrategia de optimización de parámetros más amplia que se puede adaptar a más entornos de mercado a través de la optimización, y el control del riesgo también es más razonable. Por lo tanto, es una idea de estrategia de optimización que vale la pena probar y mejorar en la práctica.
/*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)