Estratégia de negociação quantitativa abrangente baseada em múltiplos indicadores

Autora:ChaoZhang, Data: 28 de dezembro de 2023 17:46:45
Tags:

img

Resumo

A estratégia é denominada Comprehensive Quantitative Trading Strategy Based on Multiple Indicators. Integra vários indicadores técnicos, incluindo SuperTrend, QQE e Trend Indicator A-V2, para formar um sistema de negociação abrangente que analisa o mercado a partir de múltiplas dimensões.

A ideia central é combinar diferentes indicadores para melhorar a precisão do julgamento enquanto captura as principais tendências do mercado, de modo a fornecer aos traders sinais de negociação estáveis e eficientes.

Estratégia lógica

A lógica básica de negociação desta estratégia baseia-se nos julgamentos combinados dos três indicadores seguintes:

  1. SuperTrend: Para determinar se o preço está em uma tendência de alta ou baixa.

  2. QQE: Uma versão melhorada do RSI que incorpora características de reversão média. É usado para julgar se o mercado está sobrecomprado ou sobrevendido. O limiar é ajustado dinamicamente com base na faixa de desvio padrão do RSI.

  3. Indicador de tendência A-V2: Compara a EMA do preço e a EMA do preço aberto para determinar a direção da tendência.

Os três indicadores acima têm focos diferentes. O SuperTrend tem como alvo tendências e pontos de reversão. O QQE se concentra em níveis de sobrecompra / sobrevenda. O A-V2 ajuda a determinar a tendência de médio e longo prazo. Esta estratégia os integra para formar um sistema completo de decisão de negociação.

A lógica específica de negociação é a seguinte:

Um sinal de compra é gerado quando o SuperTrend mostra uma tendência de alta, o QQE mostra que o RSI está abaixo do nível de sobrevenda e as EMAs A-V2 estão subindo.

Um sinal de venda é gerado quando o SuperTrend mostra uma tendência de queda, o QQE mostra que o RSI está acima do nível de sobrecompra e os EMAs A-V2 estão caindo.

O julgamento abrangente de múltiplos indicadores garante uma alta precisão nos sinais, maximizando ao mesmo tempo as oportunidades no mercado para alcançar negociações estáveis e eficientes.

Análise das vantagens

As principais vantagens desta estratégia são:

  1. A integração de múltiplos indicadores permite a verificação mútua, melhorando assim consideravelmente a precisão.

  2. Uma cobertura mais abrangente para a negociação bidireccional.Permitir posições longas e curtas pode obter lucros decentes de oscilações ascendentes e descendentes do mercado.

  3. Melhor controle de risco. A combinação de indicadores evita sinais falsos de indicadores individuais. Indicadores como QQE também controlam riscos inerentemente.

  4. Fácil de usar, ajuste flexível de parâmetros. Os parâmetros de entrada são simples de ajustar para os usuários com base em suas próprias preferências para atender a diferentes condições do mercado.

  5. Ele pode ser aplicado a mercados como ações, forex, criptomoedas e combina com os traders técnicos em particular.

Análise de riscos

Os principais riscos desta estratégia incluem:

  1. Risco de viés nos julgamentos dos indicadores: anomalias raras dos preços podem causar viés nos sinais dos indicadores e, consequentemente, riscos.

  2. Risco de inversão de tendência: esta estratégia concentra-se no seguimento da tendência, por isso grandes inversões fundamentalmente orientadas podem causar grandes perdas.

  3. Risco de ajuste inadequado dos parâmetros, pode distorcer os sinais do indicador.

As principais soluções de gestão de risco são: 1) Verificar os sinais entre os indicadores para evitar a dependência de um único indicador; 2) Controlar o dimensionamento das posições para as perdas geridas por transação; 3) Ajustar os parâmetros por diferentes mercados.

Orientações de otimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Adicionar stop loss para a tomada de lucro e redução de drawdown.

  2. Integrar mais indicadores para melhorar a estabilidade do sistema.

  3. Introduzir o dimensionamento das posições baseado na volatilidade. Ajustar dinamicamente os tamanhos das posições de acordo com a mudança da volatilidade do mercado.

  4. Optimize o ajuste de parâmetros. backtests mais longos podem ser conduzidos para encontrar os conjuntos de parâmetros ideais para esta estratégia.

  5. Usar conjuntos de parâmetros diferentes para diferentes mercados. Os parâmetros podem ser otimizados separadamente para obter os melhores resultados em diferentes mercados (ações, forex, criptomoedas, etc.).

Conclusão

Esta estratégia integra os indicadores SuperTrend, QQE e A-V2 em um sistema de negociação quantitativo abrangente com julgamentos robustos de sinais. Combinando tendência, níveis de sobrecompra / sobrevenda e verificações de tendência de médio e longo prazo, ele pode identificar efetivamente oportunidades enquanto controla estritamente os riscos. A estratégia tem vantagens significativas e vale a pena ser avaliada e otimizada em negociação ao vivo por traders técnicos.


/*backtest
start: 2022-12-21 00:00:00
end: 2023-12-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//author:盧振興 芙蓉中華中學畢業 育達科技大學畢業碩士
//參考資料 : QQE MOD By:Mihkel00 ,SuperTrend By:KivancOzbilgic , TrendIndicator A-V2 By:Dziwne

strategy("綜合交易策略", shorttitle="Comprehensive Strategy", overlay=true)

// 添加單邊或多空參數
OnlyLong = input(true, title="單邊")

// SuperTrend 参数
PeriodsST = input(9, title="ST ATR Period")
MultiplierST = input(3.9, title="ST ATR Multiplier")
srcST = input(hl2, title="ST Source")

atrST = atr(PeriodsST)
upST = srcST - (MultiplierST * atrST)
upST := close[2] > upST[1] ? max(upST, upST[1]) : upST
dnST = srcST + (MultiplierST * atrST)
dnST := close[2] < dnST[1] ? min(dnST, dnST[1]) : dnST
trendST = 1
trendST := nz(trendST[1], trendST)
trendST := trendST == -1 and close[2] > dnST[1] ? 1 : trendST == 1 and close[2] < upST[1] ? -1 : trendST

// QQE 参数
RSI_PeriodQQE = input(6, title='QQE RSI Length')
SFQQE = input(5, title='QQE RSI Smoothing')
QQE = input(3, title='QQE Fast Factor')
ThreshHoldQQE = input(3, title="QQE Thresh-hold")
srcQQE = input(close, title="QQE RSI Source")

Wilders_PeriodQQE = RSI_PeriodQQE * 2 - 1

RsiQQE = rsi(srcQQE, RSI_PeriodQQE)
RsiMaQQE = ema(RsiQQE, SFQQE)
AtrRsiQQE = abs(RsiMaQQE[1] - RsiMaQQE)
MaAtrRsiQQE = ema(AtrRsiQQE, Wilders_PeriodQQE)
darQQE = ema(MaAtrRsiQQE, Wilders_PeriodQQE) * QQE

basisQQE = sma(RsiMaQQE - 50, 50)
devQQE = 0.35 * stdev(RsiMaQQE - 50, 50)
upperQQE = basisQQE + devQQE
lowerQQE = basisQQE - devQQE

qqeCondition = RsiMaQQE[1] - 50 > upperQQE[1] ? true : RsiMaQQE[1] - 50 < lowerQQE[1] ? false : na

// Trend Indicator A-V2 参数
ma_periodA_V2 = input(52, title="TIA-V2 EMA Period")
oA_V2 = ema(open, ma_periodA_V2)
cA_V2 = ema(close, ma_periodA_V2)
trendIndicatorAV2Condition = cA_V2[1] >= oA_V2[1] ? true : false

// 综合交易逻辑
longCondition = trendST == 1 and qqeCondition and trendIndicatorAV2Condition
shortCondition = trendST == -1 and not qqeCondition and not trendIndicatorAV2Condition

// 针对多单的开平仓逻辑
if (OnlyLong)
    if (longCondition)
        strategy.entry("Buy", strategy.long)        
    else
        strategy.close("Buy")

// 多空都做时的逻辑
if (not OnlyLong)
    if (longCondition)
        strategy.entry("Buy", strategy.long)
    else if (shortCondition)
        strategy.entry("Sell",strategy.short)

    // 添加多空平仓逻辑
    if (not longCondition)
        strategy.close("Buy")
    if (not shortCondition)
        strategy.close("Sell")

// 可视化信号
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition and not OnlyLong, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")


Mais.