
A estratégia determina se o mercado está em uma tendência ascendente ou descendente através da medição das médias móveis e da taxa de variação dos preços, em combinação com a linha K de um determinado período, e faz uma oferta ou uma oferta baixa de acordo.
A estratégia primeiro calcula a média móvel simples de comprimento l a e a taxa de variação de preço r de comprimento l. Em seguida, calcula o diferencial k entre o preço atual da linha K e a média móvel.
Quando sum>0 indica que a estratégia está em uma tendência ascendente, a estratégia fará mais. Quando sum indica que a estratégia está em uma tendência descendente, a estratégia fará zero.
Depois de fazer mais curto prazo, você mantém a posição até que a tendência se inverta (a soma passa de positiva para negativa ou de negativa para positiva), quando você se equilibra.
A maior vantagem da estratégia é a capacidade de capturar tendências e ser adequado para o comércio de tendências. Concretamente, há as seguintes vantagens:
Usando as médias móveis para determinar a direção da tendência geral, pode-se filtrar eficazmente o ruído do mercado e bloquear as principais tendências.
Aplicar o índice de variação de preços para medir a intensidade do impulso, evitando a perda de um forte.
Considerando várias linhas K em um determinado período, pode-se determinar com mais precisão as tendências, evitando ser conduzido por einzelne Ausreißer in die Irre.
O que significa que você pode manter a posição e aproveitar ao máximo os lucros da tendência, desde que a tendência não mude.
A estratégia tem os seguintes riscos:
Não é possível determinar com precisão quando a tendência terminará, podendo parar precocemente ou perder parte do lucro.
Não é possível controlar eficazmente o tamanho da perda individual, podendo ocorrer perdas maiores em situações extremas.
Parâmetros estratégicos inadequados podem levar a negociações excessivamente frequentes ou a perda de algumas oportunidades de negociação.
A posse a longo prazo pode ter riscos de juros e garantias durante a noite.
Para controlar o risco, é possível definir pontos de stop loss, negociar apenas commodities de alta liquidez, parâmetros de otimização e uso racional de alavancagem.
A estratégia pode ser melhorada em vários aspectos:
Teste as médias móveis de diferentes comprimentos e a taxa de variação de preços para encontrar a melhor combinação de parâmetros.
Tente outros indicadores, como o MACD, para avaliar as tendências e melhorar ainda mais a precisão.
Aumentar os mecanismos de gerenciamento de posições, como o bloqueio parcial após o lucro, para controlar os perdas individuais.
A combinação de um indicador de volatilidade com um stop loss dinâmico reduz o risco de situações extremas.
Optimizar a lógica de abertura e paz de posição, filtrar brechas falsas e aumentar a eficiência de negociação.
A ideia geral da estratégia é clara e fácil de implementar, e os investidores que buscam a estabilidade dos ganhos são mais propensos a manter posições de longo prazo, seguindo a tendência e controlando o retorno. Se os mecanismos de parada de perdas e gerenciamento de posições forem otimizados ainda mais, é esperado um melhor retorno de estabilidade a longo prazo.
/*backtest
start: 2023-12-03 00:00:00
end: 2023-12-10 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Indicator Integrator Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=662, overlay=false)
l = input(defval=170,title="Length for indicator")
s = input(title="Length of summation",defval=18)
a= sma(close,l)
r=roc(close,l)
k=close-a
sum = 0
for i = 0 to s
sum := sum + k[i]
//plot(a,color=yellow,linewidth=2,transp=0)
//bc = iff( sum > 0, white, teal)
//plot(sum,color=bc, transp=20, linewidth=3,style=columns)
//plot(sma(sum,3),color=white)
//hline(0)
inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na
////buyEntry = crossover(source, lower)
////sellEntry = crossunder(source, upper)
if sum>0
strategy.entry("BBandLE", strategy.long, oca_name="BollingerBands", comment="BBandLE")
else
strategy.cancel(id="BBandLE")
if sum<0
strategy.entry("BBandSE", strategy.short, oca_name="BollingerBands", comment="BBandSE")
else
strategy.cancel(id="BBandSE")
strategy.initial_capital = 50000
plot(strategy.equity-strategy.initial_capital-strategy.closedtrades*.25/2, title="equity", color=red, linewidth=2)
hline(0)
//longCondition = sum>0
//exitlong = sum<0
//shortCondition = sum<0
//exitshort = sum>0
//strategy.entry(id = "Long", long=true, when = longCondition)
//strategy.close(id = "Long", when = exitlong)
//strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)
//strategy.entry(id = "Short", long=false, when = shortCondition)
//strategy.close(id = "Short", when = exitshort)
//strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)