
A estratégia de breakout de preço de duplo equilíbrio e inversão busca um momento de entrada de maior qualidade através da combinação de sinais de negociação dupla. A estratégia primeiro utiliza a média móvel de 9 dias e seus trajectos para cima e para baixo para construir o quadro básico de breakout, e depois usa a direção de oportunidade de julgamento de 123 formas para introduzir um sinal de filtragem de indicador aleatório, resultando em regras de entrada mais rigorosas. Esta combinação de filtragem pode efetivamente reduzir a frequência de negociação e garantir a qualidade do sinal, adequada para a posse de linhas médias e longas.
A estratégia de ruptura de preço de dupla linha de equilíbrio e reversão é constituída por uma combinação de duas estratégias secundárias.
A primeira sub-estratégia julga a forma 123. A estratégia usa a relação de preços de fechamento dos dois dias anteriores para determinar a possível direção de ruptura dos preços futuros. Se o preço de fechamento de hoje sobe em relação ao preço de fechamento do dia anterior e cai em relação ao preço de fechamento do dia anterior, é considerado um sinal de compra; Se o preço de fechamento de hoje cai em relação ao preço de fechamento do dia anterior e sobe em relação ao preço de fechamento do dia anterior, é considerado um sinal de venda.
A segunda sub-estratégia é a ruptura do canal da média móvel deslocada. A estratégia calcula a média móvel indexada de um período especificado (como 9 dias) e adiciona uma porcentagem acima e abaixo dela como um canal ascendente e descendente.
Em última análise, somente quando a direção do sinal das duas subestratégias coincide, ou seja, o sinal de inversão de forma 123 e o sinal de ruptura de canal são sincronizados, é que o verdadeiro sinal de orientação de negociação real é finalmente produzido. Este mecanismo de dupla filtragem pode filtrar uma grande quantidade de falsos sinais, reduzindo a frequência de negociação e garantindo que cada transação tenha uma maior credibilidade.
A estratégia de ruptura de preços de dupla linha de equilíbrio e inversão utiliza vários métodos de análise em conjunto, com as seguintes vantagens:
O mecanismo de filtragem de duplo sinal reduz efetivamente os sinais inválidos, tornando cada transação de maior qualidade.
O julgamento da forma 123 pertence à estratégia de reversão em curto prazo, a ruptura do canal de deslocamento pertence à estratégia de acompanhamento de tendências de linha média e longa, o uso combinado pode realizar uma combinação de linha curta e longa, com melhor efeito de receita.
A frequência do sinal pode ser controlada livremente, ajustando-se a amplitude de ascensão e descensão do canal, para se adequar a diferentes preferências de negociação.
O uso da linha média diária de 9 como eixo central do canal, a escolha dos parâmetros é mais razoável, evitando sinais muito frequentes.
Aplicando o julgamento de áreas de sobrecompra e sobrevenda de indicadores aleatórios, pode-se evitar ser preso em situações de turbulência.
A estratégia de quebra de preços de dupla linha de equilíbrio e inversão também apresenta alguns riscos, principalmente nos seguintes aspectos:
O mecanismo de dupla filtragem de sinais pode perder algumas das oportunidades que uma estratégia unilateral pode capturar, podendo haver um certo risco de falha.
O 123 Buy and Sell Point não é capaz de filtrar completamente todas as falsas brechas, o que pode resultar em prejuízos se não for aplicado corretamente.
Se a situação mudar drasticamente, a configuração inadequada da posição de parada pode levar a grandes perdas.
A lógica condicional de ifft é complexa, e os parâmetros impróprios são propensos a erros lógicos, que resultam em falhas de julgamento de sinais.
Os dados extra-sampulados podem afetar a estabilidade dos parâmetros, e é necessário otimizá-los dinamicamente.
A estratégia de quebra de preço de dupla linha de equilíbrio e inversão ainda tem espaço para otimização:
Pode-se testar diferentes tipos de linha média, escolhendo uma combinação de parâmetros que geram uma qualidade de sinal melhor e mais estável.
A largura de banda do canal pode ser selecionada de acordo com as características de dados de uma variedade específica.
Pode ser combinado com um stop loss para controlar a taxa de perda máxima.
A introdução de parâmetros de otimização dinâmica de modelos de aprendizado de máquina pode tornar as estratégias mais robustas.
Pode ser adicionado um filtro de volume ou de volatilidade para evitar entradas e saídas excessivamente frequentes em situações de turbulência.
A estratégia de ruptura de preço de retorno de dupla linha e dupla linha, através do mecanismo de filtragem de dupla verificação, combina com sucesso a inversão de curto prazo com o rastreamento de tendências de linha média e longa para formar um sistema de negociação eficiente, capaz de filtrar efetivamente os sinais de invalidez, selecionar oportunidades de entrada de alta qualidade e ter um espaço personalizável mais forte. A estratégia tem grande potencial de uso como uma estrutura geral, com ajuste de parâmetros e otimização de aprendizado de máquina.
/*backtest
start: 2023-11-06 00:00:00
end: 2023-12-06 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 18/03/2021
// This is combo strategies for get a cumulative signal.
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
// The strategy sells at market, if close price is lower than the previous close price
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// Moving Average Displaced Envelope. These envelopes are calculated
// by multiplying percentage factors with their displaced expotential
// moving average (EMA) core.
// How To Trade Using:
// Adjust the envelopes percentage factors to control the quantity and
// quality of the signals. If a previous high goes above the envelope
// a sell signal is generated. Conversely, if the previous low goes below
// the envelope a buy signal is given.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
vFast = sma(stoch(close, high, low, Length), KSmoothing)
vSlow = sma(vFast, DLength)
pos = 0.0
pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0)))
pos
MADE(Price,Period, perAb, perBl, disp) =>
pos = 0.0
sEMA = ema(Price, Period)
top = sEMA[disp] * ((100 + perAb)/100)
bott = sEMA[disp]* ((100 - perBl)/100)
pos := iff(close < bott , 1,
iff(close > top, -1, pos[1]))
pos
strategy(title="Combo Backtest 123 Reversal & MA Displaced Envelope", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- MA Displaced Envelope ----")
Price = input(title="Source", type=input.source, defval=close)
Period =input(defval=9, minval=1)
perAb = input(title = "Percent above", defval=.5, minval=0.01, step = 0.1)
perBl = input(title = "Percent below", defval=.5, minval=0.01, step = 0.1)
disp = input(title = "Displacement", defval=13, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMADE = MADE(Price,Period, perAb, perBl, disp)
pos = iff(posReversal123 == 1 and posMADE == 1 , 1,
iff(posReversal123 == -1 and posMADE == -1, -1, 0))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1 , 1, pos))
if (possig == 1 )
strategy.entry("Long", strategy.long)
if (possig == -1 )
strategy.entry("Short", strategy.short)
if (possig == 0)
strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )