Estratégia de negociação quantitativa combinada com vários indicadores

Autora:ChaoZhang, Data: 2024-01-24 15:10:41
Tags:

img

Resumo

Esta estratégia utiliza três indicadores técnicos do preço das ações, RSI, StochRSI e Bollinger Bands, e combina condições de tempo e direção de negociação para determinar sinais de compra e venda para estratégias quantitativas de negociação.

Princípio

Quando o indicador RSI é menor que a área inferior e a linha StochRSI K cruza acima da linha D, é considerado um sinal de compra.

Quando o indicador RSI excede a área superior e a linha StochRSI K cruza abaixo da linha D, é considerado um sinal de venda.

O indicador RSI julga se o preço das ações está sobrecomprado ou sobrevendido, StochRSI julga o impulso do preço das ações e Bollinger Bands julga se o preço das ações está em níveis altos e baratos.

Análise das vantagens

Esta é uma estratégia combinada de múltiplos indicadores com ampla cobertura de indicadores e base de julgamento abrangente. É necessário cruzar entre o preço ou indicador atual da ação e seu limiar antes de julgar o sinal, o que tem um certo efeito de filtragem sobre os falsos sinais.

As restrições de condições de tempo são adicionadas antes da colocação de ordens para evitar riscos maiores durante períodos de tempo específicos.

Ao combinar os julgamentos de vários indicadores, mais tipos de tendências podem ser combinados para melhorar a eficácia da estratégia.

Análise de riscos

A estratégia depende principalmente de três tipos de indicadores. Se o indicador der um sinal errado, a estratégia causará perdas. Os indicadores devem se verificar e não podem depender completamente de um determinado indicador. Por exemplo, a oscilação do RSI em um determinado período de tempo aumentará a possibilidade de emitir sinais falsos.

As condições de julgamento do tempo adicionadas à estratégia podem também não ter condições favoráveis de mercado.

Se a selecção das unidades populacionais for inadequada, por exemplo, as unidades populacionais com efeitos graves de exagero, a validade destes indicadores será muito reduzida.

Optimização

  1. Aumentar as medidas de controlo do risco, tais como a utilização máxima para limitar as perdas.

  2. Ajustar os parâmetros do indicador para melhor corresponder às ações selecionadas, por exemplo, acelerar os parâmetros do RSI para detectar mudanças de preço mais rápidas.

  3. Aumentar os mecanismos de filtragem, como suspender a negociação quando o preço das ações estiver no meio da banda de Bollinger para evitar condições de mercado oscilantes e parar de fazer ordens perto da abertura e fechamento para evitar o risco de gap.

  4. A seleção de ações pode referir-se aos fundamentos para evitar ações com fraude financeira grave.

Resumo

Esta é uma estratégia típica de indicador técnico multi-variável com uma mistura equilibrada de indicadores e uma cobertura extensa. Ao mesmo tempo, as condições de ordem são rigorosas, o que pode selecionar efetivamente ações para alcançar lucro, e o drawdown será controlado dentro de uma certa faixa. Através da otimização de indicadores e parâmetros, ele pode se adaptar melhor ao mercado. Ao mesmo tempo, aumentar o mecanismo de controle de risco para minimizar o risco para melhorar ainda mais a estabilidade e confiabilidade da estratégia.


/*backtest
start: 2023-12-24 00:00:00
end: 2024-01-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version= 2
strategy("RSI+STOCHRSI+BB Strategy", overlay=true)
lengthrsi = input(6)
overSold = input( 20 )
overBought = input( 70 )
price = close
vrsi = rsi(price, lengthrsi)

smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)

bblength = input(50)
bbupmult =input(1.5,title="Multiplier for BB Upper Band")
bblowmult = input(1.5,title="Multiplier for BB Lower Band")

basis =  sma(close,bblength)

devup = bbupmult * stdev(close, bblength)
devlow = bblowmult * stdev(close, bblength)

upper = basis + devup
lower = basis - devlow
plot(basis, color=red)
p1 = plot(upper, color=blue)
p2 = plot(lower, color=blue)
fill(p1, p2)


yearfrom = input(2018)
yearuntil =input(2019)
monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)



if (  ( crossover(k,d)) and ( crossover(vrsi,overSold) or vrsi<overSold)  and (  (price<lower) or crossover(price,lower) ) ) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",  comment="BUY")
    
else
    strategy.cancel(id="BUY")


if ( ( crossunder(k,d) ) and ( (vrsi >overBought) or crossunder(vrsi,overBought) ) and  ( (price>upper) or crossunder(price,upper) )) 

    strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND",  comment="SELL")
else
    strategy.cancel(id="SELL")
    
    
    

Mais.