Cette stratégie est une stratégie de courte ligne basée sur un indicateur de super-tendance qui s’applique aux transactions intradays. L’utilisateur peut définir une période de négociation intraday pendant laquelle la stratégie ne fonctionne que pendant cette période.
Calculer l’indicateur de super-tendance. Calculer la ligne de super-tendance en fonction des multiples et des cycles ATR définis par l’utilisateur.
Dessiner une ligne de super-tendance. Dessiner une ligne de super-tendance comme ligne de support et de résistance.
Déterminer les conditions longues et courtes. Le prix de clôture est supérieur à la ligne de tendance super pour les conditions de plus, et le prix de clôture est inférieur à la ligne de tendance super pour les conditions de moins.
Détermination du moment de la transaction. Selon le moment de la journée défini par l’utilisateur, déterminer si le prix actuel est dans le moment de la transaction.
Un signal de transaction est émis. Un signal d’achat ou de vente correspondant est émis uniquement dans la période de négociation et lorsque les conditions de marge supplémentaire sont remplies.
Le double de la quantité est utilisé pour inverser la position lorsque l’indicateur de super-tendance change de direction.
La position est forcée à la fin de la période de négociation lorsque le signal de tendance supérieure est inchangé.
L’utilisation d’indicateurs de super-tendance pour identifier les tendances peut réduire les faux signaux.
Il est possible de négocier avec l’indicateur de tendance supérieure et le cours de clôture pour éviter d’être pris au dépourvu.
La rétrogradation permet de réduire les pertes.
Le risque de transaction de nuit est évité en négociant pendant la journée.
La mise en place d’un mécanisme de liquidation obligatoire peut éviter le risque d’oublier la liquidation.
Une mauvaise définition des paramètres de l’indicateur de super-tendance peut entraîner une mauvaise efficacité de la stratégie.
La rétrogradation augmente la fréquence et les frais de transaction.
La clôture forcée de la position à la fin de la journée peut entraîner des pertes.
Le risque 1 permet de trouver la combinaison optimale de paramètres en optimisant les paramètres.
Le risque 2 peut être réglé avec un stop loss pour contrôler les pertes.
Le risque 3 permet de mettre en place des arrêts de perte ou d’utiliser des filtres de tendance pour éviter les pertes forcées.
Essayez différents indicateurs de tendance, tels que MA, KDJ et ainsi de suite.
Ajout de logique de stop-loss.
Il est également possible d’augmenter le filtrage des tendances pour éviter les pertes forcées.
Optimiser les paramètres de multiplication et de cycle ATR.
Testez différentes variétés de transactions.
La stratégie intègre des indicateurs de super-tendance et une gestion de la période de négociation intra-journée pour capturer les ruptures de tendance de la courte ligne. Les mécanismes d’ouverture de position inversée et de placement forcé de la position fermée permettent de contrôler efficacement le risque. L’efficacité de la stratégie peut ensuite être améliorée par l’optimisation des paramètres, les arrêts de perte et le filtrage de la tendance.
/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 1h
basePeriod: 15m
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/
// © Pritesh-StocksDeveloper
//@version=4
strategy("Supertrend - Intraday", overlay=true, calc_on_every_tick = true)
// ********** Strategy inputs - Start **********
// Used for intraday handling
// Session value should be from market start to the time you want to square-off
// your intraday strategy
// Important: The end time should be at least 2 minutes before the intraday
// square-off time set by your broker
var i_marketSession = input(title="Market session", type=input.session,
defval="0915-1455", confirm=true)
var float i_multiplier = input(title = "Multiplier", type = input.float,
defval = 4, confirm=true)
var int i_atrPeriod = input(title = "ATR Period", type = input.integer,
defval = 14, confirm=true)
// ********** Strategy inputs - End **********
// ********** Supporting functions - Start **********
// A function to check whether the bar or period is in intraday session
barInSession(sess) => time(timeframe.period, sess) != 0
// ********** Supporting functions - End **********
// ********** Strategy - Start **********
[superTrend, dir] = supertrend(i_multiplier, i_atrPeriod)
colResistance = dir == 1 and dir == dir[1] ? color.new(color.red, 0) : color.new(color.red, 100)
colSupport = dir == -1 and dir == dir[1] ? color.new(color.green, 0) : color.new(color.green, 100)
plot(superTrend, color = colResistance, linewidth=2)
plot(superTrend, color = colSupport, linewidth=2)
// Long/short condition
longCondition = close > superTrend
shortCondition = close < superTrend
// See if intraday session is active
bool intradaySession = barInSession(i_marketSession)
// Trade only if intraday session is active
// Long position
// When longCondition and intradaySession both are true
strategy.entry(id = "Long", long = strategy.long,
when = longCondition and intradaySession)
// Short position
// When shortCondition and intradaySession both are true
strategy.entry(id = "Short", long = strategy.short,
when = shortCondition and intradaySession)
// Square-off position (when session is over and position is open)
squareOff = (not intradaySession) and (strategy.position_size != 0)
strategy.close_all(when = squareOff, comment = "Square-off")
// ********** Strategy - End **********