Cette stratégie s'appelle
Cette stratégie utilise à la fois l'indicateur de double vortex et l'indice de force réelle (ITS). L'indicateur de double vortex se compose de lignes VI+ et VI-, reflétant respectivement l'ampleur de la dynamique ascendante et descendante.
Lorsque VI+ augmente et VI- diminue, ce qui indique un renforcement de la tendance haussière et un affaiblissement de l'élan de la tendance baissière, l'indicateur à double vortex génère un signal long. Si en même temps, la ligne bleue TSI traverse la ligne rouge, TSI émet également un signal long. La stratégie ouvrira une position longue lorsque les deux indicateurs émettent des signaux longs simultanément.
À l'inverse, lorsque VI+ chute et VI- augmente, signalant une diminution de la dynamique à la hausse et un renforcement de la dynamique à la baisse, le double vortex émet un signal court. Si la ligne bleue TSI traverse également en dessous de la ligne rouge, la TSI produit également un signal court. La stratégie ouvre alors une position courte en recevant des signaux courts alignés.
En combinant les signaux des deux indicateurs de cette façon, la stratégie est capable d'identifier et de suivre les tendances naissantes à moyen et long terme. Les signaux de sortie sont générés lorsque les tendances se terminent. Ainsi, cette stratégie peut capturer efficacement les grands mouvements de tendance sur le marché.
Les principaux avantages de cette stratégie sont les suivants:
Il existe également certains risques:
Certaines façons d'optimiser la stratégie comprennent:
En résumé, cette stratégie est une excellente approche de suivi des tendances à moyen et long terme. En tirant parti des techniques de double indicateur de vortex et de TSI, elle peut reconnaître de manière fiable les tendances émergentes à moyen et long terme. Avec un ajustement approprié des paramètres, les risques par transaction peuvent être gérés. Des optimisations supplémentaires en incorporant plus d'indicateurs et de techniques de contrôle des risques conduiraient à une meilleure performance.
/*backtest start: 2023-11-11 00:00:00 end: 2023-12-11 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/ // © hydrelev //@version=4 strategy("Vortex TSI strategy", overlay=false) ///////////////////INDICATOR TSI long = input(title="Long Length", type=input.integer, defval=25) short = input(title="Short Length", type=input.integer, defval=13) signal = input(title="Signal Length", type=input.integer, defval=13) price = close double_smooth(src, long, short) => fist_smooth = ema(src, long) ema(fist_smooth, short) pc = change(price) double_smoothed_pc = double_smooth(pc, long, short) double_smoothed_abs_pc = double_smooth(abs(pc), long, short) tsi_blue = 100 * (double_smoothed_pc / double_smoothed_abs_pc) tsi_red = ema(tsi_blue, signal) // plot(tsi_blue, color=#3BB3E4) // plot(tsi_red, color=#FF006E) // hline(0, title="Zero") /////////////////INDICATOR VI period_ = input(14, title="Period", minval=2) VMP = sum( abs( high - low[1]), period_ ) VMM = sum( abs( low - high[1]), period_ ) STR = sum( atr(1), period_ ) VIP_blue = VMP / STR VIM_red = VMM / STR // plot(VIP_blue, title="VI +", color=#3BB3E4) // plot(VIM_red, title="VI -", color=#FF006E) ////////////////////STRATEGY bar=input(1, title="Close after x bar", minval=1, maxval=50) tsi_long = crossover(tsi_blue, tsi_red) tsi_short = crossunder(tsi_blue, tsi_red) vi_long = crossover(VIP_blue, VIM_red) vi_short = crossunder(VIP_blue, VIM_red) LongConditionOpen = tsi_long and vi_long ? true : false LongConditionClose = tsi_long[bar] and vi_long[bar] ? true : false ShortConditionOpen = tsi_short and vi_short ? true : false ShortConditionClose = tsi_short[bar] and vi_short[bar] ? true : false if (LongConditionOpen) strategy.entry("Long Entry", strategy.long) if (LongConditionClose) strategy.close("Long Entry") if (ShortConditionOpen) strategy.entry("Short Entry", strategy.short) if (ShortConditionClose) strategy.close("Short Entry")