Estratégia abrangente de negociação automática de futuros longos e curtos


Data de criação: 2024-02-18 14:25:04 última modificação: 2024-02-18 14:25:04
cópia: 0 Cliques: 874
1
focar em
1617
Seguidores

Estratégia abrangente de negociação automática de futuros longos e curtos

Esta estratégia é inovadora.Estratégia abrangente de negociação automática de futuros longos e curtosEsta estratégia visa descobrir as principais tendências do mercado e obter ganhos estáveis, sob a premissa de controlar o risco.

Princípio da estratégia

A estratégia baseia-se em três partes principais:

  1. O indicador SuperTrend é responsável por determinar a direção da principal tendência do mercado. Quando o preço supera a linha de mudança de tendência para cima, é positivo, e quando a linha de mudança de tendência para baixo, é negativo.

  2. O indicador QQE, combinado com o RSI, determina o estado de supervenda. De acordo com a média e o desvio padrão do RSI, o limite superior e inferior do RSI é calculado. O RSI é um sinal de supervenda quando está acima do limite superior e um sinal de supervenda quando está abaixo do limite inferior.

  3. O indicador de tendência A-V2 determina a tendência por meio do cálculo da posição da linha rápida e lenta do EMA. A linha rápida é mais alta do que a linha lenta.

Para determinar a direção do mercado, quando o SuperTrend é otimista, e o QQE determina que não está sobrevendido, e o A-V2 é otimista, é emitido um sinal de entrada de mais; quando o SuperTrend é pessimista, e o QQE determina que não está sobrevendido, e o A-V2 é pessimista, é emitido um sinal de entrada de mais.

Vantagens estratégicas

  1. A utilização de vários indicadores em conjunto permite uma tomada de decisão mais confiável e reduz os sinais falsos.

  2. A detecção automática de sinais de negociação, sem necessidade de intervenção humana, reduz a possibilidade de erro humano.

  3. A combinação orgânica de indicadores permite controlar o risco e obter lucros estáveis enquanto se detecta o sinal.

  4. Os parâmetros são ajustáveis e o usuário pode personalizar a estratégia de acordo com suas preferências.

  5. A transação pode ser unilateral, multilateral ou bilateral, com flexibilidade.

Riscos e soluções

  1. Em situações especiais do mercado, os indicadores podem emitir sinais errados, que podem ser reduzidos através da otimização dos parâmetros do indicador.

  2. Os custos de transação e os pontos de deslizamento podem afetar a margem de lucro da estratégia e podem ser otimizados com a implementação de um mecanismo de parada de perda.

  3. A configuração incorreta dos parâmetros do indicador pode levar a um mau desempenho da estratégia. Experimente diferentes parâmetros para encontrar a melhor configuração.

Direção de otimização

  1. A adição de algoritmos de aprendizagem de máquina para otimizar automaticamente os parâmetros do indicador com base nos dados históricos torna as estratégias mais inteligentes.

  2. A combinação de mais fatores de microestrutura de mercado, como volume de transação, fora de bolsa e outros, permite a extração de sinais de transação mais eficientes.

  3. Aplicação de tecnologias de negociação de alta frequência para a execução de transações por meio de envio automático de pedidos por meio de modelos algorítmicos.

Resumir

Esta estratégia integra vários indicadores para determinar a estrutura do mercado, para obter lucros estáveis sob o pressuposto de controlar o risco, para considerar a direção da tendência e para considerar o estado de supercompra e supervenda, para que as decisões de negociação sejam mais precisas. Há muito espaço para otimização, para melhorar ainda mais o desempenho da estratégia em termos de otimização de parâmetros, otimização de estrutura e otimização de execução.

Código-fonte da estratégia
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
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")