Esta estrategia emplea un enfoque de negociación diaria consistente, centrándose en capturar objetivos de ganancias pequeñas mientras se mantiene una gestión de riesgos estricta. La estrategia ha sido probada desde el año 2021, demostrando un rendimiento robusto con una tasa de ganancia del 100%. La idea principal de la estrategia es abrir nuevas posiciones largas o cortas al comienzo de cada día de negociación en función de las condiciones del mercado del día anterior. Los parámetros clave incluyen un objetivo de ganancia del 0.3% y un stop loss del 0.2%, con un capital inicial de $ 1000 y una comisión del 0.1% por operación.
El principio básico de esta estrategia es abrir nuevas posiciones largas o cortas al comienzo de cada día de negociación en función de las tendencias del mercado del día de negociación anterior. Específicamente, si no había posiciones el día anterior, la estrategia abrirá una posición larga al comienzo del nuevo día. Si ya hay una posición larga, la estrategia verifica si se ha alcanzado el objetivo de ganancia del 0,3% y cierra la posición si lo ha hecho. Para las posiciones cortas, la estrategia verifica si se ha alcanzado el 0,2% de stop loss, y si es así, cierra la posición corta y al mismo tiempo abre una nueva posición larga para reemplazarla. Esto garantiza que la estrategia siempre mantenga la exposición al mercado.
Esta estrategia de negociación diaria tiene varias ventajas notables:
A pesar del impresionante rendimiento y el control de riesgos demostrados por la estrategia, existen algunos riesgos potenciales a tener en cuenta:
Para mitigar estos riesgos, podría considerarse la diversificación mediante la aplicación de estrategias similares en diferentes mercados y clases de activos.
En general, esta estrategia de negociación diaria ofrece un enfoque equilibrado para el comercio intradiario con un fuerte énfasis en la gestión del riesgo y la rentabilidad consistente. Es adecuado para los operadores que buscan una metodología de negociación sistemática y disciplinada. La estrategia ha demostrado resultados impresionantes de backtesting, con una tasa de ganancia del 100% y rendimientos ajustados al riesgo robustos. Sin embargo, es importante reconocer que el rendimiento pasado no garantiza resultados futuros, y la gestión del riesgo y la adaptación a los cambios del mercado son cruciales.
/*backtest start: 2023-05-22 00:00:00 end: 2024-05-27 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Daily AUD-JPY Trading", overlay=true, initial_capital=1000, currency="AUD", default_qty_type=strategy.percent_of_equity, default_qty_value=200, commission_type=strategy.commission.percent, commission_value=0.1) // Input parameters profit_target = input(0.3, title="Profit Target (%)") / 100 loss_target = input(0.2, title="Loss Target (%)") / 100 start_year = input(2021, title="Start Year") // Calculate daily open and close new_day = ta.change(time("D")) var float entry_price_long = na var float entry_price_short = na var bool position_long_open = false var bool position_short_open = false // Date check trade_start = timestamp(start_year, 1, 1, 0, 0) if new_day and time >= trade_start // If there was a previous long position, check for profit target if position_long_open current_profit_long = (close - entry_price_long) / entry_price_long if current_profit_long >= profit_target strategy.close("AUD Trade Long", comment="Take Profit Long") position_long_open := false // If there was a previous short position, check for profit target if position_short_open current_profit_short = (entry_price_short - close) / entry_price_short if current_profit_short >= profit_target strategy.close("AUD Trade Short", comment="Take Profit Short") position_short_open := false // Check for daily loss condition for short positions if position_short_open current_loss_short = (close - entry_price_short) / entry_price_short if current_loss_short <= -loss_target strategy.close("AUD Trade Short", comment="Stop Loss Short") position_short_open := false // Open a new long position to replace the stopped short position strategy.entry("AUD Trade Long Replacement", strategy.long) entry_price_long := close position_long_open := true // Open a new long position at the start of the new day if no long position is open if not position_long_open and not position_short_open strategy.entry("AUD Trade Long", strategy.long) entry_price_long := close position_long_open := true // Open a new short position at the start of the new day if no short position is open if not position_short_open and not position_long_open strategy.entry("AUD Trade Short", strategy.short) entry_price_short := close position_short_open := true // Check for continuous profit condition for long positions if position_long_open current_profit_long = (close - entry_price_long) / entry_price_long if current_profit_long >= profit_target strategy.close("AUD Trade Long", comment="Take Profit Long") position_long_open := false // Check for continuous profit condition for short positions if position_short_open current_profit_short = (entry_price_short - close) / entry_price_short if current_profit_short >= profit_target strategy.close("AUD Trade Short", comment="Take Profit Short") position_short_open := false // Plot the entry prices on the chart plot(position_long_open ? entry_price_long : na, title="Entry Price Long", color=color.green, linewidth=2) plot(position_short_open ? entry_price_short : na, title="Entry Price Short", color=color.red, linewidth=2) // Display current profit/loss percentage for long positions var label profit_label_long = na if position_long_open and not na(entry_price_long) current_profit_long = (close - entry_price_long) / entry_price_long * 100 label.delete(profit_label_long) profit_label_long := label.new(x=time, y=high, text="Long P/L: " + str.tostring(current_profit_long, format.percent), style=label.style_label_down, color=color.white, textcolor=color.black,xloc=xloc.bar_time) // Display current profit/loss percentage for short positions var label profit_label_short = na if position_short_open and not na(entry_price_short) current_profit_short = (entry_price_short - close) / entry_price_short * 100 label.delete(profit_label_short) profit_label_short := label.new(x=time, y=high, text="Short P/L: " + str.tostring(current_profit_short, format.percent), style=label.style_label_down, color=color.white, textcolor=color.black,xloc=xloc.bar_time)