Tendencia de la MAD en varios marcos temporales

El autor:¿ Qué pasa?, Fecha: 2024-01-04 17:43:17
Las etiquetas:

img

Resumen general

Esta estrategia se basa en el cruce de promedios móviles de varios marcos de tiempo para rastrear las tendencias a medio y largo plazo. Adopta una posición piramidal para perseguir aumentos y lograr un crecimiento exponencial del capital. La mayor ventaja es poder capturar las tendencias a medio y largo plazo y las entradas de la pirámide en lotes y etapas para obtener rendimientos excedentes.

Estrategia lógica

  1. Construir marcos de tiempo múltiples basados en el MA de 9 días, el MA de 100 días y el MA de 200 días.
  2. Generar señales de compra cuando el MA de período más corto se cruce por encima del MA de período más largo.
  3. Adopte 7 entradas piramidales escalonadas. Compruebe las posiciones existentes antes de agregar una nueva entrada, deje de piramidar cuando ya se abran 6 posiciones.
  4. Establecer un TP/SL fijo del 3% para el control del riesgo.

Lo anterior es la lógica básica del trading.

Ventajas

  1. Captar eficazmente las tendencias a medio y largo plazo y disfrutar de un crecimiento exponencial.
  2. El cruce de MA multi-tiempo evita el ruido a corto plazo.
  3. El TP/SL fijo controla el riesgo para cada posición.
  4. Entradas piramidal en lotes para obtener rendimientos excedentes.

Riesgos y soluciones

  1. La solución es acortar los períodos de MA y acelerar el stop loss.
  2. La solución es reducir el tamaño de la posición inicial.
  3. La solución es aumentar el porcentaje de stop loss fijo.

Direcciones de optimización

  1. Prueba diferentes combinaciones de MA para encontrar los parámetros óptimos.
  2. Optimiza la cantidad de etapas de la pirámide. Prueba para encontrar el mejor número.
  3. Prueba configuraciones fijas de TP/SL. Amplía el rango de TP para una mayor rentabilidad.

Resumen de las actividades

La estrategia es muy adecuada para capturar tendencias a mediano y largo plazo. Las entradas de pirámide en lotes pueden lograr una relación riesgo-recompensa muy alta. También hay algunos riesgos de operación, que deben controlarse mediante el ajuste de parámetros. En general, esta es una estrategia prometedora que vale la pena verificar y optimizar aún más el comercio en vivo.


/*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)
     


Más.