Estratégia de Padrão de Reversão de Velas Traseiras


Data de criação: 2024-01-26 16:04:26 última modificação: 2024-01-26 16:04:26
cópia: 1 Cliques: 578
1
focar em
1617
Seguidores

Estratégia de Padrão de Reversão de Velas Traseiras

Visão geral

Esta estratégia permite a negociação automática através da identificação de padrões de paralisação, a realização de sinais de seguimento de negociação e, em combinação com a lógica de parada de paralisação. Quando a identificação de padrões de reversão é feita, mais tomadas de posição são feitas, atingindo a parada ou a posição de parada após a perda.

Princípio da estratégia

  1. Identificação de forma de um alvo: quando o tamanho do alvo é menor do que o limite estabelecido e o preço de abertura é igual ao preço de fechamento, é considerado um sinal de negociação de seguimento.

  2. Fazer mais curto: quando se identifica uma forma de inversa, se o preço de fechamento do dia anterior for superior ao dos dois dias anteriores, faça mais; se o preço de fechamento do dia anterior for inferior ao dos dois dias anteriores, faça curto.

  3. Stop loss: pára quando o preço atinge o preço de entrada mais o ponto de parada após o overdraft; pára quando o preço atinge o preço de entrada menos o ponto de parada após o overdraft; pára quando o preço atinge o ponto de parada após o overdraft.

Vantagens estratégicas

  1. O uso da forma de inverter de rotação pode efetivamente capturar os pontos de inflexão dos preços das ações, aumentando a eficácia dos sinais de negociação.

  2. A combinação de um mecanismo de stop-loss e um mecanismo de stop-loss permite controlar o risco de forma eficaz, bloquear o lucro e evitar a expansão dos perdas.

  3. Automatizar transações sem a intervenção humana, reduzir custos de transação e aumentar a eficiência das transações.

Risco estratégico

  1. A hipótese de um juízo de forma errónea tem uma certa subjetividade, podendo ocorrer situações de erro de julgamento.

  2. O ponto de parada de perda está mal configurado, podendo perder um evento importante ou parar prematuramente.

  3. Os parâmetros da estratégia precisam ser constantemente testados e otimizados, o que pode levar a um excesso de adequação.

Direção de otimização da estratégia

  1. Otimizar as condições de julgamento da forma de alumínio, combinado com mais indicadores de linha K para melhorar a precisão de julgamento.

  2. Teste de diferentes variedades de negociação, ajuste do ponto de parada e perda, otimização de parâmetros.

  3. O que é um algoritmo para julgar mais sinais de negociação, uma estratégia para enriquecer a lógica?

  4. Adição do módulo de gestão de posições, que permite ajustar as posições de forma dinâmica de acordo com os indicadores de referência.

Resumir

A estratégia é simples de entender e tem algum valor prático. Mas a precisão de identificação e o espaço de otimização de parâmetros ainda precisam ser melhorados, e é recomendado que seja feito mais teste e otimização antes de ser recomendada a aplicação no mercado real.

Código-fonte da estratégia
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/01/2019
//   This is a candlestick where the open and close are the same. 
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title = "Doji Backtest", overlay = true)
input_takeprofit = input(10, title="Take Profit pip", step=0.01)
input_stoploss = input(10, title="Stop Loss pip", step=0.01)
input_minsizebody = input(0.5, title="Min. Size Body pip", step=0.01)
barcolor(abs(close - open) <= input_minsizebody ? open == close ? yellow : na : na)
possell = 0.0
posbuy = 0.0
pospricebuy = 0.0
pospricesell = 0.0
barcolornow = blue
pospricesell := close< close[2] ? abs(close - open) <= input_minsizebody ? open == close ? close : nz(pospricesell[1], 0) : nz(pospricesell[1], 0) : nz(pospricesell[1], 0) 
possell := iff(pospricesell > 0 , -1, 0)
barcolornow := possell == -1 ? red: posbuy == 1 ? green : blue 
pospricesell := iff(low <= pospricesell - input_takeprofit and pospricesell > 0, 0 ,  nz(pospricesell, 0))
pospricesell := iff(high >= pospricesell + input_stoploss and pospricesell > 0, 0 ,  nz(pospricesell, 0))
pospricebuy := close > close[2] ? abs(close - open) <= input_minsizebody ? open == close ? close : nz(pospricebuy[1], 0) : nz(pospricebuy[1], 0) : nz(pospricebuy[1], 0) 
posbuy := iff(pospricebuy > 0 , 1, 0)
barcolornow := posbuy == 1 ? green: barcolornow
pospricebuy := iff(high >= pospricebuy + input_takeprofit and pospricebuy > 0, 0 ,  nz(pospricebuy, 0))
pospricebuy := iff(low <= pospricebuy - input_stoploss and pospricebuy > 0, 0 ,  nz(pospricebuy, 0))
barcolor(barcolornow)
if (posbuy == 0 and possell == 0) 
    strategy.close_all()
if (posbuy == 1)
    strategy.entry("Long", strategy.long)
if (possell == -1)
    strategy.entry("Short", strategy.short)	   	    
pospricebuy := iff(high <= pospricebuy + input_takeprofit and pospricebuy > 0, 0 ,  nz(pospricebuy, 0))
pospricebuy := iff(low >= pospricebuy - input_stoploss and pospricebuy > 0, 0 ,  nz(pospricebuy, 0))
pospricesell := iff(low <= pospricesell - input_takeprofit and pospricesell > 0, 0 ,  nz(pospricesell, 0))
pospricesell := iff(high >= pospricesell + input_stoploss and pospricesell > 0, 0 ,  nz(pospricesell, 0))