Estrategia de compra con caída de precio en marcos temporales múltiples


Fecha de creación: 2023-10-27 16:56:23 Última modificación: 2023-10-27 16:56:23
Copiar: 0 Número de Visitas: 713
1
Seguir
1617
Seguidores

Estrategia de compra con caída de precio en marcos temporales múltiples

Descripción general

Las estrategias de compra de precios bajos en múltiples marcos de tiempo son estrategias de negociación automática relativamente simples que pueden obtener ganancias considerables en las fases de tendencia al alza. Sin embargo, no todas las caídas de precios son adecuadas para la compra y se necesita optimizar cada transacción para diferentes marcos de tiempo.

La estrategia utiliza un marco de tiempo de 1 hora para capturar una caída repentina de los precios, mientras que los precios han subido significativamente en las últimas 12 horas. En una tendencia ascendente de precios altos, el colapso instantáneo causado por la ganancia proporciona un buen momento para entrar en el mercado.

La configuración de este script está optimizada en el marco de tiempo de 30 minutos. Puede ajustar los parámetros para adaptarse a diferentes marcos de tiempo.

El sistema emite una señal de compra cuando se cumplen las siguientes condiciones:

  • El precio bajó un 1% en comparación con las dos líneas K anteriores (marco de tiempo de 1 hora = dos líneas K de 30 minutos)

  • El precio ha subido un 3% en las últimas 12 horas (en 24 líneas K de 30 minutos = marco de tiempo predeterminado)

La configuración ha sido optimizada y se han realizado más de 150 respuestas en más de 20 pares de criptomonedas diferentes.

La estrategia asume el 30% de los fondos disponibles para cada orden de negociación. La estrategia tiene en cuenta una tarifa de negociación del 0.1% que coincide con la tarifa básica de Binance (la mayor bolsa de criptomonedas del mundo).

Principio de estrategia

La idea central de la estrategia de compra de precios bajos en múltiples marcos de tiempo es combinar los marcos de tiempo largo y corto para determinar el momento de la entrada en el mercado.

En primer lugar, en el marco de tiempo de 1 hora, se determina si el precio ha sufrido una caída repentina. Esto se confirma al determinar si la línea K actual ha sufrido una caída de más del 1% en comparación con las dos líneas K anteriores.

En segundo lugar, en el marco de tiempo de 12 horas para determinar si hay un aumento significativo en el precio en la línea larga. Aquí se confirma si el aumento de precios alcanzó el 3% en las últimas 12 horas.

Solo se emite una señal de compra cuando el marco de tiempo corto está bajando y el marco de tiempo largo está en tendencia alcista.

Esta combinación evita la compra a ciegas en una tendencia bajista a largo plazo, y también puede capturar las oportunidades de compra que ofrece un ajuste a corto plazo. La combinación de diferentes marcos de tiempo hace que la estrategia de negociación sea más estable y confiable.

Técnicamente, la estrategia se desarrolla mediante la invocación de dos diferentes parámetros.perc_change()La función realiza dos juicios de los marcos de tiempo: uno juzga los aumentos de las últimas 12 horas y otro los aumentos de la última hora. Cuando ambos cumplen las condiciones al mismo tiempo, emite una señal de compra.

Análisis de las ventajas

La mayor ventaja de las estrategias de compra de precios bajos en marcos de tiempo múltiples es la capacidad de juzgar la tendencia de manera eficiente y capturar el momento de compra de ajustes a corto plazo. En concreto, las principales ventajas son las siguientes:

  1. La combinación de los dos marcos de tiempo más cortos evita la compra en la caída a largo plazo y reduce las pérdidas innecesarias.

  2. Los marcos de tiempo más cortos permiten capturar ajustes bruscos que ofrecen precios de compra más bajos.

  3. La retroalimentación optimiza los parámetros para que la estrategia sea más adecuada para las características de alta volatilidad de las criptomonedas.

  4. Se tiene en cuenta el impacto de las tarifas de transacción, lo que hace que la simulación se acerque más al entorno real de las transacciones.

  5. Sencilla lógica de transacción y configuración de parámetros, fácil de entender y ajustar.

  6. Se puede aplicar ampliamente a diferentes pares de transacciones, con una mayor flexibilidad.

Análisis de riesgos

Las estrategias de compra de precios bajos en marcos de tiempo múltiple también tienen ciertos riesgos, que se centran en:

  1. No se puede evitar el riesgo de una falsa ruptura, y un ajuste a corto plazo puede ser una reversión de la tendencia a largo plazo.

  2. La configuración de parámetros fijos puede no adaptarse completamente a los cambios en el mercado y requiere ajustes.

  3. La respuesta es que siempre funciona bien en simulaciones, pero hay diferencias en las transacciones reales.

  4. Si existe un cierto retraso de tiempo, es posible que se pierda el punto de compra óptimo de las fluctuaciones de precios a corto plazo.

  5. Las estrategias de negociación individuales son vulnerables a los riesgos sistémicos.

  6. Las transacciones de alta frecuencia aumentan la carga de las tarifas de las transacciones.

Para responder a los riesgos estratégicos, se pueden considerar las siguientes medidas de optimización:

  1. Añadir más indicadores para juzgar tendencias a corto y largo plazo y mejorar la precisión de los juicios.

  2. Optimizar la configuración de los parámetros para que se adapte más dinámicamente a los cambios en el mercado.

  3. Prueba de estrategias en entornos reales y mide las diferencias entre la retroalimentación y el disco real.

  4. Ajuste adecuado del marco de tiempo para reducir el retraso temporal.

  5. El uso simultáneo de múltiples estrategias no relacionadas para dispersar el riesgo sistémico.

  6. Establecer un límite de pérdidas y controlar el riesgo de una sola transacción.

Dirección de optimización

Hay mucho espacio para la optimización de las estrategias de compra de precios bajistas en marcos temporales múltiples, principalmente en los siguientes aspectos:

  1. La inclusión de más indicadores como las bandas de Brin, el RSI, etc., para mejorar la estabilidad de la estrategia.

  2. Incorporar modelos de aprendizaje automático para optimizar dinámicamente los parámetros y adaptarse a los cambios en el mercado.

  3. Optimización de las estrategias de stop loss y reducción del riesgo de una sola operación.

  4. Intenta hacer una revisión en más pares de transacciones y períodos de tiempo para encontrar la combinación óptima de parámetros.

  5. Combinando con indicadores como el cambio en el volumen de transacciones, evita ser engañado por el arbitraje.

  6. Aumentar los módulos de gestión de riesgos, como la asignación de activos, el control de posiciones, etc., para controlar el riesgo general.

  7. Pruebe otros tipos de estrategias para el comercio algorítmico, como el seguimiento de tendencias, el arbitraje, etc., y diversifique.

  8. Explorar combinaciones de marcos de tiempo múltiples más complejas para encontrar la combinación óptima de parámetros.

  9. La idea es que los eventos noticiosos puedan ser usados como un motor para el comercio.

Mediante estas optimizaciones, la estrategia puede ser más estable, inteligente y completa, adaptándose a la complejidad del mercado de criptomonedas. Sin embargo, cualquier optimización requiere una prueba cuidadosa para evitar problemas de optimización excesiva.

Resumir

La estrategia de compra de precios bajos en el marco temporal múltiple es una estrategia de negociación de línea corta muy práctica en general. Se centra en las dos dimensiones temporales, a corto y largo plazo, y aumenta la precisión de los juicios al tiempo que se mantiene relativamente eficiente. Con la configuración y optimización de parámetros razonables, se puede adaptar a la mayoría de los mercados de negociación, especialmente en productos de tendencia.

Sin embargo, como cualquier estrategia de automatización, también tiene ciertas limitaciones, que requieren que los comerciantes se mantengan racionales y se optimicen y ajusten constantemente para adaptarse a los cambios en el mercado. Una estrategia exitosa siempre está evolucionando, no es inmutable.

En resumen, la estrategia de compra de precios de bajada de múltiples marcos temporales proporciona un excelente ejemplo de comercio algorítmico. Enumera los elementos básicos de la negociación algorítmica, como la elección de diferentes marcos temporales, la configuración de parámetros, la optimización de retroalimentación y el control de riesgos.

Código Fuente de la Estrategia
/*backtest
start: 2023-09-26 00:00:00
end: 2023-10-26 00:00:00
period: 4h
basePeriod: 15m
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/
// © Coinrule

//@version=1
strategy(shorttitle='Multi Time Frame Buy the Dips',title='Multi Time Frame Buy the Dips (by Coinrule)', overlay=true, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)


//Backtest dates
fromMonth = input(defval = 1,  title = "From Month")     
fromDay   = input(defval = 10,    title = "From Day")       
fromYear  = input(defval = 2020, title = "From Year")       
thruMonth = input(defval = 1,    title = "Thru Month")     
thruDay   = input(defval = 1,    title = "Thru Day")     
thruYear  = input(defval = 2112, title = "Thru Year")       

showDate  = input(defval = true, title = "Show Date Range")

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"

inp_lkb = input(24, title='Lookback Long Period')
inp_lkb_2 = input(2, title='Lookback Short Period')
 
perc_change(lkb) =>
    overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100

// Call the function    
overall = perc_change(inp_lkb)
overall_2 = perc_change(inp_lkb_2)

//Entry

dip= -(input(1))
increase= (input(3))

strategy.entry(id="long", long = true, when = overall > increase and overall_2 < dip and window()) 

//Exit
Stop_loss= ((input (3))/100)
Take_profit= ((input (4))/100)

longStopPrice  = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)

strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())