Estrategia de operaciones de fin de semana

El autor:¿ Qué pasa?, Fecha: 2023-11-14 11:29:12
Las etiquetas:

img

Resumen general

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.

Estrategia lógica

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.shortSi 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.longEl apalancamiento se establece en 10x a través delleverageSi 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().

Análisis de ventajas

  • Utiliza el aumento del volumen de operaciones de fin de semana de Bitcoin para el comercio a corto plazo, capturando las tendencias del fin de semana
  • El apalancamiento de 10x amplifica los rendimientos
  • La condición de obtener ganancias ayuda a bloquear las ganancias y evitar que las pérdidas se expandan
  • El cierre de posiciones el lunes evita los riesgos de las volatiles apertura del lunes

Análisis de riesgos

  • Los precios de Bitcoin son volátiles los fines de semana, riesgo de pérdidas
  • El apalancamiento de 10x amplifica las pérdidas
  • La colocación incorrecta de un stop loss podría llevar a grandes pérdidas
  • Las operaciones volátiles del lunes pueden impedir la obtención de ganancias completas

Mejoras potenciales para mitigar los riesgos:

  1. Establecer el stop loss para controlar la pérdida por operación.
  2. Ajustar el apalancamiento para reducir el riesgo.
  3. Optimizar tomar puntos de ganancia, tomar ganancias en lotes después de alcanzar ciertos niveles de ganancia.
  4. Establezca el volumen o el tiempo para obtener ganancias antes de la apertura del lunes para evitar la volatilidad.

Direcciones de optimización

La estrategia puede mejorarse en los siguientes aspectos:

  1. Incorpore promedios móviles, RSI, etc. para filtrar entradas y mejorar la precisión.

  2. 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.

  3. Ajustar el tamaño del apalancamiento para reducir el riesgo Implementar un ajuste dinámico del apalancamiento, reduciendo el apalancamiento durante las reducciones.

  4. Añadir otras criptomonedas. Comerciar criptomonedas adicionales con patrones de fin de semana para el arbitraje de múltiples activos.

  5. 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.

Resumen de las actividades

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()
 






Más.