Stratégie complète de négociation automatisée de contrats à terme à long terme et à court terme

Auteur:ChaoZhang est là., Date: 2024-02-18 14:25:04 Je vous en prie.
Les étiquettes:

img

Cette stratégie est uneStratégie complète de négociation automatisée de contrats à terme à long terme et à court termeIl intègre SuperTrend, QQE et Trend Indicator A-V2 pour détecter automatiquement les signaux de trading et effectuer des transactions longues/courtes.

Principe de stratégie

La stratégie est composée de trois parties principales:

  1. L'indicateur SuperTrend détermine la tendance principale du marché. Lorsque le prix dépasse la ligne de tendance haussière, il indique une tendance haussière. Lorsque le prix dépasse la ligne de tendance baissière, il indique une tendance à la baisse.

  2. L'indicateur QQE combine l'indicateur RSI pour identifier le statut de surachat/survente. Les niveaux dynamiques de surachat/survente sont calculés en fonction de la moyenne et de l'écart type de l'indicateur RSI. L'indicateur RSI au-dessus du niveau supérieur indique un signal de surachat et l'indicateur RSI en dessous du niveau inférieur indique un signal de survente.

  3. L'indicateur de tendance A-V2 évalue la tendance en comparant les lignes EMA rapides et lentes.

Lorsqu'on juge la direction du marché, les signaux longs sont déclenchés lorsque la SuperTrend montre une tendance haussière, que QQE n'est pas survendu et qu'un signal d'achat A-V2 se produit.

Les avantages

  1. L'utilisation de plusieurs indicateurs améliore la fiabilité et réduit les faux signaux.

  2. La détection automatique du signal sans intervention manuelle réduit les erreurs humaines.

  3. Une combinaison organique d'indicateurs permet de contrôler efficacement les risques tout en découvrant les opportunités de négociation.

  4. Paramètres personnalisables pour répondre aux besoins des utilisateurs.

  5. Soutenir à la fois le trading long et le trading long/short pour plus de flexibilité.

Risques et solutions

  1. Les indicateurs peuvent générer de faux signaux dans des conditions de marché extrêmes.

  2. Les frais de transaction et les dérapages pourraient éroder les bénéfices.

  3. Une configuration inadéquate des paramètres entraîne de mauvaises performances. Essayez différentes valeurs pour trouver une configuration optimale.

Directions d'optimisation

  1. Augmenter l'apprentissage automatique pour optimiser automatiquement les paramètres basés sur les données historiques.

  2. Incorporer plus de facteurs de micro-structure du marché comme le volume pour découvrir de meilleurs signaux.

  3. Mettre en œuvre des techniques de négociation à haute fréquence pour soumettre automatiquement des ordres.

Conclusion

La stratégie combine des indicateurs pour évaluer la structure du marché et réaliser des profits stables sous contrôle des risques. Elle prend en compte à la fois la direction de la tendance et le statut de surachat / survente pour des décisions de trading nuancées.


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


Plus de