
La stratégie de rétrogradation bidirectionnelle est une stratégie de trading Bitcoin simple qui consiste à définir un ordre d’achat et de perte de la journée en fonction de la fourchette de la journée précédente. L’idée centrale de cette stratégie est de définir un arrêt-perte près du sommet si le prix d’ouverture du jour est supérieur au prix de clôture de la journée précédente et un arrêt-perte près du bas si le prix d’ouverture du jour est inférieur au prix de clôture de la journée précédente.
La stratégie calcule d’abord la fourchette de la journée précédente, c’est-à-dire le prix le plus élevé moins le prix le plus bas. Ensuite, après l’ouverture du jour, il juge si le prix a augmenté par rapport au prix de clôture du jour précédent.
Plus précisément, la stratégie comporte deux règles d’entrée:
Si le prix d’ouverture est supérieur au prix de clôture du jour précédent (longCond1 est satisfait) et que le prix de clôture du jour précédent est satisfait dans la fenêtre de temps de retracement (window), le stop loss est acheté (strategy.long1) au prix d’ouverture plus 0,6 fois la fourchette du jour précédent.
Si le prix d’ouverture du jour est inférieur au prix de clôture du jour précédent (longCond2 est satisfait) et que, dans la fenêtre de temps de retracement, un stop loss est acheté (strategy.long2) au prix d’ouverture plus 1,8 fois la fourchette du jour précédent.
La stratégie prend des positions supplémentaires après le déclenchement des deux arrêts ci-dessus, puis des positions plus faibles via strategy.close_all () avant la clôture de la journée.
Les avantages d’une stratégie d’inversion bilatérale sont les suivants:
Capture des revers sans biais de direction. Cette stratégie prend en compte à la fois la hausse et la baisse des prix et permet de capturer des revers de rupture dans différentes directions.
Le risque est maîtrisé et il existe une protection contre les pertes. La stratégie consiste à définir à l’avance le prix de l’arrêt, ce qui permet de contrôler efficacement la perte maximale d’une seule transaction.
Il est préférable d’annuler chaque jour et d’éviter les risques de nuit. La stratégie consiste à éliminer les positions avant la clôture du jour et à ne pas les conserver pendant la nuit, ce qui réduit le risque de fortes fluctuations du jour au lendemain.
La fréquence des transactions est élevée, ce qui est approprié pour les opérations de courte durée.
Les idées stratégiques sont simples, claires, faciles à comprendre et à mettre en œuvre.
Mais il y a aussi des risques à prendre en compte dans une stratégie de retour en arrière à double sens:
Une mauvaise sélection de la distance d’arrêt peut entraîner la perte de la perte. Si la distance d’arrêt est trop petite, dans des cas extrêmes, elle peut être directement percée et entraîner des pertes.
Une fréquence trop élevée peut entraîner une pression sur les frais de transaction. Les transactions à haute fréquence qui ouvrent ou ferment des positions quotidiennes peuvent accumuler plus de frais de traitement.
Il est plus facile d’arrêter les pertes en cas de fortes secousses que de les déclencher.
Cette stratégie est plus adaptée aux marchés inversés, où les gains de tendance ne peuvent pas être capturés de façon continue après une rupture de tendance.
Cette stratégie peut être optimisée dans les domaines suivants:
Optimiser la distance de stop. Vous pouvez tester différentes positions de stop pour trouver le point de stop optimal. Vous pouvez également ajuster la distance de stop en fonction de la volatilité du marché.
Ajout de filtres de tendance. Avant d’entrer, il est possible de juger de la direction de la tendance à un niveau plus élevé et d’éviter les transactions à contre-courant.
Optimiser les règles d’ouverture des positions. Vous pouvez envisager d’ajouter des jugements de forme graphique à intervalles de temps avant la percée, ou d’augmenter les jugements logiques de capacité quantitative pour améliorer la précision d’ouverture des positions.
Augmentation de l’optimisation de la position. Vous pouvez tester l’ajout d’un stop mobile ou d’un suivi de tendance EXIT pour un profit continu.
Testez différentes variétés de transactions. La stratégie peut être plus adaptée aux variétés plus volatiles, vous pouvez tester les données de différentes variétés pour trouver la variété la mieux adaptée.
Combination de technologies d’apprentissage automatique. L’utilisation de l’apprentissage automatique peut être envisagée pour optimiser des paramètres tels que la distance d’arrêt, les règles d’ouverture de la position.
La stratégie d’inversion bidirectionnelle est une stratégie de courte ligne très concise et pratique. Elle est adaptée à la fois à la hausse et à la baisse des prix et peut capturer efficacement les occasions de reprise. Mais la stratégie comporte également des risques.
/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Simple strat", shorttitle="Simple Strat", overlay=true)
// X001TK R1 strategy
//
//
// This strategy combines the special approach in previous daily range trading
//
// This strategy goes long on stop buy order which is calculated as previous day range
// multiplied by special number.
//
// This pure strategy does not have any
// stop loss or take profit money management logic.
//
// Exit rule is simple. We close the position on market close or next day open
//
//
//
//
// Input
length = input(10, minval=1)
stopLossPercent=input(1.1,"Stop Loss Percent")
profitPercent=input(9,"Profit Percent")
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 2000)
ToMonth = input(defval = 3, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 2029, title = "To Year", minval = 2017)
ses_cls = input(defval=true, title="End of Session Close Out?")
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
// === STRATEGY ===
// conditions
longCond1 = close>close[1]
longCond2 = close<close[1]
strategy.entry("long1", strategy.long, when=longCond1==true and window()==true, stop=close+(high - low)*0.6)
strategy.entry("long2", strategy.long, when=longCond2==true and window()==true, stop=close+(high - low)*1.8)
strategy.close_all(when=ses_cls)
// === /STRATEGY ===