A ideia central desta estratégia é identificar tendências usando o oscilador de banda de Bollinger e entrar em posições quando as tendências mudam.
A estratégia usa principalmente o Oscilador de Banda de Bollinger para determinar a direção da tendência.
BBO = (Close - N-day Moving Average) / (2 * N-day Standard Deviation) * 100
Onde o Close é o preço de fechamento, a média móvel de N dias é a média móvel simples de N dias do close e o desvio padrão de N dias é o desvio padrão de N dias do close.
A estratégia primeiro calcula o BBO de 65 dias, depois a média móvel de 30 dias do BBO. Quando o BBO cruza acima de sua MA, ele sinaliza uma tendência de alta, vá longo. Quando o BBO cruza abaixo de sua MA, ele sinaliza uma tendência de queda, vá curto.
Após a entrada de posições, a estratégia usa stop loss móvel, take profit fixo e stop loss traseiro para controlar riscos e bloquear lucros.
O BBO é sensível às mudanças de tendência.
O movimento de stop loss controla a perda individual quando a tendência se inverte.
Os lucros fixos se bloqueiam nos lucros quando a tendência é correcta.
Trailing stop loss maximiza o lucro para um único comércio.
A estratégia é simples e intuitiva.
O BBO pode dar sinais falsos.
A saída de stop loss/take profit imprópria pode ser prematura demais.
Os lucros fixos podem sair muito cedo, perdendo mais lucros.
Os parâmetros precisam de otimização para evitar o sobreajuste.
Utilização potencialmente elevada, capital suficiente necessário.
Optimize os parâmetros BBO e MA.
Teste diferentes métodos de stop loss como ATR, percentagem.
Otimizar o lucro fixo e o stop loss.
Adicione filtros para evitar sinais falsos.
Otimizar o dimensionamento das posições para diferentes mercados.
Teste a eficácia da estratégia em todos os instrumentos e prazos.
A estratégia identifica mudanças de tendência usando BBO e entra em posições de acordo. Controla riscos e bloqueia lucros com vários tipos de saídas. A estratégia é simples e intuitiva, mas requer otimização de parâmetros. Pode ter um bom desempenho em mercados de tendência se otimizado corretamente, mas sinais falsos e saídas inadequadas precisam ser observados.
/*backtest start: 2022-10-03 00:00:00 end: 2023-10-09 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title="Strategy CCT Bollinger Band Oscillator", shorttitle="Hornkild", calc_on_order_fills=true, default_qty_type=strategy.percent_of_equity, default_qty_value=50, overlay=false) length=input(65) lengthMA=input(30) src=close cctbbo=100 * ( src + 2*stdev( src, length) - sma( src, length ) ) / ( 4 * stdev( src, length ) ) //ul=hline(100, color=gray, editable=true) //ll=hline(0, color=gray) //hline(50, color=gray) //fill(ul,ll, color=blue) //plot(cctbbo, color=blue, linewidth=2) //plot(ema(cctbbo, lengthMA), color=red) TP = input(0) * 10 SL = input(0) * 10 TS = input(1) * 10 TO = input(10) * 10 CQ = 100 TPP = (TP > 0) ? TP : na SLP = (SL > 0) ? SL : na TSP = (TS > 0) ? TS : na TOP = (TO > 0) ? TO : na longCondition = crossover(cctbbo, ema(cctbbo, lengthMA)) if (longCondition) strategy.entry("Long", strategy.long) shortCondition = crossunder(cctbbo, ema(cctbbo, lengthMA)) if (shortCondition) strategy.entry("Short", strategy.short) strategy.exit("Close Short", "Short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP, trail_offset=TOP) strategy.exit("Close Long", "Long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP, trail_offset=TOP)