
Esta estratégia é uma estratégia de acompanhamento de tendências para negociação com base no indicador Smeared Variable Channel Index (Smeared VCI) davitelot. A estratégia combina o julgamento de tendências das médias móveis com o julgamento de sobrevenda e sobrevenda do índice de canais variáveis para capturar a direção da principal tendência dos preços.
A estratégia usa o indicador Smeared VCI davitelot para determinar a direção da tendência. O indicador Smeared VCI é processado de forma suave com base no índice de canal variável (VCI). É composto por três parâmetros: EMA rápido, EMA lento e ciclo de deslizamento.
A estratégia tem duas condições:
Smeared VCI superior atravessa a linha de gatilho para fazer o sinal de múltiplos; inferior atravessa para fazer o sinal de vazio
Negociação somente dentro da janela de tempo de retrospecção
Quando as duas condições são simultaneamente satisfeitas, a operação de fazer mais ou fazer menos é realizada. A operação de equilibrar é realizada quando a condição de parada de perda ou um sinal de reversão aparece.
A estratégia tem as seguintes vantagens:
Utilizando indicadores de tendência, pode-se acompanhar a tendência de forma eficaz
Adição de processamento suave para reduzir falhas de sinal
A retrospectiva de janela de tempo permite testes para situações em um determinado período de tempo
Configurar um ponto de parada para controlar o risco
O uso de parâmetros indicadores para julgamento de polinomios, regras simples e claras
A estratégia também apresenta alguns riscos:
A análise de tendências pode ser errada, resultando em perdas
Parâmetros de indicadores mal definidos podem levar a ganhos baixos
A configuração de um ponto de parada muito pequeno pode causar um pequeno ponto de parada
A janela de tempo de detecção não razoável pode levar a resultados de teste desviados
Muitas mudanças de espaço frequentes podem causar pressão sobre as taxas de transação.
A estratégia pode ser otimizada em:
Teste diferentes combinações de parâmetros para encontrar o melhor
Utilização de outros indicadores para julgamento auxiliar e maior precisão
Otimização de algoritmos de stop-loss para a realização de stop-loss de rastreamento dinâmico
Optimizar as condições de abertura de posições para evitar transações frequentes
Testar uma janela mais longa para verificar a estabilidade da estratégia
Melhorar a precisão da decisão, combinada com outros fatores, como volume de transações
Esta estratégia é uma estratégia de acompanhamento de tendências mais simples. Ela usa o indicador VCI da Smeared para determinar a direção da tendência e abrir posições quando o indicador envia um sinal de negociação.
/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Smeared VCI Backtest", overlay=false, shorttitle="SVCI Backtest", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 10000, slippage = 5)
// Smeared Variability Channel Index
// a variation of the VCI indicator of the same author.
// The orange line over the lime line is bullish;
// The lime line over the orange one is bearish.
//
// vitelot/yanez/Vts
// Feb 2019
//
src = close
ep1 = input(5, minval=1, title="Fast EMA period")
ep2 = input(13, minval=2, title="Slow EMA period")
sm = input(34, minval=1, title="Smearing period")
tp = input(13, minval=1, title="Trigger line period")
fixedSL = input(title="SL Activation", defval=300)
trailSL = input(title="SL Trigger", defval=1)
fixedTP = input(title="TP Activation", defval=150)
trailTP = input(title="TP Trigger", defval=1)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2019, title = "From Year", minval = 2017)
ToMonth = input(defval = 6, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 19, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 2030, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
startTimeOk() => time >= start and time <= finish ? true : false // create function "within window of time" if statement true
atrP = 96
e1 = ema(src,ep1)
e2 = ema(src,ep2)
vci = (e1-e2)/atr(atrP)
svci = sma(vci,sm)
t = sma(svci,tp)
plot(svci, color=lime, linewidth=3, transp=0, title="Smeared VCI")
plot(t, color=orange, linewidth=3, transp=0, title="Trigger line")
hline(0, title="Reference line")
long = crossover(svci,t)
short = crossover(t,svci)
// === STRATEGY - LONG POSITION EXECUTION ===
strategy.entry("Long", strategy.long, when= long and startTimeOk())
strategy.exit("Exit", qty_percent = 100, loss=fixedSL, trail_offset=trailTP, trail_points=fixedTP)
strategy.exit("Exit", when= short)
// === STRATEGY - SHORT POSITION EXECUTION ===
strategy.entry("Short", strategy.short, when= short and startTimeOk())
strategy.exit("Exit", qty_percent = 100, loss=fixedSL, trail_offset=trailTP, trail_points=fixedTP)
strategy.exit("Exit", when= long)