A estratégia de negociação de spread de volatilidade de dois prazos avalia o estado de sobrecompra/supervenda do mercado através do cálculo do spread entre os indicadores RSI de dois ciclos de tempo diferentes para implementar a negociação de tendências de baixo risco.
Os principais indicadores desta estratégia são shortTermXtrender e longTermXtrender. shortTermXtrender calcula o spread do RSI no período de curto prazo e longTermXtrender calcula o spread do RSI no período de longo prazo.
O intervalo de tempo de curto prazo adota a diferença de preço entre a EMA de 7 dias e a LMA de 4 dias para calcular o RSI e, em seguida, a diferença de preço com 50 constitui o shortTermXtrender. O intervalo de tempo de longo prazo adota a diferença de preço entre o RSI da EMA de 4 dias e 50 para constituir o longTermXtrender.
Quando o shortTermXtrender cruza acima de 0, vá para longo; quando o longTermXtrender cruza acima de 0, vá também para longo.
Desta forma, julgando em dois prazos, mais falsas fugas podem ser filtradas.
A maior vantagem desta estratégia é que o julgamento da tendência é preciso. A combinação de quadros de tempo duplos pode efetivamente filtrar o ruído e bloquear a direção da tendência alvo. Isso fornece uma garantia para a negociação de rastreamento de tendência de baixo risco.
Além disso, a estratégia fornece espaço para otimização de parâmetros. Os usuários podem ajustar parâmetros como o ciclo SMA e os parâmetros RSI de acordo com diferentes variedades e ciclos de tempo para otimizar os resultados da estratégia.
O principal risco desta estratégia é o julgamento errado de longo e curto. Em mercados oscilantes, é fácil gerar sinais errados. Se a posição ainda estiver aberta neste momento, haverá o risco de perda.
Além disso, configurações incorretas de parâmetros também podem levar a resultados ruins. Se o parâmetro do ciclo de tempo for definido muito curto, a probabilidade de julgamento errado aumentará; se o parâmetro do ciclo de tempo for definido muito longo, a oportunidade para a tendência será perdida. Isso requer que os usuários testem e otimizem parâmetros para diferentes mercados.
A estratégia pode ser otimizada nos seguintes aspectos:
Aumentar o mecanismo de captação de lucro. Atualmente, não há configuração de captação de lucro na estratégia. O lucro pode ser tomado no tempo após atingir o lucro alvo.
Aumentar a gestão das posições, podendo as posições ser ajustadas dinamicamente com base no tamanho do capital, na volatilidade e noutros indicadores.
Testar configurações de parâmetros para diferentes variedades. Os usuários podem testar a combinação ideal de parâmetros testando diferentes prazos, como diários e 60 minutos.
Aumentar o julgamento assistido pelo aprendizado de máquina. Os modelos podem ser treinados para determinar as condições do mercado e ajustar dinamicamente os parâmetros da estratégia para melhorar a taxa de vitória.
A estratégia de negociação de spread de volatilidade de quadro de tempo duplo alcança uma captura de tendência eficiente através da construção de indicadores de quadro de tempo duplo. A estratégia tem grande espaço de otimização. Os usuários podem otimizar através do ajuste de parâmetros, gerenciamento de lucro, gerenciamento de posição, etc. para obter melhores resultados de estratégia. Esta estratégia é adequada para usuários com alguma experiência de negociação.
/*backtest start: 2024-01-18 00:00:00 end: 2024-02-17 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //study("MavXtrender") strategy("MavXtrender") ShortTermSMA = input(7) ShortTermLMA = input(4) ShortTermRSI = input(2) LongTermMA = input(4) LongTermRSI = input(2) UseFactors = input(true) TradeShortTerm = input(true) TradeLongTerm = input(true) count = TradeShortTerm == true ? 1 : 0 count := TradeLongTerm == true ? count + 1 : count // set position size Amount = strategy.equity / (close * count) ShortTermLMA := UseFactors == true ? round(ShortTermSMA * ShortTermLMA) : ShortTermLMA ShortTermRSI := UseFactors == true ? round(ShortTermSMA * ShortTermRSI) : ShortTermRSI LongTermMA := UseFactors == true ? round(ShortTermSMA * LongTermMA) : LongTermMA LongTermRSI := UseFactors == true ? round(ShortTermSMA * LongTermRSI) : LongTermRSI shortTermXtrender = rsi(ema(close, ShortTermSMA) - ema(close, ShortTermLMA), ShortTermRSI ) - 50 longTermXtrender = rsi( ema(close, LongTermMA), LongTermRSI ) - 50 // === INPUT BACKTEST RANGE === FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromYear = input(defval = 2018, title = "From Year", minval = 2012) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToYear = input(defval = 2020, title = "To Year", minval = 2012) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => true strategy.entry("ShortTerm", strategy.long, qty = Amount, when = window() and crossover(shortTermXtrender,0) and TradeShortTerm) strategy.entry("LongTerm", strategy.long, qty = Amount, when = window() and crossover(longTermXtrender,0) and TradeLongTerm) strategy.close("ShortTerm", when = crossunder(shortTermXtrender,0) or time > finish) strategy.close("LongTerm", when = crossunder(longTermXtrender,0) or time > finish) shortXtrenderCol = shortTermXtrender > 0 ? shortTermXtrender > shortTermXtrender[1] ? color.lime : #228B22 : shortTermXtrender > shortTermXtrender[1] ? color.red : #8B0000 plot(shortTermXtrender, color=shortXtrenderCol, style=plot.style_columns, linewidth=1, title="B-Xtrender Osc. - Histogram", transp = 50) longXtrenderCol = longTermXtrender> 0 ? longTermXtrender > longTermXtrender[1] ? color.lime : #228B22 : longTermXtrender > longTermXtrender[1] ? color.red : #8B0000 plot(longTermXtrender , color=longXtrenderCol, style=plot.style_histogram, linewidth=2, title="B-Xtrender Trend - Histogram", transp = 80) plot(longTermXtrender , color=color.white, style=plot.style_line, linewidth=1, title="B-Xtrender Trend - Line", transp = 80)