
La estrategia permite el seguimiento de la tendencia de los precios de las criptomonedas al establecer los puntos altos y bajos en los que los precios se rompen. Hacer más cuando el precio rompe los puntos altos y hacer menos cuando el precio rompe los puntos bajos para capturar la tendencia.
La estrategia se basa principalmente en el cálculo de la tendencia al alza o a la baja de los precios mediante la ley de la media móvil plana. En concreto, se toman en cuenta los precios más altos y más bajos de un período determinado, y se toman en cuenta las tendencias al alza cuando los precios de las operaciones reales superan los precios más altos de las estadísticas; y se toman en cuenta las tendencias a la baja cuando los precios de las operaciones reales son inferiores a los precios más bajos de las estadísticas.
El precio de apertura de la posición para hacer más vacío se establece mediante la barra de parámetros ENTRY, y el precio de posición baja se establece mediante la barra de parámetros EXIT. El período de retracción también se puede establecer a través de los parámetros. Así, se puede ajustar los parámetros para buscar la combinación de combos óptima.
En concreto, la lógica principal de la estrategia es la siguiente:
A través de este ciclo lógico, se puede capturar la tendencia de subida y bajada de los precios y realizar un seguimiento de tendencias.
La mayor ventaja de esta estrategia es que se puede capturar automáticamente la tendencia de los precios a través del ajuste de parámetros, sin necesidad de juzgar manualmente la dirección de la tendencia. Siempre que los parámetros estén configurados correctamente, se puede seguir automáticamente la fluctuación de los precios de las criptomonedas.
Además, la estrategia es muy adecuada para el comercio de la cantidad, que puede ser fácil de automatizar los pedidos. No se requiere la intervención manual, reduce el riesgo de comercio emocional, que puede aumentar considerablemente la eficiencia de la negociación.
Finalmente, la estrategia también puede maximizar los beneficios mediante ajustes de parámetros. Al probar diferentes parámetros de ENTRY y EXIT, se puede encontrar el parámetro óptimo para maximizar los beneficios.
El mayor riesgo de esta estrategia es que la configuración inadecuada de los parámetros puede conducir a operaciones demasiado frecuentes, aumentando los gastos de transacción y la pérdida de puntos de deslizamiento. Si la configuración de ENTRY es demasiado baja y la configuración de EXIT es demasiado alta, es fácil generar señales de negociación falsas.
Además, si los parámetros se ajustan incorrectamente, puede resultar en no poder capturar la tendencia de los precios a tiempo y perder oportunidades de negociación. Esto requiere una gran cantidad de retroalimentación para encontrar los parámetros óptimos.
Finalmente, la estrategia es demasiado sensible al ruido del mercado a corto plazo y puede generar señales de negociación erróneas. Esto debe evitarse mediante la configuración adecuada de los parámetros de ciclo de tiempo de negociación.
La estrategia puede seguir optimizándose en las siguientes direcciones:
Aumentar la lógica de stop loss. De esta manera, se puede detener la salida de pérdidas cuando las pérdidas se expanden a una cierta proporción, evitando mayores pérdidas.
Aumentar el filtro de indicadores técnicos como las medias móviles. Utilice indicadores como MA, KDJ para juzgar las grandes tendencias y evitar que el ruido a corto plazo traiga demasiadas transacciones.
Optimización de la lógica de configuración de parámetros. Se puede configurar un mecanismo de cambio adaptativo de los parámetros ENTRY, EXIT, en lugar de una configuración estática, para que se puedan ajustar los parámetros según el entorno del mercado.
Aprovechar los parámetros óptimos de entrenamiento de aprendizaje automático. Entrenar con una gran cantidad de datos históricos para obtener los mejores ajustes de ENTRY y EXIT para el entorno de mercado actual.
La estrategia permite la automatización de la negociación mediante la captura de tendencias de precios, con el mayor beneficio de reducir la influencia de las emociones humanas en la negociación, reducir el riesgo y aumentar la eficiencia. Al mismo tiempo, se puede buscar el punto de beneficio óptimo mediante el ajuste de parámetros.
El principal riesgo de las estrategias es la configuración incorrecta de los parámetros y la excesiva sensibilidad al ruido del mercado. Esto requiere mejoras a través de métodos como la pérdida de pérdidas, el filtrado de indicadores y la optimización de la adaptación de los parámetros.
En general, la estrategia es una estrategia de seguimiento de tendencias simple y eficaz, adecuada para la cuantificación y el comercio automático. La estabilidad de la estrategia se puede mejorar aún más con la optimización continua.
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
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/
// © JstMtlQC
//@version=4
strategy("Trend Following Breakout",calc_on_order_fills=true,calc_on_every_tick =false, overlay=true, initial_capital=2000,commission_value=.1,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
/////////////// INPUT ENTRY EXIT
entry= input(100, "ENTRY H/L")
exit= input(50, "EXIT H/L")
/////////////// Backtest Input
FromYear = input(2015, "Backtest Start Year")
FromMonth = input(1, "Backtest Start Month")
FromDay = input(1, "Backtest Start Day")
ToYear = input(2999, "Backtest End Year")
ToMonth = input(1, "Backtest End Month")
ToDay = input(1, "Backtest End Day")
/////////////// Backtest Setting
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() => time >= start and time <= finish ? true : false
/////////////// BUY OPEN PLOT
highestpricelong = highest(high,entry)[1]
plot(highestpricelong, color=color.green, linewidth=2)
/////////////// BUY CLOSE PLOT
lowestpricelong = lowest(high,exit)[1]
plot(lowestpricelong, color=color.green, linewidth=2)
/////////////// SHORT OPEN PLOT
lowestpriceshort = lowest(low,entry)[1]
plot(lowestpriceshort, color=color.red, linewidth=2)
/////////////// SHORT CLOSE PLOT
highestpriceshort = highest(low,exit)[1]
plot(highestpriceshort, color=color.red, linewidth=2)
///////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// CONDITION LONG SHORT //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
/////////////// SHORT
entryshort= crossunder(close, lowestpriceshort)
exitshort= crossover(close,highestpriceshort)
/////////////// LONG
exitlong= crossover(close, lowestpricelong)
entrylong= crossover(close,highestpricelong)
///////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// LONG and SHORT ORDER //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
/////////////// LONG
if (entrylong)
strategy.entry("LongEntry", strategy.long, when = window())
if (exitlong or entryshort)
strategy.close("LongEntry", when=window())
/////////////// SHORT
if (entryshort)
strategy.entry("short", strategy.short, when = window())
if (exitshort or entrylong)
strategy.close("short", when=window())