Estrategia original de seguimiento de tendencias basada en medias móviles


Fecha de creación: 2023-11-23 15:54:37 Última modificación: 2023-11-23 15:54:37
Copiar: 0 Número de Visitas: 581
1
Seguir
1617
Seguidores

Estrategia original de seguimiento de tendencias basada en medias móviles

Descripción general

Esta estrategia se basa en la parte física de la vela, en combinación con los indicadores de EMA para determinar la dirección de la tendencia del mercado, para lograr el efecto de ORIGINAL PRIMITIVE TREND TRACKING. Haga más cuando haya un gran sol y haga vacío cuando haya un gran sol, para seguir la tendencia del mercado.

Principio de estrategia

  1. Calcula la longitud media de la entidad de la vela en los últimos 30 K
  2. Hacer más cuando la línea K más reciente es la línea de sol y la longitud de la entidad es mayor que sbody/2
  3. Cuando se ha hecho el plus, si la línea K más reciente es la línea negativa, la longitud de la entidad es mayor que sbody/2, y la posición actual es el estado de ganancia, entonces la posición más plana
  4. Cuando la línea K más reciente es la línea negativa y la longitud de la entidad es mayor que sbody/2, hacer un espacio
  5. Cuando se ha hecho un descuento, si la línea K más reciente es la línea de sol, la longitud de la entidad es mayor que sbody/2, y la posición actual está en estado de ganancia, la posición está en blanco

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. Simple, fácil de entender y de hacer
  2. Basado en la estructura de las velas, los breakouts de Trading Breakouts tienen cierto efecto
  3. Seguir las tendencias para capturar las tendencias más grandes
  4. Las posiciones de ganancias se detuvieron rápidamente, lo que favoreció el cierre de ganancias.

Análisis de riesgos

La estrategia también tiene sus riesgos:

  1. La incapacidad de filtrar efectivamente las brechas falsas puede causar pérdidas innecesarias
  2. La vulnerabilidad a los puntos de deslizamiento y a los saltos nocturnos se determina solo por las velas.
  3. No tiene en cuenta la alta frecuencia de las transacciones

El riesgo puede reducirse de la siguiente manera:

  1. Combinación con otros indicadores para filtrar señales
  2. Establecimiento de una estrategia de stop loss
  3. Optimización de parámetros para controlar la frecuencia de las operaciones

Dirección de optimización

Esta estrategia puede ser optimizada en los siguientes aspectos:

  1. Aumentar los indicadores de brecha y filtrar las falsas brechas
  2. Aumentar las estrategias de detener las pérdidas y reducir las pérdidas individuales
  3. Combinación de indicadores de tendencia para examinar la dirección de la tendencia
  4. Optimización de parámetros para encontrar la mejor combinación de parámetros

Resumir

Esta estrategia es una estrategia de seguimiento de tendencias de tipo simple y original. La dirección de la tendencia se puede seguir de manera efectiva a través de un juicio de la estructura de la vela. Al mismo tiempo, se puede establecer un mecanismo de parada rápida para bloquear las ganancias.

Código Fuente de la Estrategia
/*backtest
start: 2023-10-23 00:00:00
end: 2023-11-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Noro's Primitive Strategy v1.0", shorttitle = "Primitive str 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 10)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usebody = input(true, defval = true, title = "Use body")
useus = input(true, defval = true, title = "Use UUP")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(01, defval = 01, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Logic
body = abs(close - open)
sbody = ema(body, 30) / 2
bar = close > open ? 1 : close < open ? -1 : 0

//Signals
up = bar == -1 and (body > sbody or usebody == false) and (close < strategy.position_avg_price or strategy.position_size <= 0 or useus == false)
dn = bar == 1 and (body > sbody or usebody == false) and (close > strategy.position_avg_price or strategy.position_size >= 0 or useus == false)

//Trading
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
    
if time > timestamp(toyear, tomonth, today, 00, 00)
    strategy.close_all()