Esta es una estrategia de negociación a corto plazo que utiliza el aumento del volumen de negociación de fin de semana de Bitcoin utilizando apalancamiento de 10x. La idea principal es registrar el precio de cierre del viernes, comparar los precios de cierre diarios del sábado y el domingo con el precio de cierre del viernes y ir largo o corto si se excede el umbral. Las posiciones se cerrarán el lunes.
La estrategia primero registra el precio de cierre del viernes, luego calcula el número de días desde el viernes. El sábado y el domingo, si el precio de cierre diario es más del 4.5% por encima del precio de cierre del viernes, vaya corto; si el precio de cierre diario es más del 4.5% por debajo del precio de cierre del viernes, vaya largo. Cada operación utiliza apalancamiento 10x. Si la ganancia alcanza el 10% del capital inicial, cierre todas las posiciones. El lunes, cierre todas las posiciones independientemente.
Específicamente, la estrategia obtiene el precio de cierre del viernes, y luego compara el precio de cierre actual con los viernes del sábado y el domingo.strategy.short
Si el precio de cierre actual es más de un 4,5% inferior al de los viernes, optará por el precio largo a través de la opción de compra.strategy.long
El apalancamiento se establece en 10x a través delleverage
Si el beneficio alcanza el 10% del capital inicial, cierre todas las posiciones a través destrategy.close_all()
El lunes, cierre todas las posiciones a través destrategy.close_all()
.
Mejoras potenciales para mitigar los riesgos:
La estrategia puede mejorarse en los siguientes aspectos:
Incorpore promedios móviles, RSI, etc. para filtrar entradas y mejorar la precisión.
Optimice las estrategias de stop loss y take profit. Utilice los trailing stops, la toma de ganancias por etapas, etc. para obtener ganancias y controlar el riesgo.
Ajustar el tamaño del apalancamiento para reducir el riesgo Implementar un ajuste dinámico del apalancamiento, reduciendo el apalancamiento durante las reducciones.
Añadir otras criptomonedas. Comerciar criptomonedas adicionales con patrones de fin de semana para el arbitraje de múltiples activos.
Utilice el aprendizaje automático para optimizar parámetros. Recopile grandes conjuntos de datos históricos y use ML para optimizar automáticamente el ajuste de parámetros dinámicos.
Esta es una estrategia comercial típica a corto plazo que utiliza el aumento del volumen del fin de semana de Bitcoin. Capitaliza el volumen del fin de semana al juzgar las tendencias del sábado y el domingo, ir largo o corto. La estrategia tiene ventajas como la amplificación de ganancias y control de riesgos, pero también tiene algunos riesgos. Los próximos pasos son optimizar áreas como entrada, stop loss, gestión de apalancamiento, expansión de activos, etc. para hacer que la estrategia sea más robusta e inteligente.
/*backtest start: 2023-10-14 00:00:00 end: 2023-11-13 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //Copyright Boris Kozak strategy("XBT Weekend Trade Strategy", overlay=false) leverage = input(10,"Leverage") profitTakingPercentThreshold = input(0.10,"Profit Taking Percent Threshold") //****Code used for setting up backtesting.****/// testStartYear = input(2017, "Backtest Start Year") testStartMonth = input(12, "Backtest Start Month") testStartDay = input(10, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2025, "Backtest Stop Year") testStopMonth = input(12, "Backtest Stop Month") testStopDay = input(30, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) // A switch to control background coloring of the test period testPeriodBackground = input(title="Color Background?", type=bool, defval=true) testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FFFF : na bgcolor(testPeriodBackgroundColor, transp=50) testPeriod() => true //****END Code used for setting up backtesting.****/// //*** Main entry point is here***// // Figure out how many days since the Friday close days_since_friday = if dayofweek == 6 0 else if dayofweek == 7 1 else if dayofweek == 1 2 else if dayofweek == 2 3 else if dayofweek == 3 4 else if dayofweek == 4 5 else 6 // Grab the Friday close price fridaycloseprice = request.security(syminfo.tickerid,'D',close[days_since_friday]) plot(fridaycloseprice) strategy.initial_capital = 50000 // Only perform backtesting during the window specified if testPeriod() // If we've reached out profit threshold, exit all positions if ((strategy.openprofit/strategy.initial_capital) > profitTakingPercentThreshold) strategy.close_all() // Only execute this trade on saturday and sunday (UTC) if (dayofweek == 7.0 or dayofweek == 1.0) // Begin - Empty position (no active trades) if (strategy.position_size == 0) // If current close price > threshold, go short if ((close>fridaycloseprice*1.045)) strategy.entry("Short Entry", strategy.short, leverage) else // If current close price < threshold, go long if (close<(fridaycloseprice*0.955)) strategy.entry("Long Entry",strategy.long, leverage) // Begin - we already have a position if (abs(strategy.position_size) > 0) // We are short if (strategy.position_size < 0) if ((close>strategy.position_avg_price*1.045)) // Add to the position strategy.entry("Adding to Short Entry", strategy.short, leverage) else strategy.entry("Long Entry",strategy.long,leverage) // On Monday, if we have any open positions, close them if (dayofweek==2.0) strategy.close_all()