
Esta estratégia usa a média móvel de pedras preciosas como principal indicador técnico, em combinação com a dupla faixa de Brin, para identificar a tendência do mercado. Olhe para baixo quando o preço quebra a faixa de Brin para cima e olhe para cima quando o preço quebra a faixa de Brin para baixo.
Computação da Média Móvel de Peças (CBMA): A utilização da Média Móvel de Peças (MA) de EMA, adaptada, permite um acompanhamento eficaz das mudanças de preços.
Configuração dos parâmetros da faixa de Brimstone: escolha a média móvel de pedras como a linha central, e a linha superior e inferior adotam a configuração padrão de múltiplo de estômago de diferença, que pode ser ajustada de acordo com o mercado.
Negociação de ruptura: o preço sobe quando o preço quebra a trajetória superior, e sobe quando o preço quebra a trajetória inferior, usando a estratégia de seguimento de tendências do “breaker”.
O cancelamento de pedidos de relâmpagos é usado para fazer apenas transações unilaterais.
O volume de transação é fixado e pode ser ajustado de acordo com o capital.
A média móvel de fragmentos é muito suave e permite um bom acompanhamento dos preços.
Adaptação do algoritmo EMA para otimizar o tempo real das médias móveis.
O Brin, com o sinal de subida e descida, indicou claramente a direção da ruptura.
A tendência é que os investidores usem o modelo de acompanhamento de tendências, evitando o whipsaw.
O volume fixo de negociação controla o prejuízo único.
A configuração dos parâmetros da faixa de Bryn precisa ser otimizada, e há problemas com tamanhos grandes ou pequenos.
O sinal de ruptura pode ser falso.
O que é necessário para controlar os prejuízos?
O volume fixo de transações não pode ser ajustado de acordo com o mercado.
A única forma de obter lucros é através de transações unilaterais.
Otimização dinâmica dos parâmetros da faixa de Brin para que a faixa de Brin seja mais adequada para o mercado.
Adicione mais indicadores para filtrar ondas e evitar falsas brechas.
Adicione um tracking stop para bloquear o lucro.
A negociação de cobertura, ao mesmo tempo em que fazemos mais shorting, é mais lucrativa.
Adesão ao sistema de gestão de posições.
Esta estratégia é uma estratégia de acompanhamento de tendências de breaker, usando indicadores tecnológicos de médias móveis adaptáveis, em combinação com a dupla faixa de Brin para definir um sinal de ruptura claro. A estratégia é simples e fácil de operar, o volume de negociação fixo pode controlar o risco, com um certo valor de negociação. Mas também há alguns problemas, como a falsa ruptura e a otimização de parâmetros, que precisam ser otimizados pela adição de mais indicadores tecnológicos, ao mesmo tempo em que controlam o risco.
/*backtest
start: 2023-10-29 00:00:00
end: 2023-11-05 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="CBMA Bollinger Bands Strategy directed [ChuckBanger]", shorttitle="CBMA BB CB",
overlay=true )
length = input(title="Length", type=input.integer, defval=12, minval=1)
regular = input(title="Regular BB Or CBMA?", type=input.bool, defval=false)
src = input(title="Source", type=input.source, defval=close)
mult = input(title="Multipler", type=input.float, defval=2.3, minval=.001, maxval=50, step=.1)
emaLen = input(title="EMA Length", type=input.integer, defval=11, minval=1)
emaGL = input(title="EMA Gain Limit", type=input.integer, defval=50, minval=1)
highlight = input(title="Highlight On/Off", type=input.bool, defval=true)
direction = input(0, title = "Strategy Direction", type=input.integer, minval=-1, maxval=1)
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))
//strategy.risk.max_drawdown(50, strategy.percent_of_equity)
calc_hma(src, length) =>
hullma = wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
hullma
calc_cbma(price, length, emaLength, emaGainLimit) =>
alpha = 2 / (emaLength + 1)
ema = ema(price, emaLength)
int leastError = 1000000
float ec = 0
float bestGain = 0
for i = emaGainLimit to emaGainLimit
gain = i / 10
ec := alpha * ( ema + gain * (price - nz(ec[1])) ) + (1 - alpha) * nz(ec[1])
error = price - ec
if (abs(error) < leastError)
leastError = abs(error)
bestGain = gain
ec := alpha * ( ema + bestGain * (price - nz(ec[1])) ) + (1 - alpha) * nz(ec[1])
hull = calc_hma(price, length)
cbma = (ec + hull) / 2
cbma
cbma = calc_cbma(src, length, emaLen, emaGL)
basis = regular ? sma(src, length) : cbma
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
cbmaColor = fixnan(highlight and not regular ? cbma > high ? color.purple : cbma < low ? color.aqua : na : color.red)
plot(basis, color=cbmaColor)
p1 = plot(upper, color=color.blue)
p2 = plot(lower, color=color.blue)
fill(p1, p2)
if (crossover(src, lower))
strategy.entry("CBMA_BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="CBMA_BBandLE")
else
strategy.cancel(id="CBMA_BBandLE")
if (crossunder(src, upper))
strategy.entry("CBMA_BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="CBMA_BBandSE")
else
strategy.cancel(id="CBMA_BBandSE")