Stratégie complète de trading automatique de contrats à terme longs et courts


Date de création: 2024-02-18 14:25:04 Dernière modification: 2024-02-18 14:25:04
Copier: 0 Nombre de clics: 874
1
Suivre
1617
Abonnés

Stratégie complète de trading automatique de contrats à terme longs et courts

Cette stratégie est novatrice.Stratégie complète de trading automatique de contrats à terme longs et courtsL’intégration de plusieurs indicateurs de SuperTrend, QQE et Trend Indicator A-V2 permet de détecter automatiquement les signaux de négociation et de négocier sur plusieurs positions. Cette stratégie vise à détecter les principales tendances du marché et à obtenir des rendements stables dans le cadre d’une bonne maîtrise des risques.

Principe de stratégie

Cette stratégie est basée sur trois éléments principaux:

  1. L’indicateur de SuperTrend est chargé de déterminer la direction des principales tendances du marché.

  2. L’indicateur QQE, combiné à l’indicateur RSI, détermine l’état de survente et de survente. En fonction de la moyenne et de l’écart standard de l’indicateur RSI, un seuil dynamique est calculé.

  3. L’indicateur de tendance A-V2 détermine la tendance en calculant l’emplacement de la ligne rapide et lente de l’EMA. La ligne rapide est supérieure à la ligne lente et sert de signal de clignotement.

Pour déterminer la direction du marché, un signal de plus est émis lorsque SuperTrend est positif, et QQE décide qu’il n’y a pas de survente, et A-V2 est positif. Un signal de plus est émis lorsque SuperTrend est négatif, et QQE décide qu’il n’y a pas de survente, et A-V2 est négatif.

Avantages stratégiques

  1. L’utilisation d’indicateurs combinés rend les décisions de trading plus fiables et réduit les faux signaux.

  2. Il est possible de détecter automatiquement les signaux de transaction sans intervention humaine, ce qui réduit les erreurs humaines.

  3. L’utilisation de la combinaison organique d’indicateurs permet de contrôler les risques tout en détectant les signaux et de réaliser des bénéfices stables.

  4. Les paramètres sont réglables et l’utilisateur peut personnaliser la stratégie en fonction de ses préférences.

  5. Les transactions sont unilatérales, plurilatérales ou bilatérales, avec une grande flexibilité.

Risques et solutions

  1. Dans des circonstances exceptionnelles du marché, les indicateurs peuvent émettre des signaux erronés, qui peuvent être réduits en optimisant les paramètres de l’indicateur.

  2. Les coûts de transaction et les points de glissement peuvent affecter l’espace de profit stratégique et peuvent être optimisés par la mise en œuvre d’un mécanisme de stop-loss.

  3. Une mauvaise configuration des paramètres de l’indicateur peut entraîner une mauvaise performance de la stratégie. Vous pouvez essayer différents paramètres pour trouver la meilleure configuration.

Direction d’optimisation

  1. Ajout d’algorithmes d’apprentissage automatique qui optimisent automatiquement les paramètres de l’indicateur en fonction des données historiques, rendant la stratégie plus intelligente.

  2. Les signaux de trading sont plus efficaces en combinant plus de facteurs de la micro-structure du marché, tels que le volume de transactions, les offres extérieures, etc.

  3. L’application de la technologie de négociation haute fréquence pour l’exécution des transactions par le biais d’un modèle algorithmique de soumission automatique des ordres.

Résumer

Cette stratégie intègre plusieurs indicateurs pour juger de la structure du marché, réaliser des bénéfices stables dans le cadre de la maîtrise des risques, prendre en compte la direction de la tendance et tenir compte de l’état de survente et de survente, la décision de négociation est plus fine. Il y a encore beaucoup de place pour l’optimisation, qui peut améliorer encore la performance de la stratégie en termes d’optimisation des paramètres, d’optimisation de la structure et d’optimisation de l’exécution.

Code source de la stratégie
/*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")