Estrategia de predicción de la ruta futura de Mike D


Fecha de creación: 2023-12-13 17:21:44 Última modificación: 2023-12-13 17:21:44
Copiar: 0 Número de Visitas: 450
1
Seguir
1214
Seguidores

Estrategia de predicción de la ruta futura de Mike D

Descripción general

La idea central de esta estrategia es hacer predicciones sobre la tendencia de los precios mediante el análisis de los movimientos futuros del indicador de McD. La estrategia aprovecha al máximo las señales de negociación generadas por la cruz de la línea media rápida y la línea media lenta del indicador de McD.

Principio de estrategia

  1. Calcular la diferencia entre los valores de los indicadores de McD (valores históricos) y juzgar la subida y la bajada de las líneas de McD y de la línea de señal.
  2. Al configurar una opción de compra y venta, se utiliza el valor futuro del indicador de McD en un intervalo de tiempo de 4 horas para determinar el futuro de la tendencia del indicador de McD para predecir la tendencia del precio.
  3. Haga más cuando el diferencial del indicador de McD es mayor a 0 (que representa el mercado de tiendas de más de una cabeza) y se espera que siga subiendo; y haga un vacío cuando el diferencial del indicador de McD es menor a 0 (que representa el mercado de tiendas de menos de una cabeza) y se espera que siga bajando.
  4. La estrategia combina el seguimiento de tendencias y la inversión de tendencias, capturando las tendencias y capturando el momento en que las tendencias se invierten.

Análisis de las ventajas estratégicas

  1. El indicador de McD para determinar la ventaja de las tendencias del mercado puede filtrar las sacudidas y capturar las tendencias de la línea larga.
  2. La predicción de las tendencias futuras del indicador McD ayuda a capturar los puntos de inflexión de precios con antelación y a mejorar la previsibilidad de la estrategia.
  3. Al mismo tiempo, la combinación de seguimiento de tendencias y el método de negociación de reversión de tendencias, puede invertir la posición a su debido tiempo durante el seguimiento de la tendencia y obtener mayores ganancias.
  4. Los parámetros de la estrategia son ajustables y los usuarios pueden optimizarlos en función de diferentes períodos de tiempo y entornos de mercado, lo que mejora la estabilidad de la estrategia.

Análisis de riesgos estratégicos

  1. Dependiendo de la predicción de la tendencia futura del indicador McD, si la predicción no es correcta, la negociación puede fracasar.
  2. La combinación de paros es necesaria para controlar las pérdidas individuales. La configuración incorrecta de la amplitud de paros también puede afectar la eficacia de la estrategia.
  3. El indicador McD puede perder la oportunidad de una rápida reversión de los precios debido a su retraso. Esto es de interés para el desempeño estratégico en situaciones de alta volatilidad.
  4. El impacto en los costos de las transacciones.

Dirección de optimización de la estrategia

  1. La combinación de otros indicadores para hacer predicciones reduce la dependencia de un solo indicador de McD y mejora la precisión de las predicciones. Por ejemplo, la observación de los cambios en el volumen de negocios.
  2. El algoritmo de aprendizaje automático que se utiliza para entrenar a los modelos para predecir el futuro de los indicadores de McD.
  3. Establecer los parámetros de optimización para encontrar la combinación óptima de parámetros.
  4. Los diferentes entornos de mercado se adaptan a diferentes configuraciones de parámetros, y se pueden agregar parámetros de optimización automática para el sistema de adaptación.

Resumir

Esta estrategia aprovecha al máximo las ventajas de los indicadores McD para determinar la tendencia, y al mismo tiempo añade un análisis predictivo de la evolución futura del indicador, para capturar los puntos de inflexión clave sobre la base de la captura de la tendencia. En comparación con el simple seguimiento de la tendencia, la aplicación de esta estrategia es más prospectiva y tiene un mayor margen de beneficio. Por supuesto, también existe un cierto riesgo que requiere mayor optimización y perfección. En general, la estrategia merece un estudio y aplicación más profundos.

Código Fuente de la Estrategia
/*backtest
start: 2023-12-05 00:00:00
end: 2023-12-12 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © x11joe
strategy(title="MacD (Future Known or Unknown) Strategy", overlay=false, precision=2,commission_value=0.26, initial_capital=10000, currency=currency.USD, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

//OPTIONAL:: Allow only entries in the long or short position
allowOnlyLong = input(title="Allow position ONLY in LONG",type=input.bool, defval=false)
allowOnlyShort = input(title="Allow position ONLY in SHORT",type=input.bool, defval=false)


strategy.risk.allow_entry_in(allowOnlyLong ? strategy.direction.long : allowOnlyShort ? strategy.direction.short : strategy.direction.all) // There will be no short entries, only exits from long.

// Create MacD inputs
fastLen = input(title="MacD Fast Length", type=input.integer, defval=12)
slowLen = input(title="MacD Slow Length", type=input.integer, defval=26)
sigLen  = input(title="MacD Signal Length", type=input.integer, defval=9)

// Get MACD values
[macdLine, signalLine, _] = macd(close, fastLen, slowLen, sigLen)
hist = macdLine - signalLine

useFuture = input(title="Use The Future?",type=input.bool,defval=true)

macDState(resolutionType) =>
    hist_from_resolution = security(syminfo.tickerid, resolutionType, hist,barmerge.gaps_off, barmerge.lookahead_on)
    Green_IsUp = hist_from_resolution > hist_from_resolution[1] and hist_from_resolution > 0
    Green_IsDown = hist_from_resolution < hist_from_resolution[1] and hist_from_resolution > 0
    Red_IsDown = hist_from_resolution < hist_from_resolution[1] and hist_from_resolution <= 0
    Red_IsUp = hist_from_resolution > hist_from_resolution[1] and hist_from_resolution <= 0
    result=0
    if(Green_IsUp)
        result := 1
    if(Green_IsDown)
        result := 2
    if(Red_IsDown)
        result := 3
    if(Red_IsUp)
        result := 4
    result

macDStateNonFuture(resolutionType) =>
    hist_from_resolution = security(syminfo.tickerid, resolutionType, hist,barmerge.gaps_off, barmerge.lookahead_off)
    Green_IsUp = hist_from_resolution > hist_from_resolution[1] and hist_from_resolution > 0
    Green_IsDown = hist_from_resolution < hist_from_resolution[1] and hist_from_resolution > 0
    Red_IsDown = hist_from_resolution < hist_from_resolution[1] and hist_from_resolution <= 0
    Red_IsUp = hist_from_resolution > hist_from_resolution[1] and hist_from_resolution <= 0
    result=0
    if(Green_IsUp)
        result := 1
    if(Green_IsDown)
        result := 2
    if(Red_IsDown)
        result := 3
    if(Red_IsUp)
        result := 4
    result

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2019, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"
// === INPUT BACKTEST RANGE END ===

//Get FUTURE or NON FUTURE data
macDState240=useFuture ? macDState("240") : macDStateNonFuture("240") //1 is green up, 2 if green down, 3 is red, 4 is red up

//Fill in the GAPS
if(macDState240==0)
    macDState240:=macDState240[1]

//Plot Positions
plot(close,color= macDState240==1 ? color.green : macDState240==2 ? color.purple : macDState240==3 ? color.red : color.yellow,linewidth=4,style=plot.style_histogram,transp=50)

if(useFuture)
    strategy.entry("buy_1",long=true,when=window() and (macDState240==4 or macDState240==1))
    strategy.close("buy_1",when=window() and macDState240==3 and macDState240[1]==4)
    strategy.entry("sell_1",long=false,when=window() and macDState240==2)
else
    strategy.entry("buy_1",long=true,when=window() and (macDState240==4 or macDState240==1))//If we are in a red macD trending downwards MacD or in a MacD getting out of Red going upward.
    strategy.close("buy_1",when=window() and macDState240==3 and macDState240[1]==4)//If the state is going upwards from red but we are predicting back to red...
    strategy.entry("sell_1",long=false,when=window() and macDState240==2)//If we are predicting the uptrend to end soon.