Cette stratégie utilise des méthodes d'apprentissage automatique pour mettre en œuvre une stratégie de trading automatisée prête à l'emploi.
Cette stratégie repose principalement sur les points clés suivants:
Plus précisément, la stratégie tracera le Hull MA, l'EMA à 13 périodes et l'EMA à 21 périodes. Jugant des directions de tendance à court et moyen terme en fonction du statut long et court des EMA. Combiné avec Hull MA pour déterminer les tendances de cycle plus long. Cela fournit des conseils sur la direction générale des signaux de trading ultérieurs.
Avant d'ajuster les positions, la stratégie se réfère aux prix les plus élevés et les plus bas du canal de l'entité correspondant aux niveaux de support et de résistance.
Enfin, la stratégie invoque les prix d'ouverture et de fermeture de 60 périodes. Lorsque le prix de fermeture dépasse le prix d'ouverture, un signal d'achat est généré. Lorsqu'il dépasse le prix d'ouverture, un signal de vente est généré. Cela complète toute la logique de négociation.
Le plus grand avantage de cette stratégie est qu'elle combine l'apprentissage automatique et les indicateurs d'analyse technique pour obtenir une solution de trading automatisée logique, réglable et facile à utiliser.
Une combinaison multi-indicateurs améliore la précision du signal
La stratégie ne repose pas uniquement sur un ou deux indicateurs, mais prend en compte de multiples facteurs tels que les tendances, le support/résistance et les percées de prix.
Réglage des paramètres
Les durées des périodes Hull MA, EMA, ouvertes/close crossover peuvent être ajustées à l'aide de paramètres, ce qui rend la stratégie adaptable à différents environnements de marché.
Signaux de négociation automatisés
Les signaux de négociation basés sur des indicateurs et des croisements peuvent déclencher automatiquement des achats et des ventes sans jugement manuel, ce qui réduit la difficulté.
Affichage visualisé
Les graphiques de la stratégie peuvent clairement montrer la structure du marché, l'état de la tendance et les prix clés, affichant de manière intuitive la base du jugement stratégique.
Bien que cette stratégie ait été optimisée sous de multiples aspects, certains risques potentiels subsistent:
Échec du suivi des mouvements drastiques des prix
Dans les marchés volatils, les indicateurs peuvent devenir inefficaces ou retardés, ce qui empêche la stratégie de suivre les changements de prix dans le temps.
Existence d'un taux d'erreur du signal
Les signaux de négociation basés sur des indicateurs et des modèles, plus ou moins, auront des signaux faux ou manquants.
Résultats de l'évaluation
La stratégie consistant à réaliser simultanément des positions longues et courtes comporte le risque de pertes des deux côtés si les jugements sont erronés.
Risque de surentraînement
Les paramètres trop complexes risquent d'être surajustés et le système doit être simplifié avec un nombre limité de combinaisons de paramètres.
Il reste encore une marge d'optimisation de cette stratégie, principalement dans les aspects suivants:
Ajouter plus de signaux d'indicateur
Outre les indicateurs existants, d'autres indicateurs auxiliaires peuvent être introduits, tels que les canaux BOLL, les indicateurs KD, etc., pour enrichir la référence du système.
Appliquer des modèles d'apprentissage profond
Utiliser des indicateurs simples comme caractéristiques pour former LSTM et autres modèles d'apprentissage en profondeur afin d'améliorer la qualité du signal.
Incorporer des données fondamentales
Ajouter des données macroéconomiques, des informations sur les politiques et d'autres facteurs fondamentaux pour optimiser les décisions à long terme.
Taux de risque et de position
Introduire des stratégies de stop loss, ajuster dynamiquement la taille des positions en fonction de la volatilité du rendement de la stratégie pour contrôler strictement les risques.
Cette stratégie intègre les tendances, les niveaux de support/résistance, les écarts et plusieurs autres indicateurs, en utilisant des méthodes d'apprentissage automatique pour obtenir des solutions de trading quantitatives automatisées et prêtes à l'emploi. Elle présente les avantages de combinaisons d'indicateurs diverses, de paramètres réglables et de signaux automatisés, tout en faisant face à des écarts de suivi, des erreurs de signal, des risques de mix long/short dans une certaine mesure. Il existe encore des directions pour d'autres optimisations en incorporant plus d'indicateurs et de modèles auxiliaires, en combinant des facteurs fondamentaux, en ajustant dynamiquement les positions et ainsi de suite, afin d'obtenir une performance de trading quantitative plus stable, précise et intelligente.
/*backtest start: 2023-01-22 00:00:00 end: 2024-01-28 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title='Ali Jitu Abus', shorttitle='Ali_Jitu_Abis_Strategy', overlay=true, pyramiding=0, initial_capital=1000, currency=currency.USD) //Candle body resistance Channel-----------------------------// len = 34 src = input(close, title="Candle body resistance channel") out = sma(src, len) last8h = highest(close, 13) lastl8 = lowest(close, 13) bearish = cross(close,out) == 1 and falling(close, 1) bullish = cross(close,out) == 1 and rising(close, 1) channel2=input(false, title="Bar Channel On/Off") ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0) ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0) //fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel") //-----------------Support and Resistance RST = input(title='Support / Resistance length:', defval=10) RSTT = valuewhen(high >= highest(high, RST), high, 0) RSTB = valuewhen(low <= lowest(low, RST), low, 0) RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0) RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=0) //--------------------Trend colour ema------------------------------------------------// src0 = close, len0 = input(13, minval=1, title="EMA 1") ema0 = ema(src0, len0) direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0 plot_color = direction > 0 ? lime: direction < 0 ? red : na plot(ema0, title="EMA", style=line, linewidth=1, color = plot_color) //-------------------- ema 2------------------------------------------------// src02 = close, len02 = input(21, minval=1, title="EMA 2") ema02 = ema(src02, len02) direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0 plot_color2 = direction2 > 0 ? lime: direction2 < 0 ? red : na plot(ema02, title="EMA Signal 2", style=line, linewidth=1, color = plot_color2) //=============Hull MA// show_hma = input(false, title="Display Hull MA Set:") hma_src = input(close, title="Hull MA's Source:") hma_base_length = input(8, minval=1, title="Hull MA's Base Length:") hma_length_scalar = input(5, minval=0, title="Hull MA's Length Scalar:") hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length))) plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=2, title="Hull MA") //============ signal Generator ==================================// Period=input('60') ch1 = request.security(syminfo.tickerid, Period, open) ch2 = request.security(syminfo.tickerid, Period, close) longCondition = crossover(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open)) if (longCondition) strategy.entry("BUY", strategy.long) shortCondition = crossunder(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open)) if (shortCondition) strategy.entry("SELL", strategy.short) plot(request.security(syminfo.tickerid, Period, close), color=red, title="Period request.security Close") plot(request.security(syminfo.tickerid, Period, open), color=green, title="Period request.security Open") ///////////////////////////////////////////////////////////////////////////////////////////