A estratégia de quebra de dupla rotação baseia-se no preço de abertura e na amplitude de oscilação do dia anterior, para quebrar a rotação superior e a rotação inferior. A estratégia capta oportunidades de negociação de tendências formadas pela quebra.
Calcule o valor mais alto de HH e o valor mais baixo de LL sobre a linha N-radicada K mais próxima.
Calcule o preço máximo de fechamento HC e o preço mínimo de fechamento LC do dia anterior.
A amplitude de oscilação do dia anterior é maior em HH-LC e HC-LL.
A BuyLine na pista acrescenta k1 ao preço de abertura*Range。
A linha de venda inferior é o preço de abertura menos k2*Range。
Faça mais quando o preço de fechamento está acima do trajeto. Faça menos quando o preço de fechamento está abaixo do trajeto.
Os principais benefícios desta estratégia são:
A oportunidade de negociar uma ruptura de tendência perto do preço de abertura.
A trajetória ascendente e descendente é baseada na configuração automática de flutuações históricas, evitando a subjetividade.
Os valores de k podem ser personalizados para diferentes variedades.
A forma de ruptura é clara e a qualidade do sinal é alta.
Pode definir um ciclo de detenção flexível para capturar diferentes níveis de tendências.
Os principais riscos desta estratégia são:
Não é possível determinar a extensão razoável de subida e descida, existindo o risco de otimização excessiva.
A ruptura pode ser falsa e deve ser definida como um stop loss.
O tempo de retenção fixo não é dinâmico.
O ciclo de resposta é mais curto, podendo ocorrer uma curvatura.
A maioria das transações bilaterais são difíceis de realizar.
Resolução:
Optimizar os parâmetros de k-valores para ampliar o alcance da detecção de dados.
Estabeleça uma posição de parada razoável para controlar a perda individual.
Aumentar o discernimento de tendências e evitar negociações adversas.
Considere reduzir o período de detenção até esse dia.
Verificação em laboratório, expansão de posições em fases.
A estratégia pode ser melhorada em alguns pontos:
Ajuste dinâmico do parâmetro k para cima e para baixo.
Indicadores como volume de transações confirmam sinais de ruptura.
Aumentar os lucros com a proteção móvel.
Avaliar a força e a fraqueza da brecha e ajustar o número de apostas.
Distinguir tendências e intervalos, fazer uma análise estratégica.
A estratégia de ruptura de duas vias pode capturar oportunidades de negociação de tendência perto do preço de abertura. Mas a configuração de parâmetros e o tempo de manutenção da posição têm um espaço maior para otimização, e o controle de risco deve ser levado em consideração.
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-18 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Dual Thrust Strategy",overlay=true,initial_capital=1000)
k1=input(0.67,type=float,step=0.01)
k2=input(0.62,type=float,step=0.01)
TimeFrame=input('240')
len=input(20)
HH=security(syminfo.tickerid,TimeFrame,highest(high,len),barmerge.lookahead_off)
LC=security(syminfo.tickerid,TimeFrame,lowest(close,len),barmerge.lookahead_off)
HC=security(syminfo.tickerid,TimeFrame,highest(close,len),barmerge.lookahead_off)
LL=security(syminfo.tickerid,TimeFrame,lowest(low,len),barmerge.lookahead_off)
Range=max(HH-LC,HC-LL)
BuyLine=security(syminfo.tickerid,"D",open,barmerge.lookahead_off)+k1*Range
SellLine=security(syminfo.tickerid,"D",open,barmerge.lookahead_off)-k2*Range
plot(BuyLine,color=blue,linewidth=2,offset=1,transp=70)
plot(SellLine,color=red,linewidth=2,offset=1,transp=70)
LongCondition=crossover(close,BuyLine)
ShortCondition=crossunder(close,SellLine)
strategy.entry("enter long",true,1,when=LongCondition)
strategy.entry("enter short",false,1,when=ShortCondition)
plotshape(LongCondition and strategy.position_size<0?low:na,style=shape.labelup,location=location.absolute,color=blue,text="Long",textcolor=white,size=size.small)
plotshape(ShortCondition and strategy.position_size>0?high:na,style=shape.labeldown,location=location.absolute,color=red,text="Short",textcolor=white,size=size.small)
alertcondition(LongCondition and strategy.position_size<0,title='Long_DT')
alertcondition(ShortCondition and strategy.position_size>0,title='Short_DT')