
La stratégie est une stratégie de grille de positions variables suivie par la tendance, qui utilise principalement l’EMA, le RSI et les formes d’absorption pour déterminer la direction de la tendance et le moment d’entrée. La stratégie ajuste les positions de stop loss et de stop loss en fonction de la taille de l’entité de la forme d’absorption, tout en permettant à l’utilisateur de choisir de faire seulement plus, de faire seulement plus ou de faire plus.
La stratégie utilise la ligne EMA de 200 cycles pour juger de la direction de la grande tendance, lorsque le prix est considéré comme étant en tendance à la hausse au-dessus de l’EMA et en tendance à la baisse au-dessous de l’EMA. Le RSI de 9 cycles est utilisé pour juger de la dynamique. Le RSI supérieur à 50 est considéré comme un dynamisme polyvalent et plus petit que 50 est considéré comme un dynamisme aérien.
La position de l’arrêt et de l’arrêt de la stratégie est déterminée en fonction de la taille de l’entité en forme d’absorption. La position de l’arrêt est deux fois celle de l’entité en forme d’absorption, tout en fixant le seuil d’arrêt minimum à 0,3% du prix d’entrée, afin d’éviter que la distance d’arrêt trop petite ne conduise à des arrêts fréquents. La position d’arrêt est le seuil d’arrêt multiplié par le taux d’intérêt et de perte prédéfini, afin de s’assurer que le taux d’intérêt et de perte est fixe.
Suivi de la tendance: la stratégie utilise plusieurs indicateurs pour évaluer la tendance, ce qui permet d’intervenir au début de la formation de la tendance et de capturer la tendance.
Arrêt de perte dynamique: position de l’arrêt de perte est ajustée en fonction de la taille de l’entité en forme d’absorption, l’espace d’arrêt est élargi lorsque la tendance est forte, la portée de l’arrêt est réduite lorsque la tendance est faible, le positionnement est contrôlé de manière flexible.
L’utilisateur peut personnaliser les paramètres tels que la direction de la transaction, les préférences de risque, etc. pour s’adapter aux besoins des différents utilisateurs.
L’offre de MACD comme condition de filtrage des tendances permet de confirmer davantage la force des tendances et d’améliorer le taux de gain d’entrée.
Erreur de jugement de tendance: Bien que la stratégie utilise un jugement combiné de plusieurs indicateurs, il est possible que des erreurs de jugement de tendance se produisent dans certains cas, ce qui entraîne des pertes.
Rétrécissement de l’amplitude: Si l’absorption de l’entité morphologique est plus petite, les distances de rupture et d’arrêt seront très proches, ce qui entraînera une détérioration du rapport profit/perte, ce qui est plus fréquent dans les situations de tremblement de terre.
Optimisation des paramètres: les paramètres optimaux peuvent varier considérablement selon les normes et les périodes, ce qui nécessite un débogage et une optimisation continus par l’utilisateur.
Détermination des tendances: vous pouvez essayer d’introduire plus d’outils de confirmation des tendances, tels que les bandes de Brin, l’indice de direction moyenne (ADX), etc., pour améliorer l’exactitude de la détermination des tendances.
Optimisation de l’arrêt de perte: envisagez d’introduire des indicateurs liés à la volatilité tels que l’ATR, ajustez dynamiquement la distance d’arrêt de perte pour réduire le risque d’une amplitude trop petite.
Gestion des positions: Ajustez dynamiquement la taille des positions en fonction de la force ou de la faiblesse de la tendance, de la rentabilité du compte, etc. Augmentez les positions lorsque la tendance est forte et que les bénéfices sont stables, et réduisez les coûts liés aux transactions fréquentes.
Synergie multicyclique et multivariée: la validation de signaux de tendance à travers les cycles et les variétés améliore les chances de saisie des tendances tout en dispersant les risques d’un seul échantillon ou de cycle.
La stratégie de suivi de la grille de position variable fonctionne bien dans le contexte de la tendance, en déterminant la direction et la force de la tendance à l’aide de plusieurs indicateurs, en ajustant dynamiquement les arrêts de perte et les positions, afin de mieux saisir la tendance et d’obtenir des gains supplémentaires. Cependant, dans le contexte d’une tendance incertaine ou de fluctuations fréquentes, la stratégie fonctionne généralement. Par conséquent, lors de l’utilisation de cette stratégie, il est nécessaire de prêter une attention particulière à la sélection des variétés de tendance et d’ajuster les paramètres en fonction de l’évolution des conditions.
/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © niosupetranmartinez
//@version=5
strategy("Trend Follower Scalping Strategy", overlay=true, process_orders_on_close = true)
// Inputs
emaLen = input(200, 'EMA Length')
rsiLen = input(9, 'RSI Length')
trendDirection = input.string("Both", 'Trend Direction', options=["Long Only", "Short Only", "Both"])
risk_reward_ratio = input(2, 'Risk Reward Ratio')
useMacdFilter = input.bool(true, "Use MACD Filter")
macdTimeframe = input("5", "MACD Timeframe")
// EMA and RSI
ema200 = ta.ema(close, emaLen)
customRsi = ta.rsi(close, rsiLen)
// MACD Filter
[macdLine, signalLine, _] = request.security(syminfo.tickerid, macdTimeframe, ta.macd(close, 12, 26, 9))
// Majority Body Candle Identification Function
isMajorityBodyCandle(candleOpen, candleClose, high, low) =>
bodySize = math.abs(candleClose - candleOpen)
fullSize = high - low
bodySize / fullSize > 0.6
// Engulfing Patterns
isBullishEngulfing = close > open and close[1] < open[1] and (close - open) > (open[1] - close[1]) and isMajorityBodyCandle(open, close, high, low)
isBearishEngulfing = close < open and close[1] > open[1] and (open - close) > (close[1] - open[1]) and isMajorityBodyCandle(open, close, high, low)
// Entry Conditions with MACD Filter
longCondition = close > ema200 and customRsi > 50 and isBullishEngulfing and (not useMacdFilter or macdLine > signalLine)
shortCondition = close < ema200 and customRsi < 50 and isBearishEngulfing and (not useMacdFilter or macdLine < signalLine)
// Trade Execution
var float stopLossPrice = na
var float entryPrice = na
// Long Entry
if (longCondition and (trendDirection == "Long Only" or trendDirection == "Both"))
entryPrice := close
engulfingBodySize = math.abs(close - open)
minimumStopLoss = entryPrice * 0.997
calculatedStopLoss = entryPrice - (engulfingBodySize * 2)
stopLossPrice := calculatedStopLoss < minimumStopLoss ? calculatedStopLoss : minimumStopLoss
risk = entryPrice - stopLossPrice
takeProfitPrice = entryPrice + (risk_reward_ratio * risk)
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", "Long", stop = stopLossPrice, limit = takeProfitPrice)
// Short Entry
if (shortCondition and (trendDirection == "Short Only" or trendDirection == "Both"))
entryPrice := close
engulfingBodySize = math.abs(open - close)
minimumStopLoss = entryPrice * 1.003
calculatedStopLoss = entryPrice + (engulfingBodySize * 2)
stopLossPrice := calculatedStopLoss > minimumStopLoss ? calculatedStopLoss : minimumStopLoss
risk = stopLossPrice - entryPrice
takeProfitPrice = entryPrice - (risk_reward_ratio * risk)
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", "Short", stop = stopLossPrice, limit = takeProfitPrice)
// Plotting
plot(ema200, color=color.blue, linewidth=2, title="EMA 200")