
La estrategia de compra-venta es una estrategia de comercio a largo plazo muy simple pero eficaz. Se compra automáticamente cuando la criptomoneda cae drásticamente y se vende cuando la subida alcanza el objetivo establecido, lo que genera ganancias en el caso de grandes fluctuaciones en el mercado.
El núcleo de la estrategia es determinar si el mercado ha sufrido una caída significativa, calculando el alza y la baja de las criptomonedas en un período de retrospectiva dado. La estrategia se compra automáticamente cuando el precio de las criptomonedas ha caído significativamente en un período reciente, lo que indica que el mercado podría estar en un estado de pánico extremo. Además, la estrategia establece un punto de parada y un punto de parada, que se detiene automáticamente cuando el precio toca estos dos puntos.
En concreto, la estrategia utiliza la función trailing_change para calcular el alza y la baja de la criptomoneda en general durante un período de retrospectiva dado. Cuando el alza y la baja de la criptomoneda dentro de la línea K de la raíz inp_lkb más reciente es menor que el valor negativo del parámetro establecido dip, es una caída significativa que cumple con las condiciones de compra. En este momento, dentro de la ventana de tiempo de retrospección, se activa la operación de apertura de compra de la estrategia.
Después de comprar y abrir una posición, esta estrategia rastrea los cambios en el precio en tiempo real y establece dos condiciones de salida: 1) Cuando el precio cae por debajo del 1% del precio de apertura de la posición (1 - Stop Loss Ratio), se activa el Stop Loss; 2) Cuando el precio se rompe por encima del 1% del precio de apertura de la posición (1 + Stop Loss Ratio), se activa el Stop Loss Ratio.
La mayor ventaja de esta estrategia de compra y venta es que es muy simple y fácil de ejecutar. No requiere indicadores técnicos complejos, solo se basa en los altibajos de los últimos tiempos para juzgar la situación del mercado, y es muy adecuada para los principiantes en el comercio.
Además, la estrategia admite la configuración de stop loss y stop stop, que permite controlar eficazmente las pérdidas de las operaciones individuales y bloquear parte de las ganancias. Esto también hace que la estrategia sea adecuada para el comercio de activos, incluso si el mercado presenta una gran volatilidad adversa, para controlar las pérdidas dentro de los límites aceptables.
El principal riesgo de esta estrategia reside en la imposibilidad de determinar el momento en que el mercado se invertirá. Si el mercado continúa bajando y no se recupera, las posiciones de compra abiertas pueden tener grandes pérdidas. Por lo tanto, la configuración del punto de parada es crucial.
Otro riesgo a tener en cuenta es que si ocurre una gran oscilación en el mercado, los precios pueden provocar un stop loss o un stop loss en el corto plazo. Esto puede generar costos de negociación adicionales. Es común que los precios provoquen varios stop loss en el corto plazo, especialmente cuando hay una gran volatilidad en el mercado.
Para los riesgos mencionados anteriormente, podemos establecer un período de retroceso más amplio, para garantizar que las señales de compra sean más estables y confiables, y que puedan filtrar las señales falsas en parte de la oscilación. Además, agregar un período de tranquilidad comercial y no abrir nuevas posiciones durante un período de tiempo después de la liquidación de la posición también puede reducir efectivamente el problema de la alta frecuencia de operaciones causada por la oscilación de los precios.
La estrategia tiene espacio para una mayor optimización y se centra en los siguientes aspectos:
Ajuste dinámico de los parámetros de parada de pérdidas. Se puede ajustar la amplitud de parada de pérdidas y la amplitud de parada de pérdidas en función de la fluctuación dinámica de la tasa de mercado, establecer la amplitud de parada de pérdidas con flexibilidad en el momento del pánico en el mercado y apretar la amplitud de parada cuando las cosas van bien.
La combinación de varios factores para determinar el momento de comprar. Además de los altibajos recientes, se pueden introducir otros factores como el cambio en el volumen de transacciones para determinar una señal de reversión más confiable.
Unirse a un mecanismo de reingreso. Después de una parada o parada, se puede establecer una estrategia de reingreso para comprar nuevamente en una nueva oportunidad de reversión.
Esta estrategia de compra-venta es muy adecuada para el mercado de criptomonedas tan volátil en general, ya que captura las oportunidades de reversión del mercado y establece el riesgo de control de stop loss. Esta estrategia es muy simple, fácil de entender e implementar, y es muy adecuada para los principiantes en el comercio.
/*backtest
start: 2023-11-25 00:00:00
end: 2023-12-25 00:00:00
period: 1h
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=3
strategy(shorttitle='Buy the Dips',title='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() => time >= start and time <= finish ? true : false // create function "within window of time"
inp_lkb = input(1, title='Lookback Period')
perc_change(lkb) =>
overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100
// Call the function
overall = perc_change(inp_lkb)
//Entry
dip= -(input(2))
strategy.entry(id="long", long = true, when = overall< dip and window())
//Exit
Stop_loss= ((input (2))/100)
Take_profit= ((input (2))/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())