
A estratégia combina as bandas de Brin e as médias móveis, projetando um sistema de negociação que segue a tendência. Faça mais quando o preço quebra a banda de Brin e se move acima da SMA200, feche parcialmente quando o preço cai abaixo da banda de Brin e feche totalmente quando o preço cai abaixo da SMA200. A estratégia segue a tendência e pára o prejuízo em tempo hábil quando a tendência muda.
A estratégia julga a existência de uma tendência com a premissa de que a faixa de Brin precisa estar completamente acima do SMA200 e só opta por uma entrada em sentido contrário em uma clara tendência ascendente. Quando uma tendência descendente se aproxima, o risco é controlado por meio de um stop loss de quota e um stop loss de posição total em pontos críticos.
Estes riscos podem ser reduzidos por meio de testes cuidadosos dos parâmetros da faixa de Bryn, otimização de estratégias de parada parcial, ajuste dos parâmetros do ciclo SMA e introdução de métodos mais científicos de gerenciamento de risco.
A estratégia integra o canal de correia de Brin e o indicador de linha média SMA para projetar uma estratégia de acompanhamento de tendências mais completa. É mais confiável e possui uma maior capacidade de acompanhamento de tendências para determinar a existência de tendências.
/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee
//@version=4
strategy(title="BB9_MA200_Strategy", overlay=true, pyramiding=1, default_qty_type=strategy.cash, initial_capital=10000, currency=currency.USD) //default_qty_value=10, default_qty_type=strategy.fixed,
var stopLossVal=0.00
//variables BEGIN
smaLength=input(200,title="MA Length")
bbLength=input(21,title="BB Length")
bbsrc = input(close, title="BB Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
stopLoss = input(title="Stop Loss%", defval=5, minval=1)
riskCapital = input(title="Risk % of capital == Based on this trade size is claculated numberOfShares = (AvailableCapital*risk/100) / stopLossPoints", defval=10, minval=1)
sma200=ema(close,smaLength)
plot(sma200, title="SMA 200", color=color.orange)
//bollinger calculation
basis = sma(bbsrc, bbLength)
dev = mult * stdev(bbsrc, bbLength)
upperBand = basis + dev
lowerBand = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
//plot bb
plot(basis, "Basis", color=color.teal, style=plot.style_circles , offset = offset)
p1 = plot(upperBand, "Upper", color=color.teal, offset = offset)
p2 = plot(lowerBand, "Lower", color=color.teal, offset = offset)
fill(p1, p2, title = "Background", color=color.teal, transp=95)
strategy.initial_capital = 50000
//Entry---
strategy.entry(id="LE", comment="LE capital="+tostring(strategy.initial_capital + strategy.netprofit ,"######.##"), qty=( (strategy.initial_capital + strategy.netprofit ) * riskCapital / 100)/(close*stopLoss/100) , long=true, when=strategy.position_size<1 and upperBand>sma200 and lowerBand > sma200 and crossover(close, basis) ) // // aroonOsc<0 //(strategy.initial_capital * 0.10)/close
barcolor(color=strategy.position_size>=1? color.blue: na)
//partial Exit
tpVal=strategy.position_size>1 ? strategy.position_avg_price * (1+(stopLoss/100) ) : 0.00
strategy.close(id="LE", comment="Partial points="+tostring(close - strategy.position_avg_price, "####.##"), qty_percent=30 , when=abs(strategy.position_size)>=1 and close>tpVal and crossunder(lowerBand, sma200) ) //close<ema55 and rsi5Val<20 //ema34<ema55
//close All on stop loss
//stoploss
stopLossVal:= strategy.position_size>1 ? strategy.position_avg_price * (1-(stopLoss/100) ) : 0.00
strategy.close_all( comment="SL Exit points="+tostring(close - strategy.position_avg_price, "####.##"), when=abs(strategy.position_size)>=1 and close < stopLossVal ) //close<ema55 and rsi5Val<20 //ema34<ema55 //close<ema89//
strategy.close_all( comment="BB9 X SMA200 points="+tostring(close - strategy.position_avg_price, "####.##"), when=abs(strategy.position_size)>=1 and crossunder(basis, sma200) ) //close<ema55 and rsi5Val<20 //ema34<ema55 //close<ema89