
Esta estratégia usa o método de negociação de grelha fixa, definindo o preço inicial e a proporção de intervalo de cada grade, e, em seguida, define 10 camadas de preços de compra e venda fixos de acordo com essa proporção, para obter uma estratégia de negociação de grelha de baixo preço de compra e venda.
A estratégia começa por definir o preço inicial e o percentual de grade de cada camada. Em seguida, com base no preço inicial e no percentual, calcula-se o preço de compra e venda de 10 camadas.
A fórmula do preço de compra:
b1=sprice-(sprice*p1)
b2=sprice-(sprice*p2)
b3=sprice-(sprice*p3)
…
P1 a p10 é a proporção calculada de acordo com a grade percentual por camada.
A fórmula de preço de venda:
s1=b1+(sprice*p1)
s2=b2+(sprice*p1)
s3=b3+(sprice*p1)
…
A condição de compra é que a compra é acionada quando o preço de fechamento é inferior ao preço de compra correspondente:
if (close
strategy.entry(“b1”, strategy.long, when=(close
Da mesma forma, quando o preço de fechamento é mais alto do que o preço de venda correspondente, a venda é desencadeada:
if (close>s1)
strategy.exit(“b1”, when=(close>s1))
A estratégia de compra-venda de uma rede fixa é assim realizada.
A estratégia de grelha fixa tem as seguintes vantagens:
O sistema de negociação automática permite a compra e venda automática, sem necessidade de timing do mercado, reduzindo a dificuldade de negociação.
O estabelecimento de uma distância razoável entre as grades pode ser eficaz no controle do risco, evitando o acidente de queda.
“O que é que eu tenho que fazer para ganhar dinheiro?”
Pode-se ajustar os parâmetros da grade para diferentes situações de mercado.
Pode-se ampliar o portefólio aumentando o número de níveis de grelha.
A partir de agora, os investidores poderão usar o Stop Loss para evitar grandes prejuízos em situações extremas.
A estratégia também apresenta alguns riscos:
Quando as transações são horizontais, as taxas de transação diminuem os lucros.
O preço inicial e a configuração da grelha não são atualizados e são suscetíveis a perdas.
O preço do petróleo pode ser muito alto em um evento inesperado, o que pode levar a perdas.
Os sistemas automáticos de negociação têm riscos de interligação de transações.
A concentração de explosões causou uma expansão dos prejuízos.
A solução é:
Configure os parâmetros da grade de forma razoável para garantir que os lucros sejam maiores do que os custos de transação.
Otimizando os parâmetros de retrospectiva, define o preço inicial e o intervalo de grade apropriados.
Aumentar o stop loss para controlar o risco.
A liberalização apropriada dos preços de transação para evitar filas.
Configurar controles de risco para limitar o máximo de perdas.
A estratégia pode ser otimizada em várias direções:
Ajuste dinâmico do intervalo de grelha, ampliando o intervalo e diminuindo o intervalo quando a onda aumenta.
O preço inicial é ajustado dinamicamente com base nos dados históricos.
Adicionar modelos de aprendizagem de máquina, previsão de movimentos de preços, grelha de ajuste dinâmico.
Adicionar um stop em um ponto de alto risco e otimizar a posição de stop observando o ponto de stop histórico.
Combinado com uma estratégia de gestão de capital, ajuste de posição de forma dinâmica de acordo com a situação de lucro.
Optimizar a gestão de posições e maximizar a eficiência do uso de capital.
Otimizar a execução de transações e reduzir os custos de impacto com algoritmos como o TWAP.
Esta estratégia utiliza o método de negociação de grelha fixa, configurando os preços de compra e venda de acordo com o preço inicial e o intervalo da grelha, permitindo negociações de compra e venda automatizadas, que podem aproveitar efetivamente as flutuações do mercado. Ao mesmo tempo, deve-se prestar atenção ao controle de risco, para bloquear os lucros e controlar os perdas por meio de otimização de parâmetros, ajuste dinâmico e parada.
/*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)