Estrategia de apertura mensual larga y de cierre mensual

El autor:¿ Qué pasa?, fecha: 2023-11-02 14:23:40
Las etiquetas:

img

La idea central de esta estrategia es abrir una posición larga el primer día de negociación de cada mes y cerrar una posición el último día de negociación del mes.

Estrategia lógica

Esta estrategia define primero el primer día de negociación (lunes) de cada mes como la señal de entrada, y el último día de negociación (viernes) como la señal de salida.

Al abrir una posición, se comprará directamente si solo se habilita el largo, y se abrirán posiciones largas y cortas si se permite el corto.

Al cerrar posiciones, cerrará todas las posiciones si se permite el corto, y solo cerrará posiciones largas si solo se permite el largo.

Para controlar los riesgos, también se agrega un simple stop loss. Cuando el precio toca el precio de stop loss, cerrará la posición mediante stop loss.

En general, esta estrategia tiene una lógica muy simple y directa, que es la estrategia de negociación mensual más básica adecuada para la demostración de enseñanza.

Ventajas

  1. La lógica es simple y fácil de entender, muy adecuada para que los principiantes aprendan.

  2. Adopción de un ciclo de tenencia mensual, baja frecuencia de operación, adecuado para los inversores que buscan la estabilidad.

  3. Opcional largo o corto, puede satisfacer las necesidades de diferentes estilos comerciales.

  4. La adición de stop loss puede controlar los riesgos de una sola acción hasta cierto punto.

Los riesgos

  1. Tiempo de entrada y salida fijo, no adaptable a las condiciones del mercado, riesgo de arbitraje.

  2. No hay indicadores cuantitativos añadidos, el riesgo de seguir a ciegas.

  3. El stop loss de una sola acción es fácil de romper, incapaz de controlar eficazmente el riesgo de cola.

  4. Tamaño de la posición fijo, no susceptible de ajuste según las condiciones del mercado.

  5. Incertidumbre de la ejecución, puede no ejecutarse completamente según la estrategia.

  6. El método de stop loss simple puede resultar en un pequeño stop loss, debe adoptar un stop loss dinámico como el stop de volatilidad.

Direcciones de mejora

  1. Introducir indicadores cuantitativos para evaluar las condiciones del mercado y ajustar dinámicamente el ritmo de entrada.

  2. Considere los índices de evaluación comparativa para determinar la fuerza relativa de las existencias para la entrada.

  3. Ajustar dinámicamente el tamaño de la posición en función de la volatilidad del mercado y otros indicadores de riesgo.

  4. Adopte el stop loss dinámico, o varios niveles de stop loss.

  5. Añadir un módulo de trading de algoritmos para garantizar una ejecución exitosa.

  6. Optimizar la estrategia de gestión de capital, ajustar la posición de los futuros del índice de acciones para diferentes entornos de mercado.

  7. Incorporar aprendizaje automático para juzgar la calidad de las existencias para la entrada.

Resumen de las actividades

Esta es una estrategia muy básica de apertura mensual larga y cierre de fin de mes. La lógica es simple y fácil de entender, adecuada para que los principiantes aprendan. Pero en el uso real, el tiempo de entrada / salida, los métodos de stop loss, el tamaño de la posición, etc. deben mejorarse, para obtener ganancias persistentes en los mercados complejos y en constante cambio. Debemos comprender a fondo los pros y los contras de la estrategia y seguir mejorando el sistema de estrategia para desarrollar soluciones comerciales cuantitativas adecuadas para nosotros mismos.


/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © Je_Buurman September 1st 2020

//@version=4
strategy("Buurmans Tutorial", overlay=true, initial_capital=1000, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value=0.2)

// Some initial inputs, these are needed in case the strategy returns an error of "too many trades, > 3000" 

Year    = input(defval = 2020, title = "From Year", minval = 2010)              // 
Month   = input(defval = 1, title = "From Month", minval = 1, maxval=12)
LongOnly=input(true, title="Only go Long?")


// Phase I - the initial "Strategy" - buy Monday, sell Friday

longCondition = dayofweek==dayofweek.monday and (time > timestamp(Year, Month, 01, 00, 00, 00))
shortCondition = dayofweek==dayofweek.friday and (time > timestamp(Year, Month, 01, 23, 59, 59))


// Phase II - some rudimentary "risk-management" e.g. stoploss

Use_stoploss=input(false, title="Use stoploss ?")
stoploss_input=input(150, title="Stoploss in $")
Stoploss = Use_stoploss ? strategy.position_size>0 ? iff(strategy.position_size>0,strategy.position_avg_price - stoploss_input, na) : strategy.position_size<0 ? iff(strategy.position_size<0,strategy.position_avg_price + stoploss_input, na) : na : na
plot(Use_stoploss and strategy.position_size!=0 ? Stoploss : na, color=iff(Stoploss!=na,color.silver, color.red),style=plot.style_linebr)


// Phase III - make it more profitable by trying to filter conditions
// only buy on odd Mondays ? only buy on full moon Mondays ? something else entirely ?


// The actual trades, going Long, close Long, going Short and Stoploss

if (longCondition)
    strategy.entry("Buy on Monday", strategy.long)
    
if (shortCondition and LongOnly==false)
    strategy.entry("Short on Friday", strategy.short)

if (shortCondition and LongOnly)
    strategy.close("Buy on Monday", comment="Sell on Friday")

if (low < Stoploss)
    strategy.close("Buy on Monday", comment="Long Stopped on Someday")
if (high > Stoploss)
    strategy.close("Short on Friday", comment="Short Stopped on Someday")

Más.