Estratégia de negociação quantitativa da caixa de vibração


Data de criação: 2023-12-27 14:45:41 última modificação: 2023-12-27 14:45:41
cópia: 0 Cliques: 956
1
focar em
1623
Seguidores

Estratégia de negociação quantitativa da caixa de vibração

Visão geral

A estratégia de negociação de quantidade de caixa de ouro de tremor é uma estratégia de negociação de curta distância que usa o canal de caixa de Darvas para capturar tendências de mercado. A estratégia depende principalmente do indicador de caixa de ouro de tremor para avaliar o movimento do mercado e procurar oportunidades de negociação.

Princípio da estratégia

  • O comprimento da caixa de vibração é definido usando o parâmetro length. O comprimento padrão da estratégia é de 5 linhas K.
  • A tendência é avaliada de acordo com os pontos altos e baixos, e o tempo de vazio é aumentado de acordo.
  • Quando o preço ultrapassa a caixa do tesouro, uma linha TopBox verde é desenhada no gráfico. É um sinal de fazer mais.
  • Quando o preço cai abaixo da caixa do tesouro, a linha BottomBox vermelha é desenhada no gráfico.
  • Usar o sistema de linhas múltiplas como um indicador auxiliar de julgamento. Quando o preço é superior ao linhas múltiplas médias e inferior ao linhas vazias médias.
  • O indicador RVI é usado para determinar as áreas de sobrevenda e sobrevenda. Quando o RVI está acima da linha de sinal, é um sinal de sobrevenda. Quando o RVI está abaixo da linha de sinal, é um sinal de vazio.

A entrada é feita após a combinação de vários indicadores acima. O preço de parada é o oposto da caixa do tesouro. A parada EXIT usa a direção do RVI para fechar a ordem.

Análise de vantagens

  • O canal de caixa do tesouro é usado para avaliar a direção das tendências do mercado e evitar perder a oportunidade de ver as grandes tendências.
  • Os canais do cofre do tesouro são fáceis de formar e a frequência de captação dos sinais é alta.
  • A configuração do limite de perda do cofre é razoável e permite um bom controle de perda individual.
  • A linha de medição múltipla e o RVI auxiliam a tomada de decisões com maior precisão.

Análise de Riscos

  • A posição de parada do cofre de vibração é ampla, o risco de perdas individuais é maior.
  • A correção de curto prazo pode ser prejudicada quando a posição é mantida por mais de um investidor.
  • A direção da formação do canal da caixa de tesouro nem sempre é a correta, existem sinais errados.
  • Os parâmetros precisam ser adequadamente ajustados para que os indicadores auxiliares sejam usados com a caixa do tesouro.

Pode-se reduzir o risco por um aperto apropriado do ponto de parada. Além disso, os parâmetros dos indicadores auxiliares também precisam ser testados e ajustados para que eles desempenhem o melhor filtro.

Direção de otimização

  • Teste os parâmetros de caixas de tesouro de diferentes comprimentos para encontrar o comprimento ideal.
  • Otimizar os parâmetros dos indicadores auxiliares para que eles funcionem melhor com a caixa do tesouro.
  • Tente outros indicadores auxiliares para verificar ainda mais o sinal, como KDJ, MACD, etc.
  • Testar as condições de stop loss e stop-loss para tornar a estratégia mais estável.

Resumir

A estratégia de negociação quantitativa do cofre do tesouro de tremor é, em geral, uma estratégia de negociação de linha curta mais ativa. Ela pode capturar as mudanças de tendência do mercado em tempo hábil, aproveitando o canal do cofre do tesouro para abrir posições; e a combinação de indicadores auxiliares pode melhorar a precisão da decisão.

Código-fonte da estratégia
/*backtest
start: 2023-11-26 00:00:00
end: 2023-12-26 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/
// © xxy_theone
// https://www.youtube.com/watch?v=YYxlnFOX9sQ
// This strategy script has been made to backtest the strategy explained in the video above


//@version=5
strategy(shorttitle = "Darvas Box Test", title="TradeIQ Darvas Box Test", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=100, currency=currency.USD)

// === INPUT BACKTEST RANGE ===
var GRP1 = "Backtest Range"
fromDate = input(timestamp("7 Mar 2022 00:00 +0000"), "From", group=GRP1)
toDate = input(timestamp("19 Mar 2022 23:59 +0000"), "To", group=GRP1)
window() =>  true


var GRP3 = "Darvas Box"
boxp=input(5, "Box Length", group=GRP3)

LL = ta.lowest(low,boxp)
k1=ta.highest(high,boxp)
k2=ta.highest(high,boxp-1)
k3=ta.highest(high,boxp-2)

NH =  ta.valuewhen(high>k1[1],high,0)
box1 =k3<k2
TopBox = ta.valuewhen(ta.barssince(high>k1[1])==boxp-2 and box1, NH, 0)
BottomBox = ta.valuewhen(ta.barssince(high>k1[1])==boxp-2 and box1, LL, 0)


plot(TopBox, linewidth=3, color=color.green, title="TBbox") 
plot(BottomBox, linewidth=3, color=color.red, title="BBbox")


var GRP4 = "MavilimW"

fmal=input(3,"First Moving Average length", group=GRP4)
smal=input(5,"Second Moving Average length", group=GRP4)
tmal=fmal+smal
Fmal=smal+tmal
Ftmal=tmal+Fmal
Smal=Fmal+Ftmal

M1= ta.wma(close, fmal)
M2= ta.wma(M1, smal)
M3= ta.wma(M2, tmal)
M4= ta.wma(M3, Fmal)
M5= ta.wma(M4, Ftmal)
MAVW= ta.wma(M5, Smal)
col1= MAVW>MAVW[1]
col3= MAVW<MAVW[1]
colorM = col1 ? color.blue : col3 ? color.red : color.yellow

plot(MAVW, color=colorM, linewidth=2, title="MAVW")


var GRP5 = "Relative Vigor Index"
len = input.int(10, title="Length", minval=1, group=GRP5)
rvi = math.sum(ta.swma(close-open), len)/math.sum(ta.swma(high-low),len)
sig = ta.swma(rvi)
offset = input.int(0, "Offset", minval = -500, maxval = 500, group=GRP5)
//plot(rvi, color=#008000, title="RVGI", offset = offset)
//plot(sig, color=#FF0000, title="Signal", offset = offset)


var longStopSet = false

long = ta.crossover(close,TopBox) and close > MAVW ? true : false
longClose = strategy.opentrades.profit(strategy.opentrades-1)>0 and ta.crossunder(rvi,sig) ? true : false
strategy.entry("Long Position", strategy.long, when = long and window() and strategy.position_size==0 and strategy.closedtrades<100)
if(longStopSet==false and strategy.position_size > 0)
    strategy.exit("exit", "Long Position", stop=BottomBox)
    longStopSet := true
if(strategy.position_size==0)
    longStopSet := false
strategy.close("Long Position", when = longClose)

var shortStopSet = false

short = ta.crossunder(close,BottomBox) and close < MAVW ? true : false
shortClose = strategy.opentrades.profit(strategy.opentrades-1)>0 and ta.crossover(rvi,sig) ? true : false
strategy.entry("Short Position", strategy.short, when = short and window() and strategy.position_size==0 and strategy.closedtrades<100)
if(shortStopSet==false and strategy.position_size < 0)
    strategy.exit("exit", "Short Position", stop=TopBox)
    shortStopSet := true
if(strategy.position_size==0)
    shortStopSet := false
strategy.close("Short Position", when = shortClose)