Umfassende automatisierte Futures-Handelsstrategie für Long und Short

Schriftsteller:ChaoZhang, Datum: 2024-02-18 14:25:04
Tags:

img

Diese Strategie ist eine innovativeUmfassende automatisierte Futures-Handelsstrategie für Long und Short. Es integriert SuperTrend, QQE und Trend Indicator A-V2, um automatisch Handelssignale zu erkennen und Long/Short Trades zu tätigen.

Strategieprinzip

Die Strategie besteht aus drei Hauptteilen:

  1. Der SuperTrend-Indikator bestimmt den Hauptmarkttrend. Wenn der Preis über die Aufwärtstrendlinie bricht, zeigt er einen Aufwärtstrend an. Wenn der Preis unter die Abwärtstrendlinie bricht, zeigt er einen Abwärtstrend an.

  2. Der QQE-Indikator kombiniert RSI, um den Überkauf-/Überverkaufstatus zu identifizieren. Dynamische Überkauf-/Überverkaufsniveaus werden auf der Grundlage des RSI-Durchschnitts und der Standardabweichung berechnet.

  3. Der Trendindikator A-V2 beurteilt den Trend, indem er schnelle und langsame EMA-Linien vergleicht.

Bei der Beurteilung der Marktrichtung werden Long-Signale ausgelöst, wenn der SuperTrend einen Aufwärtstrend zeigt, QQE nicht überverkauft ist und ein A-V2-Kaufsignal auftritt.

Vorteile

  1. Die Verwendung mehrerer Indikatoren verbessert die Zuverlässigkeit und verringert die Anzahl falscher Signale.

  2. Die automatische Signalerkennung ohne manuelle Interferenz reduziert menschliche Fehler.

  3. Eine organische Kombination von Indikatoren ermöglicht eine wirksame Risikokontrolle bei der Suche nach Handelsmöglichkeiten.

  4. Anpassungsfähige Parameter, um den Bedürfnissen der Nutzer gerecht zu werden.

  5. Unterstützen Sie sowohl den Long- als auch den Long/Short-Handel für Flexibilität.

Risiken und Lösungen

  1. Die Indikatoren können unter extremen Marktbedingungen falsche Signale erzeugen.

  2. Transaktionskosten und Schlupf können die Gewinne beeinträchtigen.

  3. Eine unzureichende Einstellung der Parameter führt zu schlechter Leistung. Versuche verschiedene Werte, um eine optimale Konfiguration zu finden.

Optimierungsrichtlinien

  1. Maschinelles Lernen erhöhen, um Parameter automatisch zu optimieren, basierend auf historischen Daten.

  2. Einbeziehen Sie mehr Marktmikrostrukturfaktoren wie Volumen, um bessere Signale zu entdecken.

  3. Implementieren Sie Hochfrequenz-Handelstechniken, um automatisch Aufträge zu übermitteln.

Schlussfolgerung

Die Strategie kombiniert Indikatoren, um die Marktstruktur zu bewerten und stabile Gewinne unter Risikokontrolle zu erzielen. Sie berücksichtigt sowohl die Trendrichtung als auch den Überkauf-/Überverkaufsstatus für nuancierte Handelsentscheidungen.


/*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")


Mehr