Estratégia de caixa branca do robô do canal de preço


Data de criação: 2024-02-28 17:51:14 última modificação: 2024-02-28 17:51:14
cópia: 0 Cliques: 622
1
focar em
1617
Seguidores

Estratégia de caixa branca do robô do canal de preço

Visão geral

A estratégia de caixa branca robótica de corredores de preço é uma estratégia de negociação mecanizada simples baseada no indicador de corredores de preço. Ela usa o limite superior e inferior do corredor de preço para determinar o tempo de entrada e saída.

Princípio da estratégia

A lógica central da estratégia de caixa branca dos robôs do canal de preços é:

  1. Utilizando as funções highest e lowest, calcula-se o máximo e o mínimo dos preços mais recentes da linha raiz K, definidos como os limites superior e inferior do canal de preços
  2. Calcule o preço médio do canal: ((o preço mais alto + o preço mais baixo) / 2
  3. Quando os preços sobem e atravessam o limite superior do canal de preços, abrir mais posições
  4. Quando os preços atingem o limite inferior do canal de preços, abrir uma posição vazia
  5. Quando o preço retorna para o preço médio do canal de preço, a posição de equilíbrio

A estratégia também possui alguns parâmetros configuráveis:

  • Comprimento do canal de preço len: 50 linhas K padrão
  • Tipo de abertura: multi-cabeça, cabeçalho vazio pode ser configurado separadamente
  • O montante da posição aberta: 100% dos juros da conta por defeito
  • Paragem: opção de usar o preço médio do canal como paragem
  • Horário de negociação: configurável para negociar apenas dentro do período de data especificado

Ao ajustar esses parâmetros, a estratégia pode ser melhor adaptada a diferentes variedades e condições de mercado.

Análise de vantagens

A estratégia de caixa branca de um robô de canal de preço tem as seguintes vantagens:

  1. A lógica da estratégia é simples, fácil de entender e implementar.
  2. Aproveite os indicadores de canais de preços para avaliar tendências e reversões
  3. Mais parâmetros configuráveis, mais adaptabilidade
  4. Mecanismo de suspensão de prejuízos incorporado para limitar perdas
  5. Suporte a filtragem de tempo para evitar o impacto de eventos importantes

No geral, a estratégia é uma estratégia de acompanhamento de tendências simples e práticas que, com o ajuste dos parâmetros, pode obter bons resultados.

Análise de Riscos

A estratégia de caixa branca de um robô de canal de preços também tem alguns riscos:

  1. Os indicadores de canal de preço são sensíveis ao parâmetro len, com diferentes períodos de tempo e variedades necessitando de testes e otimização independentes
  2. O rastreamento de stop loss tem um risco de arbitragem e precisa de uma distância de stop loss adaptada à volatilidade do mercado.
  3. No caso de um mercado horizontal e de um mercado de choque, isso gera mais transações irrelevantes, aumentando os custos de transação e a perda de pontos de deslizamento.

Para minimizar esses riscos, é necessário otimizar os seguintes aspectos:

  1. Parâmetros de otimização automática usando o método Walk Forward Analysis
  2. A probabilidade de evitar a arbitragem ao incluir uma zona de amortização no preço de parada
  3. Aumentar os indicadores de tendência para evitar a negociação em mercados de baixa e baixa volatilidade

Direção de otimização

A estratégia de caixa branca de robôs de corredores de preços ainda tem espaço para ser melhorada:

  1. Aumentar o julgamento de tendências de grande ciclo, evitando negociações adversas
  2. Combine a diferença de preço entre as diferentes variedades para definir os parâmetros e aproveitar as oportunidades de arbitragem
  3. Adição de uma zona de amortização aleatória no preço de parada para reduzir a probabilidade de arbitragem
  4. Parâmetros de canal de preço ajustados dinamicamente de acordo com a flutuação do mercado
  5. Estratégias de otimização de agentes treinadas com métodos de aprendizagem profunda para variedades específicas

Com esses métodos de otimização, espera-se aumentar ainda mais a estabilidade e a rentabilidade da estratégia.

Resumir

A estratégia de caixa branca do robô de canal de preço é uma estratégia de tendência de rastreamento simples, mas prática. Ela determina a direção da tendência e os pontos de reversão através do indicador de canal de preço e, assim, toma decisões comerciais. A estratégia é fácil de entender e implementar, obtendo bons retornos após otimizar os parâmetros.

Código-fonte da estratégia
/*backtest
start: 2023-02-21 00:00:00
end: 2024-02-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro

//@version=4
strategy(title = "Robot WhiteBox Channel", shorttitle = "Robot WhiteBox Channel", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, commission_value = 0.1)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
needstop = input(true, defval = true, title = "Stop-loss")
lotsize = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
len = input(50, minval = 1, title = "Price Channel Length")
showll = input(true, defval = true, title = "Show lines")
showbg = input(false, defval = false, title = "Show Background")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Price Channel
h = highest(high, len)
l = lowest(low, len)
center = (h + l) / 2

//Lines
pccol = showll ? color.black : na
slcol = showll ? color.red : na
plot(h, offset = 1, color = pccol)
plot(center, offset = 1, color = slcol)
plot(l, offset = 1, color = pccol)

//Background
size = strategy.position_size
bgcol = showbg == false ? na : size > 0 ? color.lime : size < 0 ? color.red : na
bgcolor(bgcol, transp = 70)

//Trading
truetime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)
lot = 0.0
lot := size != size[1] ? strategy.equity / close * lotsize / 100 : lot[1]
if h > 0
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = h, when = strategy.position_size <= 0 and truetime)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = l, when = strategy.position_size >= 0 and truetime)
    strategy.entry("S Stop", strategy.long, 0, stop = center, when = strategy.position_size[1] <= 0 and needstop)
    strategy.entry("L Stop", strategy.short, 0, stop = center, when = strategy.position_size[1] >= 0 and needstop)
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    strategy.cancel("Long")
    strategy.cancel("Short")