
Cette stratégie est une stratégie similaire à celle du Grid Bot, principalement utilisée pour les transactions algorithmiques. Elle utilise une grille Grid dynamique, à intervalles inégaux, calculée en fonction du volume des transactions, et ne met à jour la grille que lorsque le RSI répond à des conditions spécifiques.
En bref, la stratégie met à jour la grille en fonction du prix le plus élevé/le plus bas calculé en fonction du volume de transactions pour chaque fois que le RSI traverse la ligne de signal d’achat/de vente de la source de données que vous avez donnée (la “src” dans la configuration). Elle génère une ligne de 5 lignes équivalentes en fonction de cette plage et utilise la source de données actuelle pour déterminer la source de données la plus proche de la ligne.
Vous pouvez configurer dans les paramètres le fait d’être en position vide, la source de données, la longueur des cycles RSI et la ligne de surachat/survente.
La logique de cette stratégie est la suivante:
L’indicateur RSI est utilisé pour déterminer le point d’inversion de la tendance, avec la ligne RSI traversant une zone de survente ou de survente comme signal de confirmation.
Lors de l’apparition du signal de confirmation RSI, le prix le plus élevé et le prix le plus bas d’une période donnée sont enregistrés et définis comme la limite inférieure de la grille.
Les prix sont divisés en 5 lignes de grille en fonction des limites supérieures et inférieures.
Lorsque le prix atteint la ligne supérieure de la grille, il y a une entrée plus élevée; lorsque le prix atteint la ligne inférieure de la grille, il y a une entrée à vide.
La méthode de la grille de rupture, plutôt que la méthode habituelle du Grid Bot qui touche la grille, permet de mieux saisir les ruptures de tendance.
Le jour de la clôture de la transaction, les ordres de la pyramide doivent être placés en bourse pour éviter les risques d’une nuit.
La stratégie est principalement composée des éléments suivants:
Paramètres d’entrée: incluant la source de données, les paramètres RSI, les options de blanchiment, etc.
Calcul de l’indicateur RSI: Calculer l’indicateur RSI et déterminer s’il y a un signal de croisement.
Configuration de la grille dynamique: enregistre la fourchette de prix et calcule la grille lorsque le signal RSI se produit.
Détermination du signal: détecter si le prix a franchi la grille et décider de faire plus de signaux de couverture.
Gestion des commandes: émettre des signaux de couverture plus élevés et placer des commandes sur la pyramide avant la clôture.
L’interface graphique: affichage des lignes de grille, création de zones de blanchiment, etc.
La mise à jour dynamique de la grille, combinée à des signaux de jugement de tendance et de rupture de l’indicateur RSI, permet à la stratégie de suivre efficacement la tendance et d’ajuster la direction en temps opportun en cas de revers. La position de clôture avant la clôture permet de contrôler efficacement le risque du jour au lendemain.
La stratégie présente les principaux avantages suivants:
Les grilles dynamiques sont plus souples et s’adaptent aux tendances que les grilles fixes et inchangées.
Il suffit de régler la grille lorsque le RSI confirme un renversement de tendance pour filtrer une partie du signal de bruit.
L’utilisation d’un signal de rupture plutôt que d’un simple toucher permet de saisir plus précisément les points de basculement de la tendance.
Il est donc préférable d’annuler la totalité de vos positions avant la clôture pour éviter les risques de fortes fluctuations du jour au lendemain et protéger vos bénéfices.
L’indicateur RSI est un bon indicateur de l’excédent d’achat et de la survente, associé à une grille dynamique.
L’utilisation d’une méthode de rupture plutôt que d’une méthode de reconduction permet d’obtenir de meilleures chances d’entrée au début d’une tendance.
L’ajustement de l’espacement de la grille et du ratio de volume des transactions permet d’ajuster avec souplesse les caractéristiques de risque/bénéfice de la stratégie.
L’interface graphique montre intuitivement la distribution de la grille et les zones de blanchiment supplémentaires.
Il est possible de choisir d’ouvrir ou non une position blanche pour répondre aux besoins des différents traders.
Les règles sont simples, claires, faciles à comprendre et adaptées aux transactions algorithmiques.
Les avantages ci-dessus permettent à la stratégie de suivre automatiquement les tendances tout en contrôlant les risques, ce qui la rend idéale pour les applications de trading quantifié sur le terrain.
Cette stratégie comporte également des risques potentiels à prendre en compte:
Il peut y avoir un risque de stop loss dans une tendance à la forte secousse. La portée de stop loss peut être allégée de manière appropriée ou la stratégie peut être suspendue pendant la secousse.
Il peut y avoir des sauts massifs du jour au lendemain, ce qui entraîne des positions ouvertes plus importantes. Pour éviter ce risque, vous pouvez envisager de réduire le ratio de position.
Une mauvaise configuration des paramètres peut entraîner des transactions fréquentes ou des erreurs de signal. Les paramètres d’optimisation doivent être testés avec prudence.
Si les frais de transaction sont élevés, les bénéfices des transactions sur la grille peuvent être consommés à plusieurs reprises. Il convient d’ajuster le nombre de transactions ou de choisir des échanges à des frais inférieurs.
Le signal de rupture peut survenir un peu plus tard que le point de basculement de la tendance, et il est nécessaire de régler raisonnablement l’amplitude de la rupture.
Cette stratégie peut être moins efficace pendant les périodes de stabilisation et de hausse des marchés boursiers. Elle peut être envisagée en association avec d’autres indicateurs.
Il est nécessaire d’avoir suffisamment de fonds pour soutenir des positions plus importantes et des positions pyramidales, sinon l’effet est médiocre. Les positions doivent être ajustées en fonction du montant des fonds.
La réponse:
Optimiser les paramètres, réduire la fréquence des transactions et prévenir les transactions excessives.
Les traders peuvent choisir d’utiliser des indices de tendance et d’éviter les périodes de turbulences.
Pour réduire le nombre de transactions individuelles et contrôler les risques.
Test des différents paramètres de l’amplitude de rupture, équilibrant la rapidité et la stabilité.
On peut envisager de combiner avec d’autres indicateurs pour obtenir plus d’informations sur le marché.
L’augmentation du capital, l’élargissement de la taille des positions et l’augmentation de la marge bénéficiaire.
Par des méthodes telles que l’optimisation des paramètres, la gestion des risques et la combinaison avec d’autres stratégies, le risque de la stratégie peut être réduit dans une certaine mesure, ce qui lui permet de fonctionner de manière stable.
Cette stratégie peut être optimisée dans les domaines suivants:
Optimiser les paramètres du RSI, tester différentes longueurs de cycle du RSI et rechercher la combinaison optimale de paramètres.
Testez différents réglages d’espacement des grilles pour trouver la grille avec le meilleur rapport bénéfice-risque.
Essayez de combiner les signaux de filtrage avec d’autres indicateurs, tels que MACD, KD, etc., pour améliorer la précision.
Développer des stratégies d’arrêt adaptatives pour ajuster dynamiquement les arrêts en fonction de la volatilité du marché.
Les conditions d’ouverture des positions doivent être augmentées pour éviter d’être piégé.
Optimiser les retours d’essai, tester les données sur une période plus longue et évaluer la stabilité des paramètres.
L’optimisation de paramètres dynamiques basée sur l’apprentissage automatique est tentée afin d’adapter les stratégies aux différents environnements de marché.
L’analyse des stratégies de couverture des risques liés aux positions d’options.
Adapter la stratégie d’optimisation des paramètres en fonction des caractéristiques de la situation actuelle et maintenir l’efficacité de la stratégie.
Développement d’une plateforme d’optimisation des stratégies graphiques, qui aide à l’optimisation rapide des tests.
Grâce à l’optimisation automatique des paramètres, à la combinaison de stratégies et à l’introduction de plus d’informations sur le marché, la stratégie peut obtenir une meilleure stabilité et un meilleur rendement, devenant ainsi une stratégie de trading quantitatif vraiment fiable.
Dans l’ensemble, la stratégie de grille rectangulaire RSI utilise l’indicateur RSI pour déterminer le signal de confirmation de renversement de tendance, définir la grille dynamique de la fourchette de prix, négocier lors de la rupture de la grille et se libérer complètement pendant la journée, formant une stratégie de trading algorithmique flexible de suivi de la tendance. Par rapport à la stratégie de grille fixe, il peut mieux s’adapter aux changements de marché.
Cette stratégie présente certains avantages, notamment la combinaison d’un indicateur RSI pour juger de la tendance, l’adaptation dynamique de la grille, la négociation de modes de rupture et une position de pauvreté complète pendant la journée. Cela lui permet de suivre efficacement la tendance tout en contrôlant les risques. Cependant, la stratégie comporte également des risques potentiels à prendre en compte, tels que le risque de stop loss dans une tendance oscillante, le risque de vol d’oiseau pendant la nuit.
La stratégie a également de nombreuses directions d’optimisation, qui peuvent être optimisées en une stratégie de trading algorithmique plus stable et plus rentable en introduisant plus d’indicateurs, des paramètres d’optimisation d’apprentissage automatique et des plates-formes de feedback graphique. Globalement, la stratégie fournit un cadre algorithmique de suivi de tendance fiable et facile à utiliser pour le trading quantifié.
/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 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/
// © wbburgin
//@version=5
// strategy("RSI Box Strategy (pseudo-Grid Bot)", overlay=true, initial_capital = 10000,
// default_qty_type = strategy.percent_of_equity, default_qty_value = 1, pyramiding = 33, commission_value=0.10)
src = input.source(close,"Source")
rsiLength = input.int(14,"RSI Length")
oblvl = input.int(70,"Overbought Level")
oslvl = input.int(30,"Oversold Level")
useShorts = input.bool(false,"Use Shorts",inline="B")
showGrid = input.bool(false,"Show Grid",inline="B")
rsi = ta.rsi(src,rsiLength)
rsi_crossdn = ta.crossunder(rsi,oblvl)
rsi_crossup = ta.crossover(rsi,oslvl)
highest = ta.vwma(ta.highest(src,rsiLength),rsiLength)
lowest = ta.vwma(ta.lowest(src,rsiLength), rsiLength)
gridTop = ta.valuewhen(rsi_crossdn,highest,0)
gridBottom = ta.valuewhen(rsi_crossup,lowest,0)
gridMiddle = math.avg(gridTop,gridBottom)
gridMidTop = math.avg(gridMiddle,gridTop)
gridMidBottom = math.avg(gridMiddle,gridBottom)
diff1 = math.abs(src - gridTop)
diff2 = math.abs(src - gridBottom)
diff3 = math.abs(src - gridMiddle)
diff4 = math.abs(src - gridMidTop)
diff5 = math.abs(src - gridMidBottom)
minDiff = math.min(diff1, diff2, diff3, diff4, diff5)
// Determine which line is the closest
float closestLine = na
if minDiff == diff1
closestLine := gridTop
else if minDiff == diff2
closestLine := gridBottom
else if minDiff == diff3
closestLine := gridMiddle
else if minDiff == diff4
closestLine := gridMidTop
else if minDiff == diff5
closestLine := gridMidBottom
buyCrosses = ta.crossover(src,gridTop) or ta.crossover(src,gridBottom) or ta.crossover(src,gridMiddle) or ta.crossover(src,gridMidTop) or ta.crossover(src,gridMidBottom)
sellCrosses= ta.crossunder(src,gridTop) or ta.crossunder(src,gridBottom) or ta.crossunder(src,gridMiddle) or ta.crossunder(src,gridMidTop) or ta.crossunder(src,gridMidBottom)
condition_bull = buyCrosses
condition_bear = sellCrosses
var float bull_status_line = na
var float bear_status_line = na
var float bull_buy_line = na
var float bear_sell_line = na
if condition_bull
bull_status_line := closestLine
if condition_bear
bear_status_line := closestLine
if bull_status_line == gridBottom
bull_buy_line := gridMidBottom
if bull_status_line == gridMidBottom
bull_buy_line := gridMiddle
if bull_status_line == gridMiddle
bull_buy_line := gridMidTop
if bull_status_line == gridMidTop
bull_buy_line := gridTop
if bear_status_line == gridTop
bear_sell_line := gridMidTop
if bear_status_line == gridMidTop
bear_sell_line := gridMiddle
if bear_status_line == gridMiddle
bear_sell_line := gridMidBottom
if bear_status_line == gridMidBottom
bear_sell_line := gridBottom
l = ta.crossover(src,bull_buy_line)
s = ta.crossunder(src,bear_sell_line)
if l
strategy.entry("Long",strategy.long)
if s
strategy.close("Long")
if useShorts
strategy.entry("Short",strategy.short)
// Plotting
in_buy = ta.barssince(l) < ta.barssince(s)
u=plot(bull_buy_line,color=na,title="Buy Plot")
d=plot(bear_sell_line,color=na,title="Sell Plot")
plot(not showGrid?na:gridBottom,color=color.new(color.white,75),title="Grid Line -2")
plot(not showGrid?na:gridMidBottom,color=color.new(color.white,75),title="Grid Line -1")
plot(not showGrid?na:gridMiddle,color=color.new(color.white,75),title="Grid Line 0")
plot(not showGrid?na:gridMidTop,color=color.new(color.white,75),title="Grid Line 1")
plot(not showGrid?na:gridTop,color=color.new(color.white,75),title="Grid Line 2")
fill(u,d,color=in_buy ? color.new(color.lime,75) : color.new(color.red,75))