Estratégia de negociação de spread de volatilidade de eixo de tempo duplo


Data de criação: 2024-02-18 15:31:32 última modificação: 2024-02-18 15:31:32
cópia: 0 Cliques: 608
1
focar em
1617
Seguidores

Estratégia de negociação de spread de volatilidade de eixo de tempo duplo

Visão geral

A estratégia de negociação de diferença de preço de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação de taxa de flutuação.

Princípio da estratégia

O indicador central da estratégia é o shortTermXtrender e o longTermXtrender.

O RSI é calculado com a diferença de preço de 7 dias de EMA e 4 dias de LMA na linha de tempo de curto prazo e com a diferença de preço de 50 para formar o ShortTermXtrender. O RSI com a diferença de preço de 50 para formar o LongTermXtrender na linha de tempo de longo prazo e com a diferença de preço de 4 dias de EMA.

Quando o shortTermXtrender usa 0, faz mais; Quando o longTermXtrender usa 0, também faz mais. O princípio de stop loss após o overdo é parar quando o shortTermXtrender usa 0; Quando o longTermXtrender usa 0, também pára.

Assim, com o julgamento de duas linhas de tempo, é possível filtrar mais falsas descobertas.

Análise de vantagens

A maior vantagem da estratégia é a precisão de discernimento de tendências. Usado em combinação com duas linhas de tempo, pode filtrar eficazmente o ruído e bloquear a direção da tendência alvo. Isso garante negociações de seguimento de tendências de baixo risco.

Além disso, a estratégia oferece espaço para otimização de parâmetros. O usuário pode otimizar o efeito da estratégia de acordo com diferentes variedades e períodos de tempo, ajustando o ciclo SMA, os parâmetros RSI, etc.

Análise de Riscos

O principal risco dessa estratégia é o erro de julgamento de excesso de espaço. Em situações de turbulência, é fácil gerar sinais errôneos.

Além disso, a configuração inadequada dos parâmetros também pode levar a um mau resultado. Se os parâmetros do período de tempo forem muito curtos, a probabilidade de erro aumentará; Se os parâmetros do período de tempo forem muito longos, a oportunidade de tendência será perdida. Isso requer que o usuário teste e otimize os parâmetros para diferentes mercados.

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Aumentar o mecanismo de parada. A estratégia atual não tem um parâmetro de parada, mas pode ser interrompida quando o objetivo de lucro for atingido.

  2. Aumentar a gestão de posições. A posição pode ser ajustada dinamicamente de acordo com o tamanho do capital, a volatilidade e outros indicadores.

  3. Teste diferentes variedades de configurações de parâmetros. O usuário pode testar a combinação ideal de parâmetros através da retroalimentação de diferentes períodos de tempo, como o dia e os 60 minutos.

  4. Adição de julgamento auxiliado por aprendizado de máquina. Pode treinar modelos para julgar tipos de situações, de modo a ajustar dinamicamente os parâmetros da estratégia e aumentar a taxa de vitória.

Resumir

A estratégia de negociação de diferença de preço de taxa de flutuação de duas eixos de tempo captura de tendências de alta eficiência através da construção de indicadores de duas eixos de tempo. O espaço de otimização da estratégia é grande, o usuário pode otimizar através de ajustes de parâmetros, gerenciamento de parada, gerenciamento de posição, etc., para obter melhores efeitos da estratégia.

Código-fonte da estratégia
/*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)