Stratégies de trading d'apprentissage automatique prêtes à l'emploi


Date de création: 2024-01-29 11:20:42 Dernière modification: 2024-01-29 11:20:42
Copier: 0 Nombre de clics: 723
1
Suivre
1617
Abonnés

Stratégies de trading d’apprentissage automatique prêtes à l’emploi

Aperçu

Cette stratégie utilise des méthodes d’apprentissage automatique pour réaliser une stratégie de trading automatisée et prête à l’emploi. Elle intègre plusieurs indicateurs et modèles qui peuvent générer automatiquement des signaux de trading et effectuer des opérations d’achat et de vente en fonction des signaux.

Principe de stratégie

La stratégie est basée sur les points suivants:

  1. L’utilisation de la ligne moyenne de la coque pour déterminer la direction de la tendance du marché
  2. Utilisation de l’EMA pour déterminer les tendances à court et à moyen terme
  3. Utilisation du canal de l’entité K pour déterminer les positions de SUPPORT/RESISTANCE
  4. Prise de décision à l’aide d’un croisement entre le prix d’ouverture et le prix de clôture d’une SECURITY à cycle multiple

Plus précisément, la stratégie trace la courbe moyenne de la coque, l’EMA à 13 cycles et l’EMA à 21 cycles. La direction de la tendance à court et à moyen terme est déterminée par l’état vide de l’EMA. La courbe moyenne de la coque, combinée à la courbe moyenne de la coque, détermine la tendance à des périodes plus longues.

Avant d’ajuster la position, la stratégie se réfère aux niveaux de support et de résistance correspondant aux prix les plus élevés et les plus bas dans le canal de l’entité. Cela permet d’éviter de générer des signaux de transaction dans les zones de prix critiques.

Enfin, la stratégie appelle le prix d’ouverture et le prix de clôture de 60 cycles, générant un signal d’achat lorsque le prix de clôture traverse le prix d’ouverture et un signal de vente lorsque le prix de clôture traverse le prix de vente. C’est ainsi que la logique de la transaction est terminée.

Analyse des forces stratégiques

Le plus grand avantage de cette stratégie réside dans la combinaison de l’apprentissage automatique et des indicateurs d’analyse technique pour un programme de trading automatisé logiquement clair, paramétrable et facile à utiliser.

  1. Combinaison de plusieurs indicateurs pour une meilleure précision du signal

Au lieu de se fier à un ou deux indicateurs, la stratégie prend en compte des facteurs tels que la tendance, la résistance au support et la rupture de prix, ce qui améliore considérablement la fiabilité et l’exactitude du signal.

  1. Réglages de paramètres flexibles

La longueur de la ligne moyenne de la coque, le nombre de cycles EMA et le nombre de cycles de clôture et de clôture peuvent être ajustés par des paramètres, ce qui permet à la stratégie de s’adapter de manière flexible à différents environnements de marché.

  1. Signaux de négociation automatisés

Les signaux de transaction basés sur les indicateurs et les prix croisés peuvent déclencher automatiquement des achats et des ventes, sans jugement manuel, ce qui réduit la difficulté d’opération.

  1. Présentation visualisée

Les graphiques de stratégie permettent de montrer clairement la structure du marché, l’état des tendances et les prix clés, montrant intuitivement la base de décision de la stratégie.

Analyse des risques

Bien que cette stratégie ait été optimisée de plusieurs façons, elle comporte des risques potentiels:

  1. Le nombre d’accidents est trop élevé pour être suivi.

Dans des situations de fortes fluctuations des prix, l’indicateur peut être inefficace ou retardé, ce qui empêche la stratégie de suivre en temps opportun les variations des prix. Il est nécessaire d’optimiser les paramètres pour s’adapter à cette situation.

  1. Le taux d’erreur du signal existe

Les signaux de transaction basés sur des indicateurs et des modèles peuvent être plus ou moins faussés ou omis. Cela nécessite d’améliorer la qualité du signal en combinant plus de signaux auxiliaires.

  1. Risques liés au MIX multiespace

La stratégie consiste à faire beaucoup de shorting en même temps et à prendre le risque de perdre dans les deux sens s’il est mal jugé. Cela nécessite un contrôle strict des pertes de coupe ou de la réduction de la position.

  1. Risques de sur-optimisation

La configuration des paramètres est trop complexe et risque d’être sur-optimisée. Cela nécessite une simplification du système et un contrôle du nombre de combinaisons de paramètres.

Orientation de l’optimisation de la stratégie

Il y a un certain nombre d’optimisations possibles dans cette stratégie, principalement dans les domaines suivants:

  1. Ajouter d’autres signaux

En plus des indicateurs existants, il est possible d’introduire d’autres indicateurs auxiliaires, tels que le canal BOLL, l’indicateur KD, etc., pour enrichir le système de base de jugement.

  1. Utilisation de modèles d’apprentissage en profondeur

Utilisez des indicateurs simples comme caractéristiques et entraînez des modèles d’apprentissage en profondeur tels que LSTM pour améliorer la qualité du signal.

  1. Combiné avec des données de base

Ajouter des éléments de base tels que des données macroéconomiques et des informations politiques pour optimiser la prise de décision à grande échelle.

  1. Gestion des risques et des positions

Introduction d’une stratégie de stop loss, ajustement dynamique de la taille des positions en fonction de la volatilité des gains de la stratégie et contrôle strict du risque.

Résumer

Cette stratégie intègre plusieurs indicateurs tels que la tendance, la résistance au support et la rupture, permettant un système de trading quantifié prêt à l’emploi pour l’automatisation à l’aide d’une méthode d’apprentissage automatique. Elle présente des avantages tels que la diversité des portefeuilles d’indicateurs, l’ajustabilité des paramètres et l’automatisation des signaux, mais elle est également confrontée à certains problèmes tels que le décalage de suivi, l’erreur de signal et la multirôle MIX.

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

///////////////////////////////////////////////////////////////////////////////////////////