Estrategia de captura de tendencias

El autor:¿ Qué pasa?, Fecha: 2024-04-26 11:48:28
Las etiquetas:- ¿Qué es?La SMA

img

Resumen general

La estrategia de captura de tendencias es una estrategia que detecta las formaciones de tendencia utilizando su propio método único y abre posiciones en la dirección de la tendencia. Cálcula un valor porcentual llamado limit dividiendo la diferencia entre los precios más altos y más bajos en un cierto rango por la suma de las longitudes de las velas en ese rango. Cuanto más cerca esté este valor de 100, más fuerte será la tendencia. Cuando este valor exceda un límite establecido y la media móvil esté subiendo, la estrategia abre una posición larga; cuando este valor exceda un límite establecido y la media móvil esté cayendo, la estrategia abre una posición corta.

Principio de la estrategia

  1. Calcule la diferencia entre los precios más altos y más bajos en un cierto rango, así como la suma de las longitudes de todas las velas en ese rango.
  2. Divide la diferencia por la suma de las longitudes de las velas y multiplica por 100 para obtener un valor porcentual llamado limit.
  3. Cuando el límite exceda un valor establecido y la media móvil suba, abrir una posición larga; cuando el límite exceda un valor establecido y la media móvil baje, abrir una posición corta.
  4. Después de abrir una posición, cierre una parte de la posición cuando el precio alcance el nivel de toma de ganancias y mueva la posición restante al nivel de stop loss.
  5. Cuando la media móvil se cruce hacia abajo, cierre la posición larga; cuando la media móvil se cruce hacia arriba, cierre la posición corta.

Ventajas estratégicas

  1. La estrategia utiliza un método único para detectar las formaciones de tendencia. Al calcular el valor límite para determinar la fuerza de la tendencia, ayuda a abrir posiciones al principio de la tendencia.
  2. Una vez abierta una posición, la estrategia controla el riesgo cerrando una parte de la posición y moviendo el nivel de stop loss de la posición restante.
  3. La estrategia utiliza los cruces ascendentes y descendentes de la media móvil para determinar el final de la tendencia, lo que ayuda a cerrar posiciones de manera oportuna.

Riesgos estratégicos

  1. La estrategia abre posiciones al comienzo de la tendencia. Si la tendencia no se puede mantener, puede causar pérdidas.
  2. La estrategia utiliza niveles fijos de toma de ganancias y stop loss, que pueden no ser lo suficientemente flexibles en algunos casos.
  3. La estrategia solo utiliza la media móvil para determinar tendencias, que pueden perder algunas oportunidades de tendencia.

Dirección de optimización de la estrategia

  1. Considere el uso de otros indicadores como el MACD y el RSI para ayudar a determinar las tendencias y mejorar la precisión de las posiciones de apertura.
  2. Ajuste dinámico de los niveles de toma de ganancias y stop loss basados en la volatilidad del mercado para controlar mejor el riesgo.
  3. Considere la posibilidad de abrir posiciones solo después de que se confirme la tendencia para reducir los riesgos al comienzo de la tendencia.

Resumen de las actividades

La estrategia de captura de tendencias utiliza un método único para detectar formaciones de tendencia y abrir posiciones en la dirección de la tendencia. Cálcula el valor límite para determinar la fuerza de la tendencia y utiliza el cruce de la media móvil para determinar el final de la tendencia. La estrategia controla el riesgo cerrando una parte de la posición y moviendo el nivel de stop loss después de abrir una posición. Sin embargo, la estrategia puede enfrentar ciertos riesgos al abrir posiciones al comienzo de la tendencia, el uso de niveles fijos de take profit y stop loss puede no ser lo suficientemente flexible, y solo el uso de la media móvil para determinar tendencias puede perder algunas oportunidades. En el futuro, podemos considerar la introducción de otros indicadores, ajustar dinámicamente los niveles de take profit y stop loss y abrir posiciones solo después de que se confirme la tendencia para optimizar la estrategia.


/*backtest
start: 2023-04-20 00:00:00
end: 2024-04-25 00:00:00
period: 1d
basePeriod: 1h
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/
// © faytterro

//@version=5
strategy("Trend Catcher Strategy", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
len = input.int(10)
tp = input.float(2.5, step = 0.1)
sl = input.float(2.5, step = 0.1)
malen = input.int(5)
limit = input.int(50)
ma = ta.sma(close,malen)
sum = 0.0
for i = 0 to len-1
    sum := sum + high[i]-low[i]
frs = 100*(ta.highest(high,len)-ta.lowest(low,len))/sum
//hline(50)
//plot(frs, color = color.white)
l = ta.crossover(frs,limit) and ma>ma[1]
s = ta.crossover(frs,limit) and ma<ma[1]
cl = ma<ma[1]
cs = ma>ma[1]
qty_balance=input.int(50, maxval = 100)
if (l)
    strategy.entry("My Long Entry Id", strategy.long)
    strategy.exit("exit long", "My Long Entry Id", qty_percent = qty_balance, limit = close*(100+tp)/100, stop = close*(100-sl)/100)

if (s)
    strategy.entry("My Short Entry Id", strategy.short)
    strategy.exit("exit short", "My Short Entry Id", qty_percent = qty_balance, limit = close*(100-tp)/100, stop = close*(100+sl)/100)

if (cl)
    strategy.close("My Long Entry Id")
if (cs)
    strategy.close("My Short Entry Id")

l:= l and strategy.opentrades<1
s:= s and strategy.opentrades<1
transp = strategy.opentrades>0? 0 : 100
pma=plot(ma, color = ma<ma[1]? color.rgb(255, 82, 82, transp) : color.rgb(76, 175, 79, transp))
price = open/2+close/2
pprice = plot(price, display = display.none)
fill(pma,pprice, color = ma<ma[1]? color.rgb(255, 82, 82, transp+90) : color.rgb(76, 175, 79, transp+90))

spm=plot(ta.valuewhen(s,close,0), color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.white : color.rgb(1,1,1,100), offset=1)
lpm=plot(ta.valuewhen(l,close,0), color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.white : color.rgb(1,1,1,100), offset=1)

ltp=plot(ta.valuewhen(l,close,0)*(100+ta.valuewhen(l,tp,0))/100,  color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.green : color.rgb(1,1,1,100), offset=1)
lsl=plot(ta.valuewhen(l,close,0)*(100-ta.valuewhen(l,sl,0))/100,  color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.red : color.rgb(1,1,1,100), offset=1)

stp=plot(ta.valuewhen(s,close,0)*(100-ta.valuewhen(s,tp,0))/100, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.green : color.rgb(1,1,1,100), offset=1)
ssl=plot(ta.valuewhen(s,close,0)*(100+ta.valuewhen(s,sl,0))/100, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.red : color.rgb(1,1,1,100), offset=1)
fill(stp,spm, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.rgb(76, 175, 79, 90) : color.rgb(1,1,1,100))
fill(ssl,spm, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.rgb(255, 82, 82, 90) : color.rgb(1,1,1,100))
fill(ltp,lpm, color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.rgb(76, 175, 79, 90) : color.rgb(1,1,1,100))
fill(lsl,lpm, color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.rgb(255, 82, 82, 90) : color.rgb(1,1,1,100))

Relacionados

Más.