
Cette stratégie est une stratégie de suivi de tendance simple mais rentable, qui est basée sur le croisement de la ligne TENKAN et de la ligne KIJUN du système d’identification ICHIMOKU sur une période d’une heure pour juger de la direction de la tendance et, combinée à l’indicateur ADX pour filtrer les marchés à tendance plus faible afin d’émettre un signal de négociation. La stratégie s’applique principalement aux paires de négociation de BTC pour les altcoins de grande valeur telles que ETH/BTC.
La stratégie utilise le croisement de la ligne de conversion (TENKAN) et de la ligne de base (KIJUN) du diagramme ICHIMOKU pour déterminer la direction de la tendance du marché. La ligne TENKAN est la moyenne des hauts et des bas des 18 dernières lignes K, représentant la ligne de conversion rapide; la ligne KIJUN est la moyenne des hauts et des bas des 58 dernières lignes K, représentant la ligne de conversion standard.
Lorsque la ligne de conversion rapide traverse la ligne de conversion standard par le bas, c’est un signal positif; lorsque la ligne de conversion rapide traverse la ligne de conversion standard par le haut, c’est un signal négatif. Cela permet de capturer le revirement de la tendance à court et moyen terme.
La stratégie utilise également l’indicateur ADX pour filtrer la force de la tendance du marché. L’indicateur ADX permet de juger de la force de la tendance, indiquant que la tendance actuelle est forte lorsque l’ADX est supérieur à 20. La stratégie n’émet donc un signal de négociation que lorsque l’ADX est supérieur à 20.
Dans l’ensemble, la stratégie utilise la ligne TENKAN et la ligne KIJUN pour déterminer la direction de la tendance à court et moyen terme, en combinaison avec le filtrage de la fausse rupture de l’indicateur ADX, afin de localiser la tendance réelle et de suivre la tendance à long et moyen terme.
La stratégie présente les principaux avantages suivants:
Le système d’indicateurs ICHIMOKU est déjà assez mature et fiable pour déterminer avec précision les points de basculement des tendances.
En combinaison avec le filtre de l’indicateur ADX pour un marché de réglage d’une faible intensité, éviter de négocier fréquemment lors de la liquidation.
La stratégie de développement d’une ligne d’une heure permet de filtrer le bruit du marché à court terme et de ne capturer que les tendances à moyen et long terme.
Les stratégies sont simples, intuitives, faciles à comprendre et à suivre, adaptées aux personnes qui suivent les tendances.
La rétrospective stratégique a eu un effet positif, en particulier sur les paires de devises les plus importantes telles que ETH/BTC.
Cette stratégie comporte également des risques à prendre en compte:
Les diagrammes de nuages ICHIMOKU sont eux-mêmes sensibles aux paramètres, et les paramètres de périodes varient considérablement, ce qui nécessite de personnaliser les paramètres optimaux pour les paires de pièces différentes.
L’indicateur ADX peut être retardé dans certains cas, ce qui peut entraîner la perte du meilleur moment d’entrée.
Les stratégies de suivi des courbes longues et moyennes ne fonctionnent pas bien en cas de choc et sont facilement perturbées.
La stratégie peut varier considérablement selon les paires de devises et les périodes de temps, et doit être utilisée en fonction de la variété dans laquelle on est bon.
Les positions à long terme sont risquées et nécessitent des conditions de stop loss et de stop-loss appropriées.
La stratégie peut aider à filtrer le signal en ajustant les paramètres ADX ou en ajoutant d’autres indicateurs tels que MACD, afin de réduire les signaux virtuels et d’améliorer la stabilité de la stratégie. La stratégie peut également être modifiée dynamiquement pour obtenir une meilleure robustesse en ajustant les paramètres pour s’adapter à différents types de situations.
Les principales améliorations apportées à cette stratégie sont les suivantes:
Optimisation dynamique des paramètres des lignes TENKAN et KIJUN afin de mieux les adapter aux conditions en temps réel et aux différentes devises.
Optimiser ou remplacer l’indicateur ADX pour trouver des moyens plus sensibles et plus efficaces de détecter les tendances.
En ajoutant une stratégie de stop-loss, vous contrôlez le rapport risque/bénéfice d’une transaction et évitez les pertes massives.
Optimisation du portefeuille, recherche d’indicateurs complémentaires pour former une stratégie d’intégration et améliorer la stabilité.
La modularisation de la structure du code, l’augmentation de la flexibilité des paramètres personnalisés, et l’adaptation à plus de variétés.
L’ajout de mesures quantitatives de contrôle des risques, telles que le retrait maximal, les coefficients pertinents, etc., pour prévenir les risques de comportements extrêmes.
Dans l’ensemble, la stratégie est une stratégie de suivi de tendance simple et pratique. Elle est principalement basée sur le croisement de l’indicateur TENKAN KIJUN avec l’indicateur ADX pour déterminer la direction de la tendance de la ligne médiane et émettre un signal de négociation.
/*backtest
start: 2023-11-07 00:00:00
end: 2023-12-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title="Odin's Kraken (TK Cross Strategy)", shorttitle="Odin's Kraken", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
src = input(close, title="Source")
// define tk in ichimoku
conversionPeriods = input(18, minval=1, title="Conversion Line Periods (Tenkan)"),
basePeriods = input(58, minval=1, title="Base Line Periods (Kijun)")
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
TK_Uptrend = crossover(conversionLine,baseLine)
TK_Downtrend = crossunder(conversionLine,baseLine)
plot(conversionLine, color=lime, title="Tenkan", linewidth=3)
plot(baseLine, color=red, title="Kijun", linewidth=3)
// define ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
th = input(title="threshold", defval=20)
dirmov(len) =>
up = change(high)
down = -change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
truerange = rma(tr, len)
plus = fixnan(100 * rma(plusDM, len) / truerange)
minus = fixnan(100 * rma(minusDM, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
[plus, minus] = dirmov(dilen)
sig = adx(dilen, adxlen)
// backtesting range
// From Date Inputs
fromDay = input(defval = 3, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2018, title = "From Year", minval = 1970)
// To Date Inputs
toDay = input(defval = 3, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 9, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2019, title = "To Year", minval = 1970)
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
// open long and short
longCondition = TK_Uptrend
if (longCondition and sig > 12 and time_cond)
strategy.entry("LONG", strategy.long)
shortCondition = TK_Downtrend
if (shortCondition and sig > 12 and time_cond)
strategy.entry("SHORT", strategy.short)
// close trade if backtesting criteria not met
if (not time_cond)
strategy.close_all()