
Esta estratégia usa o indicador de bandas de borbulhas para avaliar tendências e, em combinação com sinais de largura de banda, busca oportunidades de negociação para manter um portfólio de crescimento estável. De acordo com os dados do ano passado, a estratégia teve uma taxa de lucro de 78.95%, com uma retração máxima de apenas 4,02%. Esta é uma das minhas estratégias de automação que ajudam a manter um portfólio de crescimento estável.
Se você estiver satisfeito com o resultado atual, você pode transformá-lo em aprendizado e adicionar alertas, para automatizar a estratégia. Isso requer o aumento do mecanismo de alerta na codificação. Se você estiver interessado, posso criar aprendizado relevante com base na estratégia.
A estratégia usa a faixa de Bolbrin e a banda larga para determinar o tempo de entrada e saída.
As faixas de bolborin incluem a linha superior, a linha média e a linha inferior. A linha média é a média móvel simples de n dias, com o parâmetro n assumindo 16 . O limite superior é a linha média + k.*O desvio padrão, o limite inferior é a linha média - k*O desvio padrão, com o parâmetro k, é assumido por defeito como 3. Quando o preço está perto do limite superior, o preço está muito alto ou muito alto. Quando o preço está perto do limite inferior, o preço está muito baixo ou muito baixo.
O indicador de largura de banda mostra a oscilação do preço em relação à linha média. Ele é dividido por: linha superior - linha inferior) / linha média*1000 calculado. Quando a largura de banda é inferior a 20, a situação está calma ou estabilizada; quando a largura de banda é superior a 50, a volatilidade aumenta.
A estratégia é fazer mais quando a banda é entre 20 e 50, procurando oportunidades para quebrar o limite inferior. Depois de fazer mais, a linha de parada é definida como 108% do preço de abertura ou para sair do campo de perda quando o limite superior é quebrado.
A estratégia tem as seguintes vantagens:
Usando a correia de Borobudur para determinar a direção da tendência, reduz o risco de falsas rupturas
O sinal de banda larga pode identificar com precisão oscilações de posição e evitar perdas causadas por grandes flutuações
Os dados de retrospectiva mostram uma taxa de lucro de quase 80% em um ano, com uma alta taxa de risco-benefício.
Retirada máxima de menos de 5%, controle de risco eficaz, manutenção de crescimento estável do portfólio
A lógica da estratégia é clara, simples e fácil de entender e pode ser aplicada em vários tipos de ativos digitais
A estratégia também apresenta os seguintes riscos:
Parâmetros mal definidos na Bolbrin Belt podem fazer com que você perca uma boa oportunidade de negociação
A frequência de negociação pode ser muito baixa e a capacidade de lucrar limitada quando o mercado continua em um período de alta ou baixa.
Insuficiência de dados de detecção, que pode não ser capaz de replicar os indicadores de detecção em aplicações reais
Em condições de mercado extremas, o ponto de parada pode ser ultrapassado, causando grandes perdas
Os custos de transação excessivos também reduzem os lucros reais
Resolução:
Parâmetros de otimização, ajuste do ciclo de Brincadeira para diferentes mercados, etc.
Introdução adicional de outros indicadores de tendências de julgamento para responder a situações anormais
Recolha de dados suficientes para realizar várias análises de mercado e verificar a estabilidade da estratégia
Ajustar os pontos de parada para evitar perdas em situações extremas
Opte por plataformas de negociação com taxas baixas e reduzir os custos de transação
A estratégia pode ser melhorada em:
Aumentar a confirmação de volume para evitar breakouts falsos
Combine com indicadores de tendência para identificar a direção da tendência
Use machine learning to tune parameters and auto-adapt to market
Add correlation filter to avoid trading uncorrelated assets Adicionar filtro de correlação para evitar a negociação de ativos não correlacionados
Optimize take profit/stop loss for more gains during uptrends Optimize take profit/stop loss for more gains during uptrends
Introduce more condition filters to increase win rate Introduce more condition filters to increase win rate
Test multi-timeframe combinations to profit from multiple cycles Test multi-timeframe combinations to profit from multiple cycles
Construir portfólio indexado para expandir a exposição
Use machine learning to auto generate & validate new strategies Use machine learning to auto generate & validate new strategies
A estratégia de ruptura de choque do Bolingbroke tem um bom retorno geral e pode obter ganhos mais estáveis em situações de choque. A ideia central da estratégia é simples, clara e fácil de usar. Mas a otimização de parâmetros, controle de risco e gerenciamento de portfólio precisam de ser aprimoradas ainda mais para obter lucros estáveis em mercados complexos e variáveis.
/*backtest
start: 2023-10-30 00:00:00
end: 2023-11-06 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Bollinger Bands BAT/USDT 30min", overlay=true )
/// Indicators
///Bollinger Bands
source = close
length = input(16, minval=1)
mult = input(3, step=0.1, minval=0.001, maxval=50)
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
plot(basis, color=color.red)
p1 = plot(upper, color=color.blue)
p2 = plot(lower, color=color.blue)
fill(p1, p2)
//Bollinger bands width
bbw = (upper-lower)/basis*1000
//plot(bbw, color=color.blue)
upper_bbw_input = input(title="BBW Upper Threshold", step=1, minval=0, defval=50)
lower_bbw_input = input(title="BBW Lower Threshold", step=1, minval=0, defval=20)
// Backtesting Period
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriod() => true
// Take Profit
tp_inp = input(8, title='Take Profit %', step=0.1)/100
take_level = strategy.position_avg_price * (1 + tp_inp)
//Entry Strategy
entry_long = crossover(source, lower) and (bbw < upper_bbw_input) and (bbw > lower_bbw_input)
exit_long = cross(high,upper) or close < lower
if testPeriod()
strategy.entry(id="LongBB", long=true, comment="LongBB", when=entry_long)
strategy.exit("Take Profit Long","LongBB",limit=take_level)
strategy.close(id="LongBB", when=exit_long )