
La estrategia es una estrategia de inversión basada en el efecto estacional. Se establece una posición en un mes de entrada específico y se cierra el mes de salida para capturar la inversión de precios causada por el efecto estacional.
La lógica central de esta estrategia es establecer posiciones estacionales en función de los meses de entrada y salida elegidos por el usuario. En concreto, si el mes en curso equivale a un mes de entrada y no se establece una posición, la entrada se realiza en la dirección de la entrada o de la salida. Si la posición ya se ha establecido y el mes en curso equivale a un mes de salida, la posición se liquida.
Por ejemplo, si se opta por entrar en el mercado en octubre y salir en enero, entonces en octubre de cada año, si no se tiene una posición, se crea una nueva posición de acuerdo con la dirección de la cabeza más alta o la cabeza más baja; si ya se tiene una posición, se aplanará la posición en enero de cada año. Dependiendo de esta lógica, se puede capturar la reversión de los precios causada por el efecto estacional.
Tenga en cuenta que la estrategia establece por defecto el 25% del capital riesgo por transacción y se calcula con una comisión del 0.5%. Esto tendrá un cierto impacto en los resultados finales.
La mayor ventaja de esta estrategia es aprovechar el efecto estacional del mercado para obtener ganancias. Muchos mercados de productos y financieros tienen fluctuaciones de precios estacionales más evidentes. Si se elige el momento adecuado de entrada y salida, se pueden capturar eficazmente las oportunidades de inversión causadas por este efecto estacional.
Además, la estrategia es muy sencilla, fácil de entender e implementar, y es adecuada para los principiantes en el comercio de la cantidad. Se basa en sólo dos parámetros, lo que reduce considerablemente la dificultad de optimizar la estrategia.
A pesar de la notable eficacia de esta estrategia, existen ciertos riesgos. En primer lugar, la elección inadecuada de los tiempos de entrada y salida puede conducir a pérdidas por no poder capturar la reversión de los precios; en segundo lugar, los cambios en el entorno del mercado también pueden conducir a un debilitamiento del efecto estacional; y finalmente, la lógica de parada de pérdidas por defecto es débil y no puede controlar eficazmente las pérdidas individuales.
Para reducir el riesgo, se puede considerar la opción de optimizar la entrada y la salida, combinado con más análisis para juzgar el entorno del mercado y establecer un stop loss para controlar el riesgo. Por supuesto, ninguna estrategia de negociación puede evitar completamente el riesgo del mercado y los comerciantes deben ser cuidadosos.
La estrategia también tiene mucho espacio de optimización. En primer lugar, se puede introducir la lógica de stop loss y establecer un margen de stop loss razonable. En segundo lugar, se puede probar más combinaciones de entrada y salida diferentes para buscar el parámetro óptimo.
A través de las optimizaciones de los puntos anteriores, se puede mejorar aún más la estabilidad de la estrategia y mejorar el rendimiento de seguimiento de la estrategia. Por supuesto, cualquier optimización requiere una rigurosa verificación de retroalimentación para evitar la optimización excesiva.
Esta estrategia de inversiones estacionales es muy práctica en términos generales. Al elegir los meses de entrada y salida adecuados, captura eficazmente las inversiones de precios causadas por el efecto estacional y, por lo tanto, se beneficia. Al mismo tiempo, la estrategia es muy simple, fácil de entender e implementar, adecuada para los principiantes en el comercio cuantitativo.
/*backtest
start: 2023-01-24 00:00:00
end: 2024-01-24 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/
// © EmpiricalFX
//@version=4
strategy("Seasonality Benchmark ","Season",overlay=false,default_qty_type=strategy.percent_of_equity,
default_qty_value=25,initial_capital=100000,currency="USD",
commission_type=strategy.commission.percent,commission_value=0.5)
input_entry_direction = input("Long","Position Type",options=["Long","Short"])
input_entry_month = input("Oct","Entry Month",options=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"])
input_exit_month = input("Jan","Entry Month",options=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"])
//Convert three character month string to integer
month_str_to_int(m)=>
ret = m == "Jan" ? 1 :
m == "Feb" ? 2 :
m == "Mar" ? 3 :
m == "Apr" ? 4 :
m == "May" ? 5 :
m == "Jun" ? 6 :
m == "Jul" ? 7 :
m == "Aug" ? 8 :
m == "Sep" ? 9 :
m == "Oct" ? 10 :
m == "Nov" ? 11 :
m == "Dec" ? 12 : -1
is_long = input_entry_direction == "Long" ? true : false
entry = month_str_to_int(input_entry_month)
exit = month_str_to_int(input_exit_month)
var balance = strategy.equity
//Entering a position is conditional on:
//1. No currently active trades
//2. Input entry month matches current month
if(strategy.opentrades == 0 and entry == month)
strategy.entry("Swing",is_long)
//Exiting a position is conditional on:
//1. Must have open trade
//2. Input exit month matches current month
if(strategy.opentrades > 0 and exit == month)
strategy.close("Swing")
//Update the balance every time a trade is exited
if(change(strategy.closedtrades)>0)
balance := strategy.equity
plot(strategy.equity,"Equity",color.orange)
plot(balance,"Balance",color.red)