
La stratégie de trading d’adaptation à la rupture bidirectionnelle est une stratégie quantifiée qui juge et effectue des opérations de trading en fonction de la relation entre le prix d’ouverture et le prix de clôture d’une action. La stratégie effectue des opérations de survente ou de sous-évaluation dans les conditions de paramètres définis.
La logique centrale de la stratégie est de déterminer la direction en fonction de la relation entre la taille du prix d’ouverture et de la taille du prix de clôture. Plus précisément, si le prix de clôture est supérieur à la valeur de creux de l’ouverture, un signal de multiplication est généré; si le prix d’ouverture est supérieur à la valeur de clôture, un signal de vide est généré. Une fois en position, la stratégie continue à surveiller les variations de prix.
D’un point de vue de la mise en œuvre du code, la stratégie définit d’abord l’expression conditionnelle des positions longues et courtes, puis l’entrée simple en fonction de la logique de construction de la position. Ensuite, elle détecte en permanence si les conditions de sortie sont déclenchées.
Les stratégies de négociation adaptative bilatérale présentent les avantages suivants:
Bien que cette stratégie présente certains avantages, elle comporte les risques suivants:
Ces risques nécessitent une attention particulière pendant le processus de déploiement et une adaptation rapide des paramètres ou de l’optimisation des algorithmes.
Cette stratégie peut être optimisée principalement dans les directions suivantes:
L’optimisation des algorithmes et des modèles peut améliorer la stabilité et la rentabilité de l’ensemble de la stratégie.
La stratégie de négociation bidirectionnelle de rupture auto-adaptative, qui combine deux mécanismes de jugement de tendance et de sortie auto-adaptative, permet de contrôler efficacement le risque. Son principe simple et ses paramètres flexibles permettent de la comprendre et de l’étendre facilement. C’est une stratégie quantitative qui mérite d’être recommandée et étudiée en profondeur.
/*backtest
start: 2023-01-30 00:00:00
end: 2024-02-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Repaint in version 3", overlay=true, calc_on_every_tick=true, calc_on_order_fills=true) // Repaint?
// strategy("Repaint in version 3", overlay=true, calc_on_every_tick=true) // Correct
val1 = input(123)
val2 = input(234)
from_year=input(2018, minval=2000, maxval=2020)
from_month=input(6, minval=1, maxval=12)
from_day=input(1, minval=1, maxval=31)
to_year=input(2019, minval=2007, maxval=2020)
to_month=input(12, minval=1, maxval=12)
to_day=input(31, minval=1, maxval=31)
long = (close-open) > val1
short = (open-close) > val1
exitLong = (open-close) > val2
exitShort = (close-open) > val2
term = true
strategy.entry("LONG", strategy.long, when=long and term)
strategy.close("LONG", when = exitLong and not short and term)
strategy.entry("SHORT", strategy.short, when=short and term)
strategy.close("SHORT", when = exitShort and not long and term)