Estrategia de negociación de promedio móvil de ruptura semanal

El autor:¿ Qué pasa?, Fecha: 2024-01-18 11:47:25
Las etiquetas:

img

Resumen general

Esta estrategia se negocia basándose en el precio de cierre semanal de Bitcoin y el promedio móvil simple de 8 semanas. Se hace largo cuando el precio de cierre semanal se rompe por encima de la línea de 8 semanas y se cierra la posición cuando el precio de cierre semanal se rompe por debajo de la línea de 8 semanas.

Estrategia lógica

Esta estrategia analiza la acción semanal del precio de Bitcoin y el promedio móvil simple de 8 semanas para juzgar si el mercado está en una tendencia alcista o una tendencia bajista. Cuando el precio de cierre semanal se rompe por encima de la línea de 8 semanas, indica que el mercado ha entrado en un canal de tendencia alcista y una posición larga podría obtener ganancias. Cuando el precio de cierre semanal se rompe por debajo de la línea de 8 semanas, indica que el gráfico semanal de Bitcoin ha entrado en un canal de tendencia bajista y que las posiciones largas existentes deben detenerse.

En concreto, la estrategia establece las siguientes condiciones de negociación:

buy_condition = crossover(btc,ma) #weekly closing price breaks above 8-week line, go long
sell_condition = crossunder(btc,ma) #weekly closing price breaks below 8-week line, close position

Cuando se cumple la condición de compra, la estrategia va a largo. Cuando se activa la condición de venta, la estrategia sale con tomar ganancias o stop loss.

Además, se configuran los coeficientes de stop loss y take profit:

loss_ratio=input(defval=1,title="LOSS RATIO", group="STRATEGY")
reward_ratio=input(defval=3,title="REWARD RATIO", group="STRATEGY") 

La tasa de stop loss por defecto es 1 y la tasa de take profit por defecto es 3. Esto significa que cuando la señal de salida llega, si actualmente es rentable, salga con 3 veces el beneficio. Si actualmente es pérdida, salga con 1 vez la pérdida.

Análisis de ventajas

Las ventajas de esta estrategia incluyen:

  1. Cuadro de tiempo semanal, menos utilización, adecuado para la tenencia a largo plazo
  2. El MA de 8 semanas filtra el ruido e identifica las principales tendencias
  3. Control de pérdidas y ganancias

Análisis de riesgos

También hay algunos riesgos:

  1. Incapacidad para ajustar la posición en función de la acción de los precios a corto plazo
  2. Las señales de fuga pueden tener señales falsas.
  3. Las operaciones de stop loss/take profit pueden fallar durante eventos extremos del mercado

Contramedidas:

  1. Combinar con otros indicadores a corto plazo para captar oportunidades a corto plazo
  2. Añadir filtros para evitar señales falsas
  3. Ajuste de los ratios stop loss/take profit basados en las condiciones del mercado para limitar las pérdidas

Direcciones de optimización

Algunas maneras de mejorar esta estrategia:

  1. Añadir filtros adicionales para garantizar señales de ruptura válidas
  2. Optimizar las tasas de stop loss y take profit
  3. Incorporar indicadores a corto plazo para el análisis de marcos de tiempo múltiples
  4. Utilice el aprendizaje automático para optimizar automáticamente los parámetros

Conclusión

En resumen, esta es una estrategia simple y directa que juzga la tendencia basada en los breakouts semanales y el promedio móvil. También controla el riesgo a través de stop loss y take profit. Puede servir como un sistema de referencia para las tenencias de Bitcoin a largo plazo.


/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 3m
basePeriod: 1m
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/
// © taberandwords
//developer: taberandwords
//author: taberandwords
//@version=4

strategy("WEEKLY BTC TRADING SCRYPT","WBTS",overlay=false,default_qty_type=strategy.fixed)

source=input(defval=close,title="source",group="STRATEGY")

btc=security('BTCUSDT','1W', source)
ma=sma(btc,8)

buy_condition= crossover(btc,ma) 
sell_condition= crossunder(btc,ma)

ma_color=input(defval=#FF3232,title="COLOR",group="MA")
ma_linewidth=input(defval=2,title="LINE WIDTH",group="MA")
graphic_color=input(defval=#6666FF,title="COLOR",group="GRAPHIC")
graphic_linewidth=input(defval=2,title="LINE WIDTH",group="GRAPHIC")

start_date=input(defval=2020,title="YEAR",group="STRATEGY EXECUTION YEAR")

loss_ratio=input(defval=1,title="LOSS RATIO", group="STRATEGY")
reward_ratio=input(defval=3,title="REWARD RATIO", group="STRATEGY")

if(year>=start_date)
    strategy.entry('BUY',long=true,when=buy_condition,alert_message='Price came to buying value!')

    if(strategy.long)
        alert('BTC buy order trigerred!',alert.freq_once_per_bar)
    strategy.exit(id="SELL",loss=loss_ratio,profit=reward_ratio,when=sell_condition,alert_message='Price came to position closing value!')
    if(sell_condition)
        alert('BTC sell order trigerred!',alert.freq_once_per_bar)
plot(series=source,title="WEEKLY CLOSE",color=graphic_color,linewidth=graphic_linewidth)
plot(ma,title="SMA8 WEEKLY",color=ma_color,linewidth=ma_linewidth)
plot(strategy.equity,display=0)


Más.