Une stratégie de reprise de la courbe est une stratégie de négociation quantitative basée sur une série de baisses et de baisses de prix. La stratégie vise à capturer les opportunités de reprise de tendance à court terme en identifiant les formes suivantes de baisse de la courbe X, suivie d’une hausse de la courbe Y. L’idée principale de la stratégie est que lorsque les prix subissent une série de baisses, cela indique que l’énergie de la courbe est libérée.
Le principe de l’inversion de la tendance à la baisse et à la hausse continue peut être divisé en plusieurs étapes:
La stratégie utilise des formes de baisse et de baisse consécutives pour tenter de capturer les occasions de reprise de la transition de la tête vide à la tête multiple. En même temps, des conditions de stop-loss strictes sont mises en place pour contrôler les risques.
La stratégie de retour en arrière à la baisse et à la hausse continue présente les avantages suivants:
Malgré les avantages d’une stratégie d’inversion de la tendance à la baisse et à la hausse, les risques suivants sont présents:
Pour contrer ces risques, les mesures d’optimisation suivantes peuvent être envisagées:
Les stratégies d’inversion de la tendance à la baisse et à la hausse continuelles peuvent être optimisées dans les domaines suivants:
Grâce à ces mesures d’optimisation, les stratégies d’inversion de tendance à la baisse et à la hausse peuvent mieux s’adapter aux changements du marché, contrôler les risques et améliorer la rentabilité et la stabilité.
La stratégie de revers en baisse continue est une stratégie de trading quantitative basée sur la continuité des prix, qui permet de saisir les occasions de revers à court terme du marché en identifiant les formes de baisse et de baisse en baisse continue. Les règles de la stratégie sont simples, sensibles aux changements de tendance des prix et comportent des conditions de stop-loss strictes pour contrôler les risques.
Cependant, il existe des risques liés à cette stratégie, tels que la fréquence des transactions, le fait que les positions de stop-loss puissent être trop strictes et la possibilité d’une mauvaise performance dans des marchés à forte tendance. Pour contrer ces risques, il est possible de prendre en compte des paramètres d’ajustement dynamique, d’optimiser les positions de stop-loss et d’adopter différentes stratégies dans différents environnements de marché.
En outre, il existe des directions d’optimisation de la stratégie, telles que l’introduction de plus d’indicateurs, l’optimisation des arrêts et des arrêts, l’adaptation aux différents environnements de marché, l’ajout de la gestion des positions et la combinaison avec d’autres stratégies. Par l’optimisation et l’amélioration continues, la stratégie de renversement de la baisse et de la baisse continue peut devenir une stratégie de trading quantitative plus robuste et plus efficace.
Dans l’ensemble, les stratégies de revers de chaîne offre une approche de trading simple et efficace pour tirer profit des opportunités de revers de marché à court terme. Cependant, dans la pratique, il est nécessaire d’optimiser et d’ajuster la stratégie de manière appropriée en fonction de l’environnement du marché et des préférences de risque personnelles pour obtenir de meilleurs résultats.
/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bottom Out Strategy", overlay=true)
consecutiveBarsUp = input(2)
consecutiveBarsDown = input(3)
price = close
ups = 0.0
ups := price > price[1] ? nz(ups[1]) + 1 : 0
dns = 0.0
dns := price < price[1] ? nz(dns[1]) + 1 : 0
var entry_bar_index = 1000000
var active = false
var stop_loss = 0.0
// === INPUT BACKTEST RANGE ===
i_from = input(defval = timestamp("01 Jan 2023 00:00 +0000"), title = "From")
i_thru = input(defval = timestamp("01 Mar 2024 00:00 +0000"), title = "Thru")
// === FUNCTION EXAMPLE ===
date() => true
entry_condition() =>
date() and dns[2] >= consecutiveBarsDown and ups >= consecutiveBarsUp and not active
exit_condition() =>
date() and active and (close < nz(stop_loss) or close < high - 2 * ta.atr(7))
if (entry_condition())
strategy.entry("ConsDnLong", strategy.long, comment="CDLEntry")
entry_bar_index := bar_index
active := true
stop_loss := math.min(close, close[1], close[2])
// log.info("Entry at bar {0}, close={1}, stop_loss={2} ", entry_bar_index, close, stop_loss)
if (exit_condition())
strategy.close("ConsDnLong", comment = "CDLClose")
// log.info("Close at bar {0}", bar_index)
entry_bar_index := 1000000
active := false
// if (dns >= consecutiveBarsDown)
// strategy.entry("ConsDnSE", strategy.short, comment="ConsDnSE")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
plot(high - 2* ta.atr(7))