Estrategia integral de negociación automática de futuros a corto y largo plazo


Fecha de creación: 2024-02-18 14:25:04 Última modificación: 2024-02-18 14:25:04
Copiar: 0 Número de Visitas: 874
1
Seguir
1617
Seguidores

Estrategia integral de negociación automática de futuros a corto y largo plazo

Esta estrategia es innovadora.Estrategia integral de negociación automática de futuros a corto y largo plazoLa estrategia se basa en la integración de varios indicadores de SuperTrend, QQE y Trend Indicator A-V2 para la detección automática de señales de negociación y el comercio de más de un espacio. La estrategia tiene como objetivo descubrir las principales tendencias del mercado y obtener ganancias estables con un buen control del riesgo.

Principio de estrategia

La estrategia se basa en tres partes principales:

  1. El indicador SuperTrend es responsable de determinar la dirección de la tendencia principal del mercado. Cuando el precio supera la línea de giro hacia arriba, es positivo, y cuando la línea de giro se rompe, es negativo.

  2. El indicador QQE combina el RSI para determinar el estado de sobreventa y sobreventa. De acuerdo con el promedio y la diferencia estándar del RSI, se calcula el límite superior y inferior dinámico. El RSI es una señal de sobreventa cuando está por encima del límite superior y una señal de sobreventa cuando está por debajo del límite inferior.

  3. El indicador de tendencia A-V2 determina la tendencia mediante el cálculo de la posición de la línea rápida y lenta del EMA. La línea rápida es más alta que la línea lenta y sirve como señal de alarma.

En la determinación de la dirección del mercado, se emite una señal de entrada cuando SuperTrend es optimista, y QQE determina que no está sobrevendido, y A-V2 es optimista; cuando SuperTrend es bajista, y QQE determina que no está sobrevendido, y A-V2 es bajista, se emite una señal de salida.

Ventajas estratégicas

  1. El uso integrado de varios indicadores hace que las decisiones comerciales sean más fiables y reduce las falsas señales.

  2. La detección automática de señales de transacción, sin necesidad de intervención humana, reduce el error humano.

  3. Utiliza la combinación orgánica de indicadores para controlar el riesgo y obtener ganancias estables al mismo tiempo que detecta las señales.

  4. Los parámetros son ajustables y el usuario puede personalizar la estrategia según sus preferencias.

  5. Apoya el comercio unilateral, multilateral o bilateral, con flexibilidad para el comercio.

Riesgos y soluciones

  1. En circunstancias especiales del mercado, los indicadores pueden emitir señales erróneas, que se pueden reducir optimizando los parámetros del indicador.

  2. Los costos de transacción y los puntos de deslizamiento pueden afectar el espacio de ganancias de la estrategia, que se puede optimizar mediante la implementación de un mecanismo de parada de pérdidas.

  3. La configuración incorrecta de los parámetros indicadores puede causar un mal rendimiento de la estrategia, y se puede probar con diferentes parámetros para encontrar la mejor configuración.

Dirección de optimización

  1. La adición de algoritmos de aprendizaje automático para optimizar automáticamente los parámetros del indicador en función de los datos históricos, para que las estrategias sean más inteligentes.

  2. La combinación de más factores de la microestructura del mercado, como el volumen de transacciones, el mercado externo y otros datos para extraer señales de transacción más efectivas.

  3. Aplicación de la tecnología de alta frecuencia para la ejecución de transacciones mediante el envío automático de órdenes a través de un modelo algorítmico.

Resumir

Esta estrategia integra varios indicadores para determinar la estructura del mercado, para lograr ganancias estables bajo la premisa de controlar el riesgo, para tomar decisiones de transacción más sutiles, tanto para considerar la dirección de la tendencia como para sopesar el estado de sobreventa y sobreventa. El espacio de optimización es grande y se puede mejorar aún más el rendimiento de la estrategia en términos de optimización de parámetros, optimización de la estructura y optimización de la ejecución.

Código Fuente de la Estrategia
/*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")