Dinámica de la media móvil Retracement Estrategia de Martin

El autor:¿ Qué pasa?, Fecha: 2023-11-24 10:19:21
Las etiquetas:

img

Resumen general

La estrategia Martin es una estrategia de negociación frecuente que combina cruces de promedio móvil y señales de retroceso para generar señales de entrada y salida. La estrategia utiliza el cruce y la divergencia de promedios móviles simples de 3 días y 8 días para capturar tendencias a corto plazo, y adopta paradas y tomar ganancias para controlar los riesgos.

Estrategia lógica

La estrategia utiliza promedios móviles simples de 3 días y 8 días y sus señales de cruce. Una señal larga se genera cuando el MA de 3 días cruza por encima del MA de 8 días, y una señal corta se genera cuando el MA de 3 días cruza por debajo del MA de 8 días. Las señales largas desencadenarán una entrada larga y las señales cortas desencadenarán una entrada corta.

Si no hay posición, la estrategia determinará la entrada en función de las señales de cruce. Después de la entrada, el precio de stop loss y el precio de take profit se calcularán en función del último precio de cierre, el porcentaje de stop loss y el porcentaje de take profit. Por ejemplo, cuando se mantiene una posición larga, el precio de stop loss es el último precio de cierre menos el porcentaje de stop loss multiplicado por el MA de 8 días; el precio de take profit es el último precio de cierre más el porcentaje de take profit multiplicado por el MA de 8 días.

Si hay una posición larga existente, cuando el precio desencadena el take profit o stop loss, si se produce una señal de retroceso del MA de 8 días, la posición se cerrará.

La estrategia también traza puntos de entrada y salida en el gráfico. Por ejemplo, una entrada larga se traza como un triángulo ascendente y una salida larga como un triángulo descendente. Esto ayuda a juzgar visualmente entradas y salidas.

Análisis de ventajas

Las ventajas de esta estrategia son:

  1. Captura las tendencias a corto plazo utilizando señales de cruce de promedios móviles, lo que permite una negociación frecuente.
  2. El mecanismo de stop loss puede controlar pérdidas individuales.
  3. El ajuste de ganancias puede bloquear ganancias parciales.
  4. Las direcciones de negociación se pueden seleccionar para adaptarse a diferentes etapas.
  5. Visualiza los puntos de entrada y salida en el gráfico para mayor claridad.

Análisis de riesgos

Los principales riesgos de esta estrategia son:

  1. Las estrategias de MA a corto plazo tienden a ser cortadas.
  2. Posibilidad de retraso de las señales de las medias móviles.
  3. Las pérdidas consecutivas pueden dar lugar a pérdidas agravadas.
  4. El porcentaje de pérdida de parada establecido incorrectamente puede ser demasiado flojo o demasiado ajustado.

Los riesgos pueden reducirse aumentando razonablemente el porcentaje de stop loss, optimizando los parámetros de MA, introduciendo condiciones de filtro adicionales, etc. También es importante evaluar correctamente la tolerancia personal y evitar el exceso de operaciones.

Direcciones de optimización

Esta estrategia se puede optimizar a partir de los siguientes aspectos:

  1. Prueba más combinaciones de MA para encontrar parámetros óptimos.
  2. Añadir otros indicadores como RSI, KD, etc. para mejorar la calidad de la señal.
  3. Ajustar el porcentaje de pérdida de parada de acuerdo con diferentes productos y plazos.
  4. Añadir el control del tamaño de la posición, como cantidad fija o capital fijo.
  5. Agregue las reglas de orden de entrada.
  6. Optimizar y evaluar los niveles de stop loss o take profit.

Resumen de las actividades

La estrategia Martin es una estrategia de trading a corto plazo. Captura las tendencias a corto plazo formadas por cruces de promedios móviles, y gestiona los riesgos con paradas y ganancias adecuadas. La naturaleza frecuente del trading le da oportunidades de ganancias, así como riesgos. Al optimizar los parámetros, filtrar las señales y controlar los riesgos, esta estrategia se puede mejorar aún más para mayor fiabilidad.


/*backtest
start: 2022-11-17 00:00:00
end: 2023-11-23 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/
// © blackcat1402
//@version=5
strategy('[blackcat] L1 MartinGale Scalping Strategy', overlay=true, pyramiding = 5)

// Define input variables
takeProfit = input(1.03, title='Take Profit')
stopLoss = input(0.95, title='Stop Loss')
inputTradingMode = input.string(defval='Long', options=['Long', 'Short', 'BiDir'], title='Trading Mode')

//The purpose of this rule is to forbid short entries, only long etries will be placed. The rule affects the following function: 'entry'.
strategy.risk.allow_entry_in(inputTradingMode == 'Long' ? strategy.direction.long : inputTradingMode == 'Short' ? strategy.direction.short : strategy.direction.all)

// Define strategy logic
entryPrice = 0.0
stopPrice = 0.0
takeProfitPrice = 0.0
stopLossPrice = 0.0

// Define SMA crossover and crossunder signals
sma3 = ta.sma(close, 3)
sma8 = ta.sma(close, 8)
plot(sma3, color=color.yellow)
plot(sma8, color=color.fuchsia)
crossoverSignal = ta.crossover(sma3, sma8)
crossunderSignal = ta.crossunder(sma3, sma8)
crossoverState = sma3 > sma8
crossunderState = sma3 < sma8

if strategy.position_size == 0
    if crossoverState
        strategy.entry('Buy', strategy.long)
        entryPrice := close
        stopPrice := close - stopLoss * sma8[1]
        takeProfitPrice := close + takeProfit * sma8[1]
        stopLossPrice := stopPrice
        stopLossPrice
    if crossunderState
        strategy.entry('Sell', strategy.short)
        entryPrice := close
        stopPrice := close + stopLoss *  sma8[1]
        takeProfitPrice := close - takeProfit *  sma8[1]
        stopLossPrice := stopPrice
        stopLossPrice

if strategy.position_size > 0
    if (close > takeProfitPrice or close < stopLossPrice) and crossunderState
        strategy.close('Buy')
        entryPrice := 0.0
        stopPrice := 0.0
        takeProfitPrice := 0.0
        stopLossPrice := 0.0
        stopLossPrice
    else
        strategy.entry('Buy', strategy.long)
        entryPrice := close
        stopPrice := close - stopLoss *  sma8[1]
        takeProfitPrice := close + takeProfit *  sma8[1]
        stopLossPrice := stopPrice
        stopLossPrice

if strategy.position_size < 0
    if (close > takeProfitPrice or close < stopLossPrice) and crossoverState
        strategy.close('Sell')
        entryPrice := 0.0
        stopPrice := 0.0
        takeProfitPrice := 0.0
        stopLossPrice := 0.0
        stopLossPrice
    else
        strategy.entry('Sell', strategy.short)
        entryPrice := close
        stopPrice := close + stopLoss *  sma8[1]
        takeProfitPrice := close - takeProfit *  sma8[1]
        stopLossPrice := stopPrice
        stopLossPrice

// Plot entry and exit points
plotshape(strategy.position_size > 0 and crossoverSignal, 'Buy Entry', shape.triangleup, location.belowbar, color.new(color.green, 0), size=size.small)
plotshape(strategy.position_size > 0 and (close >= takeProfitPrice or close <= stopLossPrice), 'Buy Exit', shape.triangledown, location.abovebar, color.new(color.red, 0), size=size.small)
plotshape(strategy.position_size < 0 and crossunderSignal, 'Sell Entry', shape.triangledown, location.abovebar, color.new(color.red, 0), size=size.small)
plotshape(strategy.position_size < 0 and (close >= takeProfitPrice or close <= stopLossPrice), 'Sell Exit', shape.triangleup, location.belowbar, color.new(color.green, 0), size=size.small)



Más.