
La estrategia es un sistema de trading de parámetros adaptativos basado en señales de cruce de doble equilátero. La estrategia genera señales de trading mediante el cruce de promedios móviles rápidos y promedios móviles lentos, y se combina con parámetros de gestión de riesgos ajustables como stop loss, stop-loss y tracking stop loss, para lograr una gestión flexible de la estrategia de trading. El núcleo de la estrategia consiste en ajustar los parámetros mediante la dinámica del panel de control, lo que permite que la estrategia se adapte a diferentes entornos de mercado.
La estrategia utiliza dos medias móviles rápidas y lentas como indicadores centrales. Cuando una media móvil rápida cruza hacia arriba una media móvil lenta, el sistema genera una señal de paridad; cuando una media móvil rápida cruza hacia abajo una media móvil lenta, el sistema genera una señal de paridad. Además, la estrategia introduce un triple mecanismo de control de riesgo: paradas fijas, paradas fijas y paradas de seguimiento.
La estrategia se basa en la combinación de parámetros de gestión de riesgos flexibles y de doble línea recta para construir un sistema de negociación adaptable. La estrategia tiene la ventaja de que los parámetros son muy ajustables y el control de riesgos es perfecto, pero al mismo tiempo también se debe tener en cuenta el riesgo que conlleva el mercado de la oscilación y la optimización de los parámetros.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © traderhub
//@version=5
strategy("Two Moving Averages Strategy with Adjustable Parameters", overlay=true)
// Adjustable parameters for fast and slow moving averages
fastLength = input.int(10, title="Fast Moving Average Length", minval=1, maxval=100)
slowLength = input.int(30, title="Slow Moving Average Length", minval=1, maxval=100)
// Risk management parameters
stopLossPerc = input.float(1, title="Stop Loss (%)", step=0.1) // Stop-loss percentage
takeProfitPerc = input.float(2, title="Take Profit (%)", step=0.1) // Take-profit percentage
trailStopPerc = input.float(1.5, title="Trailing Stop (%)", step=0.1) // Trailing stop percentage
// Calculate fast and slow moving averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)
// Plot moving averages on the chart
plot(fastMA, color=color.blue, title="Fast Moving Average")
plot(slowMA, color=color.red, title="Slow Moving Average")
// Conditions for opening and closing positions
longCondition = ta.crossover(fastMA, slowMA) // Buy when fast moving average crosses above the slow moving average
shortCondition = ta.crossunder(fastMA, slowMA) // Sell when fast moving average crosses below the slow moving average
// Variables for stop-loss and take-profit levels
var float longStopLevel = na
var float longTakeProfitLevel = na
// Enter a long position
if (longCondition)
longStopLevel := strategy.position_avg_price * (1 - stopLossPerc / 100)
longTakeProfitLevel := strategy.position_avg_price * (1 + takeProfitPerc / 100)
strategy.entry("Long", strategy.long)
// Manage stop-loss, take-profit, and trailing stop for long positions
if (strategy.position_size > 0)
strategy.exit("Take Profit/Stop Loss", "Long", stop=longStopLevel, limit=longTakeProfitLevel, trail_offset=trailStopPerc)
// Close the long position and enter short when the condition is met
if (shortCondition)
strategy.close("Long")
strategy.entry("Short", strategy.short)