
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.
La stratégie est basée sur les points suivants:
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.
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.
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.
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é.
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.
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.
Bien que cette stratégie ait été optimisée de plusieurs façons, elle comporte des risques potentiels:
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.
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.
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.
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.
Il y a un certain nombre d’optimisations possibles dans cette stratégie, principalement dans les domaines suivants:
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.
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.
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.
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.
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.
/*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")
///////////////////////////////////////////////////////////////////////////////////////////