Estrategia de seguimiento de tendencias de diferencias múltiples de medias móviles


Fecha de creación: 2024-01-04 17:43:17 Última modificación: 2024-01-04 17:43:17
Copiar: 0 Número de Visitas: 630
1
Seguir
1619
Seguidores

Estrategia de seguimiento de tendencias de diferencias múltiples de medias móviles

Descripción general

La estrategia se basa en una diferencia de nivel de marco de tiempo múltiple en la línea media, sigue la tendencia de la línea media larga, adopta el modelo de seguimiento de posiciones de diferencia de nivel, y logra un crecimiento indexal del capital. La mayor ventaja de la estrategia es que puede capturar la tendencia de la línea media larga y realizar un seguimiento por etapas, lo que permite obtener ganancias adicionales.

Principio de estrategia

  1. Construir un marco de tiempo múltiple basado en la línea media de 9 días, la línea media de 100 días y la línea media de 200 días
  2. La señal de compra se produce cuando la media corta de tiempo se rompe de abajo hacia arriba.
  3. El modelo de seguimiento de posiciones con diferencias de 7 niveles, cada vez que se abre una nueva posición, se juzga si la posición anterior está llena, y si ya hay 6 posiciones, no se aumenta la posición.
  4. Cada posición tiene un punto de parada fijo del 3% para el control de riesgo.

Esto es lo que se llama la lógica básica de la estrategia.

Ventajas estratégicas

  1. En la actualidad, el sector de la construcción de viviendas está en pleno apogeo de la industria de la construcción de viviendas, ya que la mayoría de las viviendas de la ciudad son de tipo urbano.
  2. El uso de una línea media de varios períodos de tiempo para la diferencia de grado, puede evitar de manera efectiva la interferencia del ruido del mercado de la línea corta.
  3. Establezca un punto de parada fijo para controlar el riesgo de cada posición.
  4. El modelo de seguimiento de diferencias de nivel, la construcción de almacenes por lotes, puede aprovechar las oportunidades de tendencia y obtener beneficios adicionales.

Riesgos estratégicos y soluciones

  1. Existe el riesgo de ser terminado. Si la situación cambia, no se puede detener la salida a tiempo y se pueden enfrentar grandes pérdidas. La solución es reducir el ciclo de la línea media y acelerar la velocidad de detener los pérdidas.
  2. Existen riesgos de posición. Si un evento inesperado causa pérdidas por encima de la tolerancia, se enfrenta al riesgo de una garantía adicional o un estallido. La solución es reducir adecuadamente la proporción de la posición inicial.
  3. Existe un riesgo de pérdidas excesivas. Si el mercado cae drásticamente, la diferencia de escala se vuelve a la cabeza y puede perder hasta más del 700%. La solución es aumentar el porcentaje de pérdidas fijas y acelerar las pérdidas.

Dirección de optimización de la estrategia

  1. Se puede probar una combinación lineal promedio de diferentes parámetros para encontrar el mejor parámetro.
  2. El número de posiciones que se pueden optimizar para construir un almacén. Prueba diferentes posiciones de diferencia de escala para encontrar la mejor solución.
  3. Se puede probar la configuración de la parada de pérdidas fija. Ampliar adecuadamente el rango de la parada para obtener una mayor rentabilidad.

Resumir

En general, esta estrategia es muy adecuada para capturar la tendencia de la línea larga de la situación, el uso de seguimiento por etapas por lotes, puede obtener beneficios excedentarios muy altos en relación con el riesgo y la ganancia. Al mismo tiempo, existe cierto riesgo operativo, que debe controlarse mediante el ajuste de parámetros, etc., para encontrar un equilibrio entre los beneficios y el riesgo. En general, la estrategia es muy digna de ser comprobada en la práctica, y se puede ajustar y optimizar en función de los resultados de la prueba.

Código Fuente de la Estrategia
/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 1m
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/
    // © Coinrule
    
//@version=3
strategy(shorttitle='Pyramiding Entry On Early Trends',title='Pyramiding Entry On Early Trends (by Coinrule)', overlay=false, pyramiding= 7, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 20, 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()  => true       // create function "within window of time"
    
    
//MA inputs and calculations
inSignal=input(9, title='MAfast')
inlong1=input(100, title='MAslow')
inlong2=input(200, title='MAlong')
    
MAfast= sma(close, inSignal)
MAslow= sma(close, inlong1)
MAlong= sma(close, inlong2)
    
    
Bullish = crossover(close, MAfast) 
    
longsignal = (Bullish and MAfast > MAslow and MAslow < MAlong and window())
    
//set take profit
    
ProfitTarget_Percent = input(3)
Profit_Ticks = (close * (ProfitTarget_Percent / 100)) / syminfo.mintick
    
//set take profit
    
LossTarget_Percent = input(3)
Loss_Ticks = (close * (LossTarget_Percent / 100)) / syminfo.mintick
    
    
//Order Placing
    
strategy.entry("Entry 1", strategy.long, when = (strategy.opentrades == 0) and longsignal)
    
strategy.entry("Entry 2", strategy.long, when = (strategy.opentrades == 1) and longsignal)
        
strategy.entry("Entry 3", strategy.long, when = (strategy.opentrades == 2) and longsignal)
    
strategy.entry("Entry 4", strategy.long, when = (strategy.opentrades == 3) and longsignal)
    
strategy.entry("Entry 5", strategy.long, when = (strategy.opentrades == 4) and longsignal)
        
strategy.entry("Entry 6", strategy.long, when = (strategy.opentrades == 5) and longsignal)
        
strategy.entry("Entry 7", strategy.long, when = (strategy.opentrades == 6) and longsignal)
    
    
    
if (strategy.position_size > 0)
    strategy.exit(id="Exit 1", from_entry = "Entry 1", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 2", from_entry = "Entry 2", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 3", from_entry = "Entry 3", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 4", from_entry = "Entry 4", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 5", from_entry = "Entry 5", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 6", from_entry = "Entry 6", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 7", from_entry = "Entry 7", profit = Profit_Ticks, loss = Loss_Ticks)