Estratégia de padrão de velas de combinação multimodelo


Data de criação: 2023-10-17 15:53:06 última modificação: 2023-10-17 15:53:06
cópia: 0 Cliques: 671
1
focar em
1617
Seguidores

Estratégia de padrão de velas de combinação multimodelo

Visão geral

Esta estratégia é usada para a negociação de ações por meio da combinação de vários modelos em forma de alfinete. Combina o modelo de linha de pacote, o modelo de alfinete vazio e o modelo de estrela cruzada para capturar oportunidades de negociação em diferentes condições de mercado.

Princípios

A lógica central desta estratégia é a construção de várias regras para o julgamento de formações e, em seguida, a síntese dessas regras para gerar sinais de negociação.

Em primeiro lugar, define algumas variáveis básicas para descrever as propriedades do fio de alumínio, como o tamanho do corpo do corpo de alumínio, o preço de abertura e o preço de fechamento.

Em seguida, ele define 3 tipos de barras de negociação, de acordo com a relação entre o preço de fechamento e o preço de abertura de uma barra: 1 representa uma barra de negociação, -1 representa uma barra de negociação, e 0 representa uma barra de negociação.

A partir disso, construímos três regras para o julgamento da forma de uma pirâmide:

  1. Modelo de Engulfing Pattern: A linha K atual envolve a linha K anterior, gerando um sinal de compra ou venda.

  2. Padrão Harami: A linha K superior envolve a linha K atual, gerando um sinal de compra ou venda.

  3. Harami Cross Pattern: combinação de um núcleo vazio com uma estrela cruzada, gerando um sinal de compra ou venda.

De acordo com essas regras de forma de alfinete, pode ser determinado o momento de compra e venda. E combinado com algumas condições adicionais, como a limitação do intervalo de tempo de negociação, para filtrar os sinais de negociação que não correspondem aos requisitos.

Na parte de negociação, a posição é julgada primeiro, e se for contra a direção do sinal de quebra, a posição é fechada primeiro, e depois aberta de acordo com a direção do sinal.

Vantagens

  • A combinação de vários formatos, forte estabilidade. Um único formato pode ser mais influenciado por um determinado ambiente de mercado, a combinação de formas de uso pode aumentar a estabilidade.

  • Confirmação de formas na mesma direção, julgamento integrado, evitar erros de julgamento. Diferentes modelos de formas julgam tendências de diferentes ângulos e podem verificar sinais entre si.

  • Parâmetros ajustáveis e adaptáveis. Os usuários podem combinar livremente diferentes modelos de forma, ajustar o intervalo de tempo de negociação e outros parâmetros, respondendo de forma flexível às mudanças do mercado.

  • Uma lógica de negociação perfeita. Combinando o julgamento de posição com a lógica de saída de stop-loss, o risco pode ser controlado de forma eficaz.

Riscos

  • A combinação de múltiplos parâmetros aumenta a complexidade. É necessário testar a combinação de todos os parâmetros, e a combinação inadequada de parâmetros pode reduzir a eficácia.

  • A configuração dos parâmetros de forma depende da experiência. Os parâmetros de forma, como o tamanho apropriado da entidade, precisam de experiência acumulada para serem ajustados.

  • O risco de manter uma posição unilateral. Apenas fazer mais ou apenas fechar o mercado pode limitar a margem de lucro. Pode fazer mais fechamento ao mesmo tempo através da configuração de parâmetros.

  • Pode ter perdido o ponto de reversão da tendência. Esta estratégia baseia-se na identificação de formas e não é eficaz para determinar a reversão da tendência. Pode ser combinado com outros indicadores para determinar o momento.

Otimização

  • Aumentar as estratégias de stop loss para reduzir o risco de posições unilaterais.

  • Combine com outros indicadores técnicos para determinar a direção da grande tendência, evitando negociações adversas, como MACD, Bollinger Band, etc.

  • Testar as preferências de parâmetros de diferentes variedades, criando um conjunto de formas adequadas para diferentes variedades.

  • Adicionar algoritmos de aprendizagem de máquina para auxiliar a otimização de parâmetros e a identificação de formas por meio de IA.

Resumir

A estratégia utiliza os benefícios de uma variedade de criptomoedas para construir um sistema de negociação de linha curta relativamente estável e confiável. No entanto, alguns parâmetros de configuração e controle de risco precisam de ser melhorados para se adaptar a um ambiente de mercado mais complexo.

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

//Noro
//2018

//@version=3
strategy(title = "Noro's CandleModels Tests", shorttitle = "CandleModels tests", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")

eng = input(true, defval = true, title = "Model Engulfing")
har = input(true, defval = true, title = "Model Harami")
harc = input(true, defval = true, title = "Model Harami Cross")

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")
rev = input(false, defval = false, title = "Reversive trading")

//Body
body = abs(close - open)
abody = sma(body, 10)

//MinMax Bars
min = min(close, open)
max = max(close, open)

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
doji = body < abody / 10
up1 = eng and bar == 1 and bar[1] == -1 and min <= min[1] and max >= max[1]
dn1 = eng and bar == -1 and bar[1] == 1 and min <= min[1] and max >= max[1]
up2 = har and bar == 1 and bar[1] == -1 and min >= min[1] and max <= max[1]
dn2 = har and bar == -1 and bar[1] == 1 and min >= min[1] and max <= max[1]
up3 = harc and doji and bar[1] == -1 and low >= min[1] and high <= max[1]
dn3 = harc and doji and bar[1] == 1 and low >= min[1] and high <= max[1]
exit = ((strategy.position_size > 0 and bar == 1) or (strategy.position_size < 0 and bar == -1)) and body > abody / 2 and rev == false

//Trading
if up1 or up2 or up3
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1 or dn2 or dn3
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()