Estrategia de ruptura de la media móvil doble

El autor:¿ Qué pasa?, Fecha: 2024-02-04 16:06:46
Las etiquetas:

img

Resumen general

La estrategia de ruptura de la media móvil dual es una tendencia típica después de la estrategia de negociación cuantitativa. Genera señales de negociación calculando promedios móviles simples de diferentes períodos y comprobando si el precio rompe a través de ellos para determinar posiciones.

Estrategia lógica

La lógica central de la estrategia de doble OMA es:utilizar promedios móviles de diferentes períodos para capturar las tendencias de los precios y generar señales de negociación cuando el precio rompe los promedios móviles.

Específicamente, esta estrategia emplea promedios móviles simples de 20 días y 60 días. Estos dos promedios móviles se pueden ver como herramientas para capturar tendencias a corto y mediano plazo, respectivamente. Cuando el precio a corto plazo rompe el precio a mediano y largo plazo, indica que el mercado está en una tendencia al alza y, por lo tanto, debe ir largo. Cuando el precio a corto plazo cae por debajo del precio a mediano y largo plazo, indica que el mercado está en una tendencia a la baja y, por lo tanto, las posiciones deben reducirse.

El código utilizata.crossoveryta.crossunderPara determinar si el precio ha roto o ha caído por debajo de una media móvil, se emiten señales comerciales de posición larga o reducción cuando ocurre una ruptura.

Ventajas

La estrategia de ruptura de la media móvil dual tiene las siguientes ventajas:

  1. El concepto es simple y fácil de entender e implementar.
  2. Puede rastrear eficazmente las tendencias del mercado y evitar interferencias acústicas.
  3. Pocos parámetros de estrategia y fácil de optimizar.
  4. Flexible en la elección de períodos de media móvil para ajustar la sensibilidad del mercado.

Los riesgos

También hay algunos riesgos con la estrategia:

  1. Se puede aliviar aumentando el período de retención.
  2. No es eficaz para detectar cambios rápidos en el mercado, y se pueden añadir otros indicadores como filtros.
  3. Los promedios móviles están inherentemente rezagados, incapaces de señalar los cambios de precios de forma temprana.

Áreas de mejora

La estrategia puede reforzarse a partir de las siguientes dimensiones:

  1. Optimizar los períodos de promedio móvil para encontrar los mejores conjuntos de parámetros.
  2. Añadir otros indicadores para filtrar las señales falsas, por ejemplo, MACD, KD, etc.
  3. Agregue la lógica de stop loss.
  4. Incorporar análisis de marcos de tiempo múltiples para la robustez.

Resumen de las actividades

La estrategia de ruptura de la media móvil dual es una estrategia simple y práctica de seguimiento de tendencias. Puede capturar efectivamente las tendencias a medio y largo plazo evitando el ruido del mercado a corto plazo. Además, la lógica fácil de entender y los parámetros limitados lo hacen muy adecuado para el comercio cuantitativo. Por supuesto, hay margen para mejoras, como ajuste de parámetros, filtrado de señales y stop loss para hacerlo más estable y rentable.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 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/
// © Astorhsu

//@version=5
strategy("Astor SMA20/60", overlay=true)
backtest_year = input(2018, title='backtest_year') //回測開始年分
backtest_month = input.int(01, title='backtest_month', minval=1, maxval=12) //回測開始月份
backtest_day = input.int(01, title='backtest_day', minval=1, maxval=31)  //回測開始日期
start_time = timestamp(backtest_year, backtest_month, backtest_day, 00, 00)  //回測開始的時間函數

//Indicators
sma10 = ta.sma(close,10)
sma20 = ta.sma(close,20)
sma60 = ta.sma(close,60)
plot(sma20, color=color.green, title="sma(20)")
plot(sma60, color=color.red, title="sma(60)")

//進場條件
// trend1 = sma60 > sma20 //假設目前趨勢為60>20
longCondition = ta.crossover(close, ta.sma(close, 20))
if (longCondition) 
    strategy.entry("open long20", strategy.long, qty=1, comment="站上m20做多")


shortCondition = ta.crossunder(close, ta.sma(close, 20))
if (shortCondition) 
    strategy.close("open long20",comment="跌破m20平倉", qty=1)     
    
longCondition1 = ta.crossover(close, ta.sma(close, 60))
if (longCondition1) 
    strategy.entry("open long60", strategy.long, qty=1, comment="站上m60做多")


shortCondition1 = ta.crossunder(close, ta.sma(close, 60))
if (shortCondition1) 
    strategy.close("open long60",comment="跌破m60平倉", qty=1)     
    
// longCondition2 = ta.crossover(close, ta.sma(close, 10))
// if (longCondition2) 
//     strategy.entry("open long10", strategy.long, qty=1, comment="站上m10做多")


// shortCondition2 = ta.crossunder(close, ta.sma(close, 10))
// if (shortCondition2)
//     strategy.close("open long10",comment="跌破m10平倉", qty=1)   


Más.