
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:
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.
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.
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
A utilização de vários indicadores em conjunto permite uma tomada de decisão mais confiável e reduz os sinais falsos.
A detecção automática de sinais de negociação, sem necessidade de intervenção humana, reduz a possibilidade de erro humano.
A combinação orgânica de indicadores permite controlar o risco e obter lucros estáveis enquanto se detecta o sinal.
Os parâmetros são ajustáveis e o usuário pode personalizar a estratégia de acordo com suas preferências.
A transação pode ser unilateral, multilateral ou bilateral, com flexibilidade.
Riscos e soluções
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.
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.
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
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.
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.
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.
/*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")