Combinação de estratégias multifatoriais


Data de criação: 2023-10-26 15:18:34 última modificação: 2023-10-26 15:18:34
cópia: 0 Cliques: 429
1
focar em
1178
Seguidores

Combinação de estratégias multifatoriais

Aqui está uma análise detalhada da minha estratégia baseada no código de estratégia de negociação que você forneceu:

Visão geral

A estratégia consiste em uma combinação de vários fatores, com o objetivo de aproveitar as vantagens de diferentes fatores para construir uma estratégia de negociação integrada. A principal combinação é a seguinte:

  1. Stoch.RSI - Indice aleatório de média móvel lisa
  2. RSI - Relativamente fraco
  3. Estratégia Dupla - Estratégia dupla de indicadores aleatórios e RSI
  4. CM Williams Vix Fix - Correção de flutuação da Williams, em busca do fundo do mercado
  5. DMI - indicador de tendência

A combinação de vários fatores permite aproveitar os benefícios de cada um deles para obter mais oportunidades de negociação e reduzir o risco de dependência de um único fator.

Princípio da estratégia

A estratégia utiliza principalmente os seguintes indicadores técnicos:

  1. Stoch.RSI- O indicador RSI aleatório, que combina os benefícios do RSI e do indicador aleatório. Ele usa o valor do RSI como entrada para o indicador aleatório para determinar se o mercado está sobrecomprado ou sobrevendido. Quando a linha% K atravessa a linha% D abaixo da zona de sobrecompra, faça mais; quando a linha% K atravessa a linha% D acima da zona de sobrevenda, faça zero.

  2. RSI- Indicador de fraqueza relativa, que determina o estado de sobrecompra e sobrevenda do mercado. O RSI maior que 70 é a zona de sobrecompra e menor que 30 é a zona de sobrevenda. O RSI oscila entre 30 e 70, representando um mercado em um estado de liquidação horizontal.

  3. Double Strategy- A dupla estratégia combinada com o uso de indicadores aleatórios e o RSI. Quando a linha aleatória %K atravessa a linha %D abaixo da zona de superaquecimento e o RSI atravessa a zona de superaquecimento, faça mais; quando a linha aleatória %K atravessa a linha %D acima da zona de superaquecimento e o RSI atravessa a zona de superaquecimento, faça zero.

  4. CM Williams Vix Fix- O indicador de correção de taxa de flutuação de Williams, que determina se o mercado está em um ponto de reversão, calculando a faixa percentual de flutuação de preços no período mais recente.

  5. DMI- Indicador de tendência, para determinar a direção da tendência do mercado, através do cálculo da diferença entre +DI e -DI. O índice ADX pode ser usado para determinar a intensidade da tendência.

O uso integrado dos pontos fortes de cada um desses indicadores para avaliar tendências e pontos de venda do mercado de diferentes perspectivas pode aumentar a estabilidade e a taxa de sucesso da estratégia.

Vantagens estratégicas

  • A combinação de vários fatores, que se complementam, é mais abrangente.
  • A plataforma de negociação de criptomoedas, que inclui diferentes tipos de sinais de negociação, como tendências e reversões, oferece mais oportunidades.
  • Ao mesmo tempo, julgar as áreas de sobrevenda e sobrecompra e detectar a formação e a reversão de estados extremos em tempo hábil;
  • A definição de indicadores com parâmetros otimizados, mais adaptados a diferentes contextos de mercado;
  • Combine os indicadores de tendência para avaliar a intensidade da tendência e evite a negociação de contrapartida.

Análise de Riscos

  • A combinação de vários fatores e a robustez da estratégia como um todo ainda estão por verificar.
  • A falta de homogeneidade de alguns indicadores permite uma melhor combinação;
  • Quando os sinais de múltiplos espaços aparecem ao mesmo tempo, é necessário definir o princípio de escolha da direção estratégica.
  • A configuração de parâmetros requer uma otimização rigorosa de retrocesso e não é adequada para mudanças arbitrárias de parâmetros;
  • A eficácia a longo prazo pode ser fraca e a retirada de perdas deve ser feita em tempo hábil.

Direção de otimização

  • A seleção de indicadores no portfólio para a preservação de fatores únicos;
  • Otimizar a configuração de parâmetros de cada indicador para melhor adaptá-lo ao mercado-alvo;
    • estabelecer regras claras de entrada e saída;
  • Combinação de métodos como stop loss e profit withdrawal para controlar o risco;
  • Teste o efeito de diferentes períodos de detenção sobre o desempenho.

Resumir

A estratégia utiliza os benefícios de vários indicadores técnicos para formar sinais de negociação por meio de fatores como Stoch.RSI, RSI, Double Strategy, CM Williams Vix Fix e DMI. Ela fornece uma base de julgamento mais abrangente e estável, mas também torna a otimização de parâmetros de estratégia mais complexa.

Código-fonte da estratégia
/*backtest
start: 2023-10-18 00:00:00
end: 2023-10-25 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


     //////////////////////////////////////////////////////////////////////
    ////  STOCHASTIC_RSI+RSI+DOUBLE_STRATEGY+CM_WILLIAMS_VIX_FIX+DMI  ////
   //////////////////////////////////////////////////////////////////////


//  This is a simple combination of integrated and published scripts, useful 
//  if you don't have a PRO account and want to bypass the 3 indicator limit. 
//  It includes:
//  1) Stoch.RSI
//  2) Relative strenght index
//  3) Stochastic + RSI, Double Strategy (by ChartArt)
//  4) CM_Williams_Vix_Fix Finds Market Bottoms (by ChrisMoody)
//  5) Directional Movement Index (DMI)
//  For more details about 3) and 4) check the original scripts.


//@version=3

strategy(title="Stoch.RSI+RSI+DoubleStrategy+CMWilliamsVixFix+DMI", shorttitle="Stoch.RSI+RSI+DoubleStrategy+CMWilliamsVixFix+DMI")


///STOCH.RSI///
smoothK = input(3, minval=1, title="Stochastic %K Smoothing")
smoothD = input(3, minval=1, title="Stochastic %K Moving Average")
lengthRSI = input(14, minval=1, title="RSI Lenght")
lengthStoch = input(14, minval=1, title="Stochastic Lenght")
RSIprice = close
rsi1 = rsi(RSIprice, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
plot(k, color=blue, linewidth=2)
plot(d, color=silver, linewidth=2)
h0 = hline(80)
h1 = hline(20)
fill(h0, h1, color=purple, transp=78)


///RSI///
up = rma(max(change(RSIprice), 0), lengthRSI)
down = rma(-min(change(RSIprice), 0), lengthRSI)
rsi2 = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi2, color=fuchsia, linewidth=2)
// band0 = hline(70, linestyle=dotted)
// band1 = hline(30, linestyle=dotted)
// fill(band0, band1, color=purple, transp=100)


///OVERBOUGHT-OVERSOLD STRATEGY///
StochOverBought = input(80, title="Stochastic overbought condition")
StochOverSold = input(20, title="Stochastic oversold condition")
ks = sma(stoch(close, high, low, lengthStoch), smoothK)
ds = sma(k, smoothD)
RSIOverBought = input( 70  , title="RSI overbought condition")
RSIOverSold = input( 30  , title="RSI oversold condition")
vrsi = rsi(RSIprice, lengthRSI)
if (not na(ks) and not na(ds))
    if (crossover(ks,ds) and k < StochOverSold)
        if (not na(vrsi)) and (crossover(vrsi, RSIOverSold))
            strategy.entry("LONG", strategy.long, comment="LONG")
if (crossunder(ks,ds) and ks > StochOverBought)
    if (crossunder(vrsi, RSIOverBought))
        strategy.entry("SHORT", strategy.short, comment="SHORT")
 
 
///CM WILLIAMS VIX FIX///
pd = input(22, title="LookBack Period Standard Deviation High")
bbl = input(20, title="Bollinger Band Length")
mult = input(2.0    , minval=1, maxval=5, title="Bollinger Band Standard Devaition Up")
lb = input(50  , title="Look Back Period Percentile High")
ph = input(.85, title="Highest Percentile - 0.90=90%, 0.95=95%, 0.99=99%")
pl = input(1.01, title="Lowest Percentile - 1.10=90%, 1.05=95%, 1.01=99%")
hp = input(false, title="Show High Range (Based on Percentile and LookBack Period)?")
sd = input(false, title="Show Standard Deviation Line?")
wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100
sDev = mult * stdev(wvf, bbl)
midLine = sma(wvf, bbl)
lowerBand = midLine - sDev
upperBand = midLine + sDev
rangeHigh = (highest(wvf, lb)) * ph
rangeLow = (lowest(wvf, lb)) * pl
col = wvf >= upperBand or wvf >= rangeHigh ? lime : gray
plot(hp and rangeHigh ? rangeHigh : na, title="Range High Percentile", style=line, linewidth=4, color=orange)
plot(hp and rangeLow ? rangeLow : na, title="Range High Percentile", style=line, linewidth=4, color=orange)
plot(wvf, title="Williams Vix Fix", style=columns, linewidth = 4, color=col, transp=85)
plot(sd and upperBand ? upperBand : na, title="Upper Band", style=line, linewidth = 3, color=aqua)


///DIRECTIONAL MOVEMENT INDEX///
len3 = input(14, minval=1, title="DI Length")
lensig3 = input(14, title="ADX Smoothing", minval=1, maxval=50)
up3 = change(high)
down3 = -change(low)
plusDM3 = na(up3) ? na : (up3 > down3 and up3 > 0 ? up3 : 0)
minusDM3 = na(down3) ? na : (down3 > up3 and down3 > 0 ? down3 : 0)
trur3 = rma(tr, len3)
plus3 = fixnan(100 * rma(plusDM3, len3) / trur3)
minus3 = fixnan(100 * rma(minusDM3, len3) / trur3)
sum3 = plus3 + minus3
adx3 = 100 * rma(abs(plus3 - minus3) / (sum3 == 0 ? 1 : sum3), lensig3)
plot(plus3, color=green, style=circles, linewidth=2, title="+DI")
plot(minus3, color=red, style=circles, linewidth=2, title="-DI")
plot(adx3, color=aqua, style=circles, linewidth=3, title="ADX")