Estratégia de avanço de oscilação de sete velas

Autora:ChaoZhang, Data: 2023-12-15 16:14:32
Tags:

img

Resumo

A estratégia de avanço de oscilação de sete velas detecta a persistência de padrões de candelabro para cima e para baixo formados por sete linhas K para determinar tendências de oscilação do mercado e fazer operações de avanço em horários fixos para lucro.

Princípio da estratégia

A lógica central desta estratégia baseia-se em dois indicadores:

  1. seteReds: detecção de 7 linhas K decrescentes consecutivas, definidas como uma tendência descendente na oscilação do mercado
  2. sete verdes: detecção de 7 linhas K ascendentes consecutivas, definidas como uma tendência ascendente na oscilação do mercado

Quando sete Vermelhos são detectados, vão longos; quando sete Verdes são detectados, vão curtos.

Além disso, a estratégia também fecha as posições em horários fixos (horários de divulgação de dados importantes dos EUA) todos os dias para obter lucros.

Análise das vantagens

A estratégia de avanço da oscilação de sete velas tem as seguintes vantagens:

  1. Capta tendências de oscilação do mercado.
  2. A operação cronometrada evita os riscos sistémicos associados a grandes variações de diferença em torno dos principais dados económicos
  3. A captação de lucros em tempo útil bloqueia os ganhos e reduz os saques

Análise de riscos

A estratégia de avanço de oscilação de sete velas também tem alguns riscos:

  1. Risco de erro no reconhecimento de padrões: sete linhas K não podem filtrar completamente o ruído e podem gerar sinais incorretos
  2. Não existem medidas de stop loss para limitar as perdas por transação
  3. Os prazos de obtenção de lucros não podem ser ajustados dinamicamente, risco de não obter lucros a tempo

Soluções correspondentes:

  1. Aumentar o número de linhas K, aumentar o limiar de persistência
  2. Adicionar a lógica de stop loss em movimento
  3. Ajustar dinamicamente o tempo de obtenção de lucros com base em indicadores de volatilidade

Orientações de otimização

A estratégia de avanço da oscilação de sete velas pode ser otimizada nos seguintes aspectos:

  1. Adicionar múltiplos conjuntos de segurança para rotação de índices/sectores
  2. Adicionar modelos de aprendizagem de máquina para ajudar a previsão do regime de mercado
  3. Incorporar médias móveis para sinais de entrada otimizados
  4. Ajuste dinâmico do tamanho das posições com base na retirada para controlar o risco

Conclusão

A estratégia de avanço de oscilação de sete velas ganha capturando tendências de oscilação de curto prazo no mercado, enquanto usa a execução cronometrada para evitar riscos maiores e tirar lucros para bloquear ganhos. A estratégia pode ser aprimorada por meio de rotação de vários ativos, aprendizado de máquina, etc. É uma estratégia de negociação quantitativa típica de frequência média.


/*backtest
start: 2023-12-07 00:00:00
end: 2023-12-14 00:00:00
period: 10m
basePeriod: 1m
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/
// © Eliza123123

//@version=5
strategy("Breakeven Line Demo", overlay=true)

// Generic signal (not a viable strategy don't use, just some code I wrote quick for demo purposes only)
red = open > close, green = open < close
sevenReds = red and red[1] and red[2] and red[3] and red[4] and red[5] and red[6]
sevenGreens = green and green[1] and green[2] and green[3] and green[4] and green[5] and green[6]
if sevenReds
    strategy.entry('Buy', direction=strategy.long)
if sevenGreens
    strategy.entry('Sell', direction=strategy.short)
if (hour == 5 and minute == 0 ) or (hour == 11 and minute == 0) or (hour == 17 and minute == 0 ) or (hour == 23 and minute == 0) 
    strategy.close_all("Close")

// Breakeven line for visualising breakeven price on stacked orders.  
var breakEvenLine = 0.0
if strategy.opentrades > 0 
    breakEvenLine := strategy.position_avg_price
else
    breakEvenLine := 0.0
color breakEvenLineColor = na
if strategy.position_size > 0
    breakEvenLineColor := #15FF00
if strategy.position_size < 0
    breakEvenLineColor := #FF000D
plot(breakEvenLine, color = breakEvenLine and breakEvenLine[1] > 0 ? breakEvenLineColor : na, linewidth = 2, style = plot.style_circles)



Mais.