
Esta estrategia utiliza el método de negociación de la grilla fija, establece el precio inicial y la proporción de la distancia entre cada capa de la grilla, y luego establece 10 capas de precios fijos de compra y venta de acuerdo con esta proporción, para lograr una estrategia de negociación de la grilla de bajo precio y alto precio.
La estrategia comienza con el precio inicial y el porcentaje de la cuadrícula por cada nivel. Luego, se calcula el precio de compra y venta de los 10 niveles en función del precio inicial y el porcentaje.
La fórmula de precio de compra:
b1=sprice-(sprice*p1)
b2=sprice-(sprice*p2)
b3=sprice-(sprice*p3)
…
Entre p1 y p10 se calcula la proporción de gridpercent por capas.
El precio de venta es el siguiente:
s1=b1+(sprice*p1)
s2=b2+(sprice*p1)
s3=b3+(sprice*p1)
…
Las condiciones de compra se activan cuando el precio de cierre es inferior al precio de compra correspondiente:
if (close
strategy.entry(“b1”, strategy.long, when=(close
De la misma manera, cuando el precio de cierre es más alto que el precio de venta correspondiente, se activa la venta:
if (close>s1)
strategy.exit(“b1”, when=(close>s1))
La estrategia de compra y venta de la red fija se ha logrado.
Esta estrategia de red fija tiene las siguientes ventajas:
El mercado de la bolsa de valores ha sido creado para que los inversores puedan comprar y vender de forma automática, sin necesidad de tener que sincronizar el mercado, lo que reduce la dificultad de las transacciones.
El establecimiento de espacios razonables entre las rejillas permite controlar el riesgo de manera eficaz y evitar la caída en picado.
En la actualidad, la economía de los países en desarrollo es la economía de los países desarrollados.
Se puede ajustar el parámetro de la cuadrícula para adaptarse a diferentes situaciones del mercado.
Se puede ampliar el tamaño de la posición aumentando el número de capas de la red.
La combinación de paros puede evitar grandes pérdidas en situaciones extremas.
La estrategia también tiene sus riesgos:
Cuando las operaciones están en el horizonte, los costos de las transacciones se desgastan en las ganancias.
El precio inicial y la configuración de la red no son oportunos y son propensos a perder.
Los eventos inesperados pueden ocasionar pérdidas cuando los precios se desploman.
Los sistemas automáticos de intercambio tienen riesgos.
Los brotes masivos han aumentado las pérdidas.
La solución es la siguiente:
Establezca los parámetros de la grilla de manera razonable para asegurar que los beneficios sean mayores que los costos de la transacción.
Se puede establecer el precio inicial y la distancia de la grilla adecuados mediante la retroalimentación de los parámetros de optimización.
Aumentar el stop loss para controlar el riesgo.
La liberalización adecuada de los precios de transacción para evitar la cola.
Establezca controles de riesgo para limitar las pérdidas máximas.
La estrategia puede ser optimizada en las siguientes direcciones:
Ajuste dinámico de la distancia entre las rejillas, ampliando la distancia y reduciendo la distancia cuando aumenta la oscilación.
Los precios iniciales se ajustan dinámicamente según el rango de fluctuación calculado de los datos históricos.
El uso de modelos de aprendizaje automático para la predicción de movimientos de precios y el ajuste dinámico de la grilla.
Añadir un stop loss en los puntos de alto riesgo y optimizar la posición de stop loss observando los puntos de stop loss históricos
En combinación con la estrategia de gestión de fondos, ajuste dinámico de posiciones según las ganancias.
Optimizar la gestión de posiciones y maximizar la eficiencia en el uso de los fondos.
Optimización de la ejecución de las transacciones, uso de algoritmos como TWAP para reducir los costos de impacto.
La estrategia utiliza el método de negociación de la red fija, el precio de compra y venta en función de la proporción entre el precio inicial y el intervalo de la red, para realizar operaciones de compra y venta automáticas, que pueden aprovechar eficazmente las fluctuaciones del mercado. También debe tener en cuenta el control del riesgo, para bloquear las ganancias y controlar las pérdidas a través de la optimización de los parámetros, el ajuste dinámico y el paro.
/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 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/
// © Lionkind
//@version=5
strategy("Grid HW", overlay = true, margin_long = 1, margin_short = 1)
// Fix 35k price as starting point and 1% as a distance
sprice=input(40500,"Starting price")
gridpercent=input(1,"Percent")
// calculate the % of the 10 layers
p1=((gridpercent*1)/100)
p2=((gridpercent*2)/100)
p3=((gridpercent*3)/100)
p4=((gridpercent*4)/100)
p5=((gridpercent*5)/100)
p6=((gridpercent*6)/100)
p7=((gridpercent*7)/100)
p8=((gridpercent*8)/100)
p9=((gridpercent*9)/100)
p10=((gridpercent*10)/100)
//set buy prices
b1=sprice-(sprice*p1)
b2=sprice-(sprice*p2)
b3=sprice-(sprice*p3)
b4=sprice-(sprice*p4)
b5=sprice-(sprice*p5)
b6=sprice-(sprice*p6)
b7=sprice-(sprice*p7)
b8=sprice-(sprice*p8)
b9=sprice-(sprice*p9)
b10=sprice-(sprice*p10)
//set sell prices
s1=b1+(sprice*p1)
s2=b2+(sprice*p1)
s3=b3+(sprice*p1)
s4=b4+(sprice*p1)
s5=b5+(sprice*p1)
s6=b6+(sprice*p1)
s7=b7+(sprice*p1)
s8=b8+(sprice*p1)
s9=b9+(sprice*p1)
s10=b10+(sprice*p1)
//Long conditions
lc1=close<b1
lc2=close<b2
lc3=close<b3
lc4=close<b4
lc5=close<b5
lc6=close<b6
lc7=close<b7
lc8=close<b8
lc9=close<b9
lc10=close<b10
//exit conditions
ec1=close>s1
ec2=close>s2
ec3=close>s3
ec4=close>s4
ec5=close>s5
ec6=close>s6
ec7=close>s7
ec8=close>s8
ec9=close>s9
ec10=close>s10
//long orders
if (lc1)
strategy.entry("b1", strategy.long, when=(lc1))
if (lc2)
strategy.entry("b2", strategy.long, when=(lc2))
if (lc3)
strategy.entry("b3", strategy.long, when=(lc3))
if (lc4)
strategy.entry("b4", strategy.long, when=(lc4))
if (lc5)
strategy.entry("b5", strategy.long, when=(lc5))
if (lc6)
strategy.entry("b6", strategy.long, when=(lc6))
if (lc7)
strategy.entry("b7", strategy.long, when=(lc7))
if (lc8)
strategy.entry("b8", strategy.long, when=(lc8))
if (lc9)
strategy.entry("b9", strategy.long, when=(lc9))
if (lc10)
strategy.entry("b10", strategy.long, when=(lc10))
//exit orders
if (ec1)
strategy.exit("b1", when=(ec1), limit=1)
if (ec2)
strategy.exit("b2", when=(ec2), limit=1)
if (ec3)
strategy.exit("b3", when=(ec3), limit=1)
if (ec4)
strategy.exit("b4", when=(ec4), limit=1)
if (ec5)
strategy.exit("b5", when=(ec5), limit=1)
if (ec6)
strategy.exit("b6", when=(ec6), limit=1)
if (ec7)
strategy.exit("b7", when=(ec7), limit=1)
if (ec8)
strategy.exit("b8", when=(ec8), limit=1)
if (ec9)
strategy.exit("b9", when=(ec9), limit=1)
if (ec10)
strategy.exit("b10", when=(ec10), limit=1)
plot(b1,color=color.green)
plot(s1, color=color.red)
plot(b2, color=color.purple)