
Aperçu
La stratégie de détection de tendance G-Channel est une stratégie de négociation quantitative basée sur les indicateurs de la chaîne G. La stratégie génère un signal d’achat et de vente en calculant les extrémités hautes et basses de la chaîne G et en jugeant la tendance actuelle du marché en fonction de l’intersection du prix avec la ligne de parité de la chaîne G.
Principe de stratégie
- Calculer les extrêmes a et b du canal G, où a est la différence entre le plus élevé historique et le plus bas historique a et b, divisé par le nombre de cycles, b est la différence entre le plus bas historique a et b, divisé par le nombre de cycles.
- Calculer la moyenne de la ligne avg du canal G, soit a + b / 2.
- Pour juger de l’intersection entre le prix et la valeur b, si le prix est supérieur à la valeur b, on considère qu’il y a une tendance haussière; si le prix est inférieur à la valeur a, on considère qu’il y a une tendance baissière.
- Dans une tendance haussière, un signal d’achat est généré si la ligne K précédente est à la baisse et que la ligne K actuelle est à la hausse. Dans une tendance baissière, un signal de vente est généré si la ligne K précédente est à la hausse et que la ligne K actuelle est à la baisse.
- Réglez le stop loss condition, lorsque vous détenez des positions multiples, le prix d’arrêt est le prix d’achat multiplié par ((1 + Stop Loss ratio), le stop loss est le prix d’achat multiplié par ((1- Stop Loss ratio); lorsque vous détenez des positions vides, le stop loss est le prix de vente multiplié par (((1- Stop Loss ratio), le stop loss est le prix de vente multiplié par ((1 + Stop Loss ratio)).
Avantages stratégiques
- L’indicateur G-channel capte efficacement les tendances du marché, génère des signaux d’achat et de vente par la croisée des prix avec la ligne de parité de la chaîne G, simple et facile à utiliser.
- Les paramètres Stop Loss permettent de contrôler efficacement le risque et d’éviter des pertes excessives sur une seule transaction.
- La logique de la stratégie est claire, facile à comprendre et à mettre en œuvre, adaptée aux débutants en trading quantitatif.
Risque stratégique
- L’indicateur G-channel peut générer de nombreux faux signaux sur les événements de choc du marché, ce qui entraîne des transactions fréquentes et des coûts de point de glissement plus élevés.
- Les paramètres du Stop Loss Ratio doivent être ajustés en fonction des caractéristiques du marché et des préférences de risque individuelles, et un paramètre inapproprié peut entraîner des rendements stratégiques médiocres.
- La stratégie ne prend pas en compte les spécificités de la variété de transactions, telles que les éventuelles suspensions de la stratégie d’actions, les arrêts de chute, etc., ce qui nécessite une optimisation supplémentaire.
Orientation de l’optimisation de la stratégie
- Il est possible d’essayer d’introduire d’autres indicateurs techniques, tels que l’ATR, le RSI, etc., pour une confirmation secondaire du signal généré par l’indicateur du canal G, afin d’améliorer la fiabilité du signal.
- Pour ce qui est du stop loss ratio, il est possible d’adopter une méthode d’ajustement dynamique, en s’adaptant à des facteurs tels que la volatilité du marché et le temps de maintien des positions, afin d’améliorer l’adaptabilité de la stratégie.
- En fonction des caractéristiques de la variété de transaction, il est possible d’ajouter un module de contrôle de vent correspondant, par exemple, pour la stratégie d’actions, la logique de traitement des situations spéciales telles que l’arrêt de la carte, l’arrêt de la baisse peut être configurée.
Résumer
La stratégie de détection de tendance G-Channel est une stratégie de trading simple et quantifiée basée sur les indicateurs de la chaîne G, qui génère des signaux d’achat et de vente en capturant les tendances du marché et en réglant les conditions de contrôle des risques de stop loss. La logique de la stratégie est claire, facile à mettre en œuvre et adaptée à l’apprentissage des novices en trading quantifié.
Code source de la stratégie
//@version=5
// Full credit to AlexGrover: https://www.tradingview.com/script/fIvlS64B-G-Channels-Efficient-Calculation-Of-Upper-Lower-Extremities/
strategy("G-Channel Trend Detection Strategy", shorttitle="G-Trend", overlay=true)
// Input parameters
length = input.int(100, title="Length")
src = input(close, title="Source")
take_profit_percent = input.float(5.0, title="Take Profit (%)")
stop_loss_percent = input.float(2.0, title="Stop Loss (%)")
showcross = input.bool(true, title="Show Cross")
// Initialize variables
var float a = na
var float b = na
// Calculate a and b
a := math.max(src, nz(a[1])) - (nz(a[1]) - nz(b[1])) / length
b := math.min(src, nz(b[1])) + (nz(a[1]) - nz(b[1])) / length
// Calculate average
avg = (a + b) / 2
// Determine trend and color
crossup = ta.crossunder(b, close)
crossdn = ta.crossunder(a, close)
bullish = ta.barssince(crossdn) <= ta.barssince(crossup)
c = bullish ? color.lime : color.red
// Plotting
p1 = plot(avg, "Average", color=c, linewidth=1)
p2 = plot(close, "Close price", color=c, linewidth=1)
fill(p1, p2, c)
// Generate buy and sell signals
buy_signal = showcross and bullish and not bullish[1]
sell_signal = showcross and not bullish and bullish[1]
// Plot buy and sell signals on chart
plotshape(buy_signal ? avg : na, location=location.belowbar, style=shape.labeldown, color=color.new(color.lime, 0), size=size.tiny, text="Buy", textcolor=color.white, offset=-1)
plotshape(sell_signal ? avg : na, location=location.abovebar, style=shape.labelup, color=color.new(color.red, 0), size=size.tiny, text="Sell", textcolor=color.white, offset=-1)
// Alerts
alertcondition(buy_signal, title="Buy Signal", message="Buy Signal Detected")
alertcondition(sell_signal, title="Sell Signal", message="Sell Signal Detected")
// Calculate take profit and stop loss levels
take_profit_level = close * (1 + take_profit_percent / 100)
stop_loss_level = close * (1 - stop_loss_percent / 100)
// Strategy Entry and Exit
if (buy_signal)
strategy.entry("Buy", strategy.long)
if (sell_signal)
strategy.entry("Sell", strategy.short)
// Define the take profit and stop loss conditions for long positions
strategy.exit("Take Profit/Stop Loss", "Buy", limit=take_profit_level, stop=stop_loss_level)
// Define the take profit and stop loss conditions for short positions
strategy.exit("Take Profit/Stop Loss", "Sell", limit=close * (1 - take_profit_percent / 100), stop=close * (1 + stop_loss_percent / 100))