Esta estratégia usa o indicador de Brinks para analisar as mudanças no preço de criptomoedas em diferentes intervalos de tempo (minutos 1, 3, 5 e 15 minutos) para procurar oportunidades de compra e venda. Ele serve como um padrão para o sentimento no mercado de criptomoedas, focando principalmente no preço de 5 minutos do Bitcoin. Quando o preço do Bitcoin quebra o Brinks, o sentimento é considerado como um estado de tendência otimista; por outro lado, quando o preço do Bitcoin quebra o Brinks, o sentimento é considerado como uma tendência negativa.
A estratégia calcula a faixa de Brin simultaneamente em intervalos de tempo de 1 minuto, 3 minutos, 5 minutos e 15 minutos. A faixa de Brin é composta por uma média móvel de n dias (default: 20 dias) e várias vezes sua diferença padrão (default: 1,5 vezes). A média móvel representa o preço médio da moeda em um determinado período de tempo, e a diferença padrão reflete a amplitude da oscilação de preços.
A estratégia usa essa característica do indicador de Brinks para avaliar a evolução mais recente do mercado em diferentes intervalos de tempo (minutos 1, 3, 5 e 15 minutos). Quando o preço em intervalos de 3 ou 5 minutos quebra o Brinks para cima ou para baixo, e os intervalos de 1 minuto e 15 minutos também apresentam sinais, a estratégia julga que o mercado emitiu o último sinal de compra e venda. Além disso, a estratégia também se refere ao período de 5 minutos do Bitcoin para avaliar a tendência geral do mercado de criptomoedas e o sentimento do mercado como um todo (atmosfera de volume), como um sinal de referência.
Após a abertura da posição, a estratégia também configura um stop loss. Se o preço da posição sobe ou desce 25%, o stop loss é definido; Se o preço sobe ou desce mais de 25% na direção oposta, o stop loss é definido.
A estratégia integra a avaliação de movimentos de curto e médio prazo do mercado. O tempo de 1 minuto e 5 minutos é usado para avaliar os avanços mais recentes do mercado, e o tempo de 15 minutos é usado para avaliar as tendências de médio prazo, evitando ser enganado pelas flutuações de curto prazo do mercado.
A estratégia é focar simultaneamente nas rupturas na faixa de Brin, na parte superior e inferior da faixa, para evitar a perda de oportunidades de compra e venda.
O Bitcoin é usado como uma referência de mercado e um indicador de emoção de mercado, o que pode melhorar a precisão da tomada de decisões.
A configuração de Stop Loss permite controlar o risco de forma eficaz.
A forma de Brin quebrou o cinturão de um certo atraso e pode ter perdido o melhor momento de entrada.
A estratégia é difícil de ser aplicada se houver um caso de Black Swan de risco sistêmico, como passwords, no mercado de criptomoedas como um todo.
Embora o stop loss tenha sido configurado, um evento inesperado que cause um excesso de stop loss também pode causar um grande prejuízo.
Parâmetros estratégicos mal definidos, como a duração do tempo, o múltiplo da diferença padrão, etc., podem reduzir a qualidade do sinal de negociação.
A solução é:
A partir de agora, a seleção dos melhores horários de admissão será feita com base em mais critérios.
Aumentar a avaliação do risco sistémico no mercado.
Reduzir adequadamente o tamanho das posições e o limiar de perda por transação.
Configurar parâmetros de otimização e fazer verificação de feedback.
Adicionar mais tempo para o julgamento, como 30 minutos ou 60 minutos para o indicador de correia de Bryn.
Selecione os parâmetros mais apropriados para as bandas de Brin, de acordo com as características das diferentes moedas, para melhorar a eficácia do indicador.
Aumentar o volume de transações, por exemplo. O volume de transações é a forma de verificar a confiabilidade das mudanças de preços.
Em combinação com outros indicadores, como o RSI de Stoch, o MACD e outros, aumenta a precisão da tomada de decisão. Estes indicadores podem melhorar significativamente o julgamento sobre a tendência real do mercado.
Comparar as tendências e correlações de preços entre as diferentes moedas e escolher o objeto de negociação com maior espaço de manobra.
Optimizar a estratégia de stop loss e determinar os parâmetros ótimos por meio de análise estatística posterior.
Esta estratégia é uma estratégia de negociação de criptomoedas de cordas de um time-lapse múltipla. Ela se concentra na mudança de preços no mercado em uma escala de curto e médio prazo, usando o indicador de cordas de um time-lapse para avaliar o estado de vazio do mercado. Ao mesmo tempo, ela usa o preço do Bitcoin como referência e sinal de referência do mercado, auxiliando na avaliação do movimento geral do mercado de criptomoedas.
/*backtest
start: 2024-01-27 00:00:00
end: 2024-02-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(shorttitle="Crypto BB", title="Multi-Interval Bollinger Band Crypto Strategy", overlay=true)
length = input.int(20, minval=1)
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(1.5, minval=0.001, maxval=50, title="StdDev")
interval1m = request.security(syminfo.tickerid, '1', src)
interval3m = request.security(syminfo.tickerid, '3', src)
interval5m = request.security(syminfo.tickerid, '5', src)
interval15m = request.security(syminfo.tickerid, '5', src)
btcinterval5m = request.security("BTC_USDT:swap", "5", src)
bitcoinSignal = 'flat'
var entryPrice = 0.000
ma(source, length, _type) =>
switch _type
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
bitcoinBasis = ma(btcinterval5m, length, maType)
bitcoinDev = ta.stdev(btcinterval5m, length)
bitcoinUpper = bitcoinBasis + bitcoinDev
bitcoinLower = bitcoinBasis - bitcoinDev
basis1m = ma(interval1m, length, maType)
basis3m = ma(interval3m, length, maType)
basis5m = ma(interval5m, length, maType)
basis15m = ma(interval5m, length, maType)
dev1m = mult * ta.stdev(interval1m, length)
dev3m = mult * ta.stdev(interval3m, length)
dev5m = mult * ta.stdev(interval5m, length)
upper1m = basis1m + dev1m
lower1m = basis1m - dev1m
upper3m = basis3m + dev3m
lower3m = basis3m - dev3m
upper5m = basis5m + dev5m
lower5m = basis5m - dev5m
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis3m, "Basis 3 minute", color=#2962FF, offset = offset)
p3upper = plot(upper3m, "Upper", color=#2962FF, offset = offset)
p3lower = plot(lower3m, "Lower", color=#2962FF, offset = offset)
//Exit protocols
if strategy.opentrades != 0 and strategy.opentrades.entry_id(0) == 'Buy'
entryPrice := strategy.opentrades.entry_price(0)
if ((interval1m - entryPrice)/entryPrice) * 30 > .25
strategy.close('Buy', comment='Take Profit on Buy')
if ((interval1m - entryPrice)/entryPrice) * 30 < -.25
strategy.close('Buy', comment='Stop Loss on Buy')
if strategy.opentrades != 0 and strategy.opentrades.entry_id(0) == 'Sell'
entryPrice := strategy.opentrades.entry_price(0)
if ((entryPrice - interval1m)/entryPrice) * 30 > .25
strategy.close('Sell', comment='Take Profit on Sell')
if ((entryPrice - interval1m)/entryPrice) * 30 < -.25
strategy.close('Sell', comment='Stop Loss on Sell')
//Bitcoin Analysis
if (btcinterval5m < bitcoinUpper and btcinterval5m[1] > bitcoinUpper[1] and btcinterval5m[2] < bitcoinUpper[2] and btcinterval5m[3] < bitcoinUpper[3])
bitcoinSignal := 'Bear'
if (btcinterval5m > bitcoinUpper and btcinterval5m[1] < bitcoinUpper[1] and btcinterval5m[2] > bitcoinUpper[2] and btcinterval5m[3] > bitcoinUpper[3])
bitcoinSignal := 'Bull'
//Short protocols
if (interval3m < basis3m and interval3m[1] > basis3m[1] and interval3m[2] < basis3m[2] and interval3m[3] < basis3m[3]) or
(interval5m < basis5m and interval5m[1] > basis5m[1] and interval5m[2] < basis5m[2] and interval5m[3] < basis5m[3])
and strategy.opentrades.entry_id(0) != 'Sell'
and src < basis1m and src < basis15m
if strategy.opentrades.entry_id(0) == 'Buy'
strategy.close('Buy', 'Basis Band Bearish Reversal')
//strategy.order('Sell', strategy.short, comment = 'Basis band fractal rejection', stop = (upper1m + basis1m)/2)
if (interval3m < upper3m and interval3m[1] > upper3m[1] and interval3m[2] < upper3m[2] and interval3m[3] < upper3m[3]) or
(interval5m < upper5m and interval5m[1] > upper5m[1] and interval5m[2] < upper5m[2] and interval5m[3] < upper5m[3])
and strategy.opentrades.entry_id(0) != 'Sell' and bitcoinSignal == 'Bear' and src < upper1m and src < basis15m
if strategy.opentrades.entry_id(0) == 'Buy'
strategy.close('Buy', 'Bearish Trend Reversal')
strategy.order('Sell', strategy.short, comment = 'Upper band fractal rejection', stop = (upper1m + basis1m)/2)
if (interval3m > basis3m and interval3m[1] < basis3m[1] and interval3m[2] > basis3m[2] and interval3m[3] > basis3m[3]) or
(interval5m > basis5m and interval5m[1] < basis5m[1] and interval5m[2] > basis5m[2] and interval5m[3] > basis5m[3]) and strategy.opentrades.entry_id(0) != 'Buy'
and src > basis1m and src > basis15m
if strategy.opentrades.entry_id(0) == 'Sell'
strategy.close('Sell', 'Basis Band Bullish Reversal')
//strategy.order('Buy', strategy.long, comment = 'Basis band fractal rejection', stop = (lower1m + basis1m)/2)
if (interval3m > lower3m and interval3m[1] < lower3m[1] and interval3m[2] > lower3m[2] and interval3m[3] > lower3m[3]) or
(interval5m > lower5m and interval5m[1] < lower5m[1] and interval5m[2] > lower5m[2] and interval5m[3] > basis5m[3]) and strategy.opentrades.entry_id(0) != 'Buy'
and src > lower1m and src > basis15m and bitcoinSignal == 'Bull'
if strategy.opentrades.entry_id(0) == 'Sell'
strategy.close('Sell', 'Bullish Trend Reversal')
strategy.order('Buy', strategy.long, comment = 'Lower band fractal rejection', stop = (lower1m + basis1m)/2)