Esta estratégia rastreia tendências duplas de ações, calculadora dos pontos pivô clássicos e usando o indicador RSI para determinar a direção da tendência atual.
A estratégia segue essencialmente as seguintes etapas para alcançar um duplo acompanhamento das tendências:
Calcular Pontos de Pivot clássicos, incluindo Pivot, S1, R1, S2, R2 etc.
Use o indicador RSI para determinar a direção da tendência do preço. RSI acima de 80 é zona de sobrecompra e abaixo de 20 é zona de sobrevenda.
Se o preço de fechamento for maior do que o R2 do dia anterior, é uma tendência forte.
Tomar as decisões de negociação de hoje com base na direcção da tendência diária, combinando Pivot Points e indicador RSI.
Se a tendência diária for forte (cerca de > R2), procure pontos de compra de retração em Pivot ou compra abaixo de S1.
Se a tendência diária for fraca (cerca de < S2), procure pontos de venda de retração acima do Pivot ou venda acima de R1.
Defina pontos de stop loss. Para uma tendência forte, o stop loss é o S1 do dia anterior.
A estratégia julga a tendência de médio e longo prazo com Pivot Points e usa RSI etc para determinar tendência de curto prazo e pontos de entrada.
As principais vantagens desta estratégia são:
Capaz de acompanhar a tendência a médio e longo prazo e a tendência a curto prazo, adaptando-se de forma flexível às alterações do mercado.
Os Pivot Points têm alguma capacidade de julgar tendências e podem determinar efetivamente a tendência a médio e longo prazo.
O RSI etc. pode avaliar os níveis de sobrecompra/supervenda a curto prazo, ajudando a determinar pontos de entrada específicos.
As regras da estratégia são claras e simples, fáceis de entender.
O controlo do risco está em vigor com pontos de stop loss claros.
Os principais riscos desta estratégia são:
Os Pivot Points podem falhar na previsão da tendência a médio e longo prazo, o que pode ser melhorado ajustando parâmetros ou combinando com outros indicadores.
Os parâmetros podem ser ajustados ou utilizados em conjunto com outros indicadores.
Os pontos de stop loss podem ser muito arbitrários, incapazes de evitar completamente que a stop loss seja atingida.
A estratégia pode ser maior, necessitar de preparação psicológica e apoio de capital suficiente.
O risco de excesso de negociação existe e as condições de abertura podem ser ajustadas para evitar excesso de negociação.
A estratégia pode ser otimizada nos seguintes domínios:
Tente diferentes combinações de parâmetros, como ajustar os parâmetros do RSI, otimizar cálculos de Pivot Point, etc. para encontrar parâmetros ideais.
Adicionar ou combinar outros indicadores como KDJ, MACD etc para tornar os sinais mais precisos e confiáveis.
Otimizar as estratégias de stop loss, por exemplo, trailing stop loss, exit stop loss, etc., para reduzir o risco de que o stop loss seja atingido.
Otimizar o dimensionamento das posições para limitar o impacto das perdas de uma única posição.
Otimizar as condições de entrada para evitar o excesso de negociação.
Teste a eficácia em diferentes produtos e ajuste os parâmetros.
Adicionar estratégias de lucro automático para bloquear os lucros.
Esta estratégia julga a tendência de médio e longo prazo com Pivot Points e usa o RSI etc para ajudar a determinar a tendência de curto prazo e os pontos de entrada, alcançando o rastreamento de tendência dupla dos preços. A lógica geral é clara e razoável, funcionando bem para a negociação de médio prazo.
/*backtest start: 2023-10-01 00:00:00 end: 2023-10-31 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title="swing trade", shorttitle="vinay_swing", overlay=true) pf = input(false,title="Show Filtered Pivots") sd = input(true, title="Show Daily Pivots?") //moving average len = input(50, minval=1, title="Length") src = input(close, title="Source") out = ema(src, len) //RSI INPUT length = input( 7 ) overSold = input( 20 ) overBought = input( 80 ) price = close vrsi = rsi(price, length) // Classic Pivot pivot = (high + low + close ) / 3.0 // Filter Cr bull= pivot > (pivot + pivot[1]) / 2 + .0025 bear= pivot < (pivot + pivot[1]) / 2 - .0025 // Classic Pivots r1 = pf and bear ? pivot + (pivot - low) : pf and bull ? pivot + (high - low) : pivot + (pivot - low) s1 = pf and bull ? pivot - (high - pivot) : pf and bear ? pivot - (high - low) : pivot - (high - pivot) r2 = pf ? na : pivot + (high - low) s2 = pf ? na : pivot - (high - low) BC = (high + low) / 2.0 TC = (pivot - BC) + pivot //Pivot Average Calculation smaP = sma(pivot, 3) //Daily Pivots dtime_pivot = request.security(syminfo.tickerid, 'D', pivot[1]) dtime_pivotAvg = request.security(syminfo.tickerid, 'D', smaP[1]) dtime_r1 = request.security(syminfo.tickerid, 'D', r1[1]) dtime_s1 = request.security(syminfo.tickerid, 'D', s1[1]) dtime_r2 = request.security(syminfo.tickerid, 'D', r2[1]) dtime_s2 = request.security(syminfo.tickerid, 'D', s2[1]) dtime_BC = request.security(syminfo.tickerid, 'D', BC[1]) dtime_TC = request.security(syminfo.tickerid, 'D', TC[1]) offs_daily = 0 plot(sd and dtime_pivot ? dtime_pivot : na, title="Daily Pivot",style=circles, color=fuchsia,linewidth=1) plot(sd and dtime_r1 ? dtime_r1 : na, title="Daily R1",style=circles, color=#DC143C,linewidth=1) plot(sd and dtime_s1 ? dtime_s1 : na, title="Daily S1",style=circles, color=lime,linewidth=1) plot(sd and dtime_r2 ? dtime_r2 : na, title="Daily R2",style=circles, color=maroon,linewidth=1) plot(sd and dtime_s2 ? dtime_s2 : na, title="Daily S2",style=circles, color=#228B22,linewidth=1) plot(sd and dtime_BC ? dtime_BC : na, title="Daily BC",style=circles, color=black,linewidth=1) plot(sd and dtime_TC ? dtime_TC : na, title="Daily TC",style=circles, color=black,linewidth=1) bull1= (close > dtime_r2) bull2= (low < dtime_pivot) or (low < dtime_s1) bull3= dtime_pivot > dtime_pivot[1] bullishenglufing=bull2 and bull3 bullishenglufing1=bull1 and (close > out) and (crossover(vrsi, overBought)) longCondition = bull1[1] and ((low < dtime_TC) or (low < dtime_BC) or (low < dtime_s1)) bear1= (close < dtime_s2) bear2= (high > dtime_pivot) or (high < dtime_r1) bear3= dtime_pivot < dtime_pivot[1] bearishenglufing=bear2 and bear3 bearishenglufing1=bear1 and (close < out) and (crossunder(vrsi, overSold)) shortCondition = bear1[1] and ((high > dtime_BC) or (high > dtime_TC) or (high > dtime_r1)) plotshape(bullishenglufing, style = shape.triangleup, location = location.belowbar, color = green, size = size.tiny) plotshape(bearishenglufing, style = shape.triangledown, location = location.abovebar, color = red, size = size.tiny) if (longCondition) strategy.entry("My Long Entry Id", strategy.long) if (shortCondition) strategy.entry("My Short Entry Id", strategy.short)