Esta es una estrategia de comercio de alta frecuencia basada en la línea K de 3 minutos del intercambio Coinbase. Calcula las líneas de sombra superior e inferior de la línea K para determinar si hay una oportunidad de reversión en el corto plazo. Cuando el aumento o la caída del precio es relativamente grande, la estrategia tomará una posición opuesta a la tendencia, esperando una reversión a corto plazo.
La estrategia juzga principalmente si hay oportunidades de "sobrecompra" o "sobreventa" a corto plazo. "Sobreventa" y "sobrecompra" generalmente provienen de emociones demasiado optimistas o pesimistas en el mercado.
Específicamente, la estrategia calcula el tamaño de las líneas de sombra superior e inferior de la línea K. Cuanto mayor sea la línea de sombra, más intensa será la confrontación entre el poder de compra y el poder de venta antes del cierre de la línea K actual. Si la línea de sombra superior es demasiado grande, significa que muchas órdenes de compra fueron derrotadas por órdenes de venta antes del cierre de la línea K, lo que indica que el poder alcista está a punto de debilitarse. Si la línea de sombra inferior es demasiado grande, significa que muchas órdenes de venta fueron absorbidas por órdenes de compra antes del cierre de la línea K, lo que indica que el poder bajista está a punto de debilitarse.
De acuerdo con esta lógica, cuando la línea de sombra es demasiado grande (es decir, cuando el precio aparece
La mayor ventaja de esta estrategia es aprovechar las fluctuaciones irracionales a corto plazo en el mercado para lograr el arbitraje inverso.
Otra ventaja es que Coinbase es un intercambio con mayores fluctuaciones.
El mayor riesgo que enfrenta esta estrategia es que las fluctuaciones de precios a corto plazo pueden no tener mucha previsibilidad. El tamaño de las líneas de sombra superior e inferior puede no capturar completamente toda la información sobre las reversiones de precios. Las emociones irracionales de los operadores tampoco pueden seguir reglas lógicas. Por lo tanto, todavía hay algún riesgo de aleatoriedad en esta estrategia.
Además, el establecimiento de puntos de stop loss también es crítico. Los puntos de stop loss que son demasiado sueltos pueden aumentar la pérdida de la estrategia. Los puntos de stop loss que son demasiado estrictos pueden perder oportunidades.
Esta estrategia puede optimizarse aún más en las siguientes dimensiones:
En general, esta estrategia es una estrategia típica de arbitraje estadístico. Trata de aprovechar las fluctuaciones irracionales de precios a corto plazo para obtener ganancias, con cierta lógica y viabilidad.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //for coinbase, 3min logic //This strategy trades against the short term trend. The first position can be either long or short. //In the short term, prices fluctuate up and down on wide spread exchanges. //And if the price moves to one side, the price tends to return to its original position momentarily. //This strategy set stop order. Stop price is calculated with upper and lower shadows. strategy("ndb_mm_for_coinbase_btcusd", overlay=true, initial_capital=100000, slippage=50) fromyear = input(2019, minval = 2017, maxval = 2100, title = "From Year") frommonth = input(12, minval = 1, maxval = 12, title = "From Month") fromday = input(1, minval = 01, maxval = 31, title = "From day") toyear = input(2100, minval = 1900, maxval = 2100, title = "To Year") tomonth = input(12, minval = 01, maxval = 12, title = "To Month") today = input(31, minval = 01, maxval = 31, title = "To day") end = true length = input(3, title="period") mag = input(1.2, title="sigma", minval=0.1, step=0.1) up_shadow = abs(high - max(open, close)) dn_shadow = abs(low - min(open, close)) up_shadow_ma = sma(up_shadow, length) * mag dn_shadow_ma = sma(dn_shadow, length) * mag upper = close + dn_shadow_ma lower = close - up_shadow_ma plot(upper, color=red) plot(lower, color=blue) if strategy.position_size == 0 strategy.entry("Long", strategy.long) if 0 < strategy.position_size strategy.entry("Short", strategy.short, stop=lower, when=end) if 0 > strategy.position_size strategy.entry("Long", strategy.long, stop=upper, when=end)