
La stratégie de suivi de la tendance de la chaîne celtique de Gold Cross est une stratégie qui consiste à négocier uniquement dans la direction de la tendance. Elle combine la chaîne celtique de Gold Cross et la chaîne celtique de la moyenne mobile comme signal d’entrée pour capturer la direction de la tendance.
La stratégie utilise deux moyennes mobiles, les moyennes mobiles à court terme et les moyennes mobiles à long terme, pour déterminer la direction de la tendance en formant une croix d’or et une croix de mort. En même temps, elle utilise des multiples définis par l’utilisateur pour tracer les hauts et les bas des canaux celtiques et générer un signal de transaction lorsque le prix franchit le canal.
Plus précisément, la stratégie détermine d’abord si la moyenne mobile à long terme se trouve au-dessus de la moyenne mobile à court terme, et si c’est le cas, elle est croisée pour l’or, jugée comme une tendance à la hausse; si la moyenne mobile à court terme se trouve en dessous de la moyenne mobile à long terme, elle est croisée pour la mort, jugée comme une tendance à la baisse.
Sur la base des jugements de tendance, si le prix se déplace vers le haut, il génère un signal de coupe; si le prix se déplace vers le bas, il génère un signal de coupe. L’utilisateur peut ajuster lui-même la période de la moyenne mobile et la largeur de la voie, afin d’ajuster les paramètres de la stratégie.
Une fois entré dans le jeu, la stratégie utilise le multiplicateur ATR de stop-loss défini par l’utilisateur pour régler le stop-loss. En même temps, la stratégie fournit des conditions supplémentaires de stop-loss et de stop-loss de rupture, permettant un contrôle plus flexible des positions.
Cette stratégie, combinant les avantages du suivi des tendances et des ruptures de canaux, permet de déterminer efficacement les tendances du marché et de saisir les opportunités de tendances. Les avantages spécifiques sont les suivants:
L’utilisation de la croix d’or pour déterminer la direction de la tendance permet de filtrer efficacement les transactions bruyantes qui ne correspondent pas à la grande tendance.
La rupture du canal celtique, combinée à la détermination de la direction de la tendance, peut améliorer l’exactitude du moment de l’entrée en bourse.
Le système de stop-loss permet de verrouiller les bénéfices et de contrôler activement les risques.
Les paramètres de la stratégie peuvent être ajustés de manière flexible pour s’adapter à différentes variétés et environnements de marché.
Il est possible de faire plus de blanchiment en même temps, ce qui élargit le champ d’application de la stratégie.
Bien que cette stratégie présente de nombreux avantages, elle comporte certains risques à prendre en compte:
Il y a un certain risque de rater une occasion de revenir en arrière.
Si la tendance majeure change, il y a un risque de perte négative.
Une mauvaise configuration des paramètres peut entraîner des transactions trop laxistes ou trop fréquentes.
Il faut prendre un certain risque pour passer la nuit.
Il existe un certain risque de correspondance de la courbe.
Pour cela, il est possible de réduire le risque en optimisant les paramètres, en ajustant le cycle de la moyenne mobile au moment opportun ou en réduisant la taille de la position de manière appropriée.
Il y a encore de la place pour optimiser cette stratégie:
On peut envisager d’ajouter plus d’indicateurs de jugement, de former des modèles multifactoriels, d’améliorer l’exactitude de la stratégie. Par exemple, ajouter le MACD, le RSI, etc.
Les paramètres peuvent être optimisés en fonction de l’apprentissage automatique pour mieux s’adapter aux différents environnements de marché.
On peut envisager d’ajuster dynamiquement les conditions d’arrêt et de perte pour obtenir de plus gros bénéfices en garantissant des bénéfices.
La taille de la position peut être ajustée en fonction de la dynamique de la volatilité.
Étudier les préférences paramétriques des différentes variétés et créer des combinaisons de paramètres adaptées aux différentes variétés.
Ajout de mécanismes de réduction de la fréquence des transactions pour réduire l’impact des frais de transaction.
La stratégie de suivi de la tendance de la chaîne Celtic Gold Cross est une stratégie de suivi de la tendance relativement stable et fiable dans l’ensemble. Elle combine les avantages du jugement de la tendance et de la rupture de la chaîne pour identifier efficacement la direction de la tendance du marché et choisir des opportunités de trading à forte probabilité.
/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © OversoldPOS
//@version=5
// strategy("Keltner Channel Strategy by OversoldPOS", overlay=true,initial_capital = 100000,default_qty_type = strategy.percent_of_equity,default_qty_value = 10, commission_type = strategy.commission.cash_per_order, commission_value = 7)
// Parameters
length = input(21, title="MA Length")
Entrymult = input(1, title="Entry ATR")
profit_mult = input(4, title="Profit Taker")
exit_mult = input(-1, title="Exit ATR")
// Moving Average Type Input
ma_type = input.string("SMA", title="Moving Average Type", options=["SMA", "EMA", "WMA"])
// Calculate Keltner Channels for different ATR multiples
atr_value = ta.atr(length)
basis = switch ma_type
"SMA" => ta.sma(close, length)
"EMA" => ta.ema(close, length)
"WMA" => ta.wma(close, length)
//
EntryKeltLong = basis + Entrymult * ta.atr(10)
EntryKeltShort = basis - Entrymult * ta.atr(10)
upper_channel1 = basis + 1 * ta.atr(10)
lower_channel1 = basis - 1 * ta.atr(10)
upper_channel2 = basis + 2 * ta.atr(10)
lower_channel2 = basis - 2 * ta.atr(10)
upper_channel3 = basis + 3 * ta.atr(10)
lower_channel3 = basis - 3 * ta.atr(10)
upper_channel4 = basis + 4 * ta.atr(10)
lower_channel4 = basis - 4 * ta.atr(10)
// Entry condition parameters
long_entry_condition = input(true, title="Long Positions")
short_entry_condition = input(true, title="Enable Short Positions")
// Additional conditions for long and short entries
is_long_entry = ta.ema(close, 20) > ta.ema(close, 50)
is_short_entry = ta.ema(close, 20) < ta.ema(close, 50)
// Additional conditions for long and short entries
MAShort = input(50, title="Short MA for Golden Cross")
MALong = input(200, title="Long MA for Golden Cross")
is_long_entry2 = ta.ema(close, MAShort) > ta.ema(close, MALong)
is_short_entry2 = ta.ema(close, MAShort) < ta.ema(close, MALong)
// Exit condition parameters
long_exit_condition1_enabled = input(true, title="Enable Long Profit Taker")
long_exit_condition2_enabled = input(true, title="Enable Long Stop")
short_exit_condition1_enabled = input(true, title="Enable Short Profit Taker")
short_exit_condition2_enabled = input(true, title="Enable Short Stop")
// Take Profit condition parameters
take_profit_enabled = input(true, title="Enable Take Profit Condition")
Takeprofit = basis + profit_mult * atr_value
STakeprofit = basis - profit_mult * atr_value
// Long entry condition
long_condition = long_entry_condition and ta.crossover(close, EntryKeltLong) and is_long_entry2
// Short entry condition
short_condition = short_entry_condition and ta.crossunder(close, EntryKeltShort) and is_short_entry2
// Exit conditions
long_exit_condition1 = long_exit_condition1_enabled and close > Takeprofit
long_exit_condition2 = long_exit_condition2_enabled and close < basis + exit_mult * atr_value
short_exit_condition1 = short_exit_condition1_enabled and close < STakeprofit
short_exit_condition2 = short_exit_condition2_enabled and close > basis - exit_mult * atr_value
// Strategy logic
if (long_condition)
strategy.entry("Long", strategy.long)
if (short_condition)
strategy.entry("Short", strategy.short)
if (long_exit_condition1 or long_exit_condition2)
strategy.close("Long")
if (short_exit_condition1 or short_exit_condition2)
strategy.close("Short")
// Moving Averages
var float MA1 = na
var float MA2 = na
if (ma_type == "SMA")
MA1 := ta.sma(close, MAShort)
MA2 := ta.sma(close, MALong)
else if (ma_type == "EMA")
MA1 := ta.ema(close, MAShort)
MA2 := ta.ema(close, MALong)
else if (ma_type == "WMA")
MA1 := ta.wma(close, MAShort)
MA2 := ta.wma(close, MALong)
// Plotting Keltner Channels with adjusted transparency
transparentColor = color.rgb(255, 255, 255, 56)
plot(upper_channel1, color=transparentColor, title="Upper Channel 1")
plot(lower_channel1, color=transparentColor, title="Lower Channel 1")
plot(upper_channel2, color=transparentColor, title="Upper Channel 2")
plot(lower_channel2, color=transparentColor, title="Lower Channel 2")
plot(upper_channel3, color=transparentColor, title="Upper Channel 3")
plot(lower_channel3, color=transparentColor, title="Lower Channel 3")
plot(upper_channel4, color=transparentColor, title="Upper Channel 4")
plot(lower_channel4, color=transparentColor, title="Lower Channel 4")
plot(basis, color=color.white, title="Basis")
plot(MA1, color=color.rgb(4, 248, 216), linewidth=2, title="Middle MA")
plot(MA2, color=color.rgb(220, 7, 248), linewidth=2, title="Long MA")