Cette stratégie identifie les fonds à court terme en détectant un volume exceptionnel dans une tendance à la baisse, et prend des positions longues dans des conditions de survente.
Lorsque le volume dépasse 2 écarts types au-dessus du volume moyen basé sur la SMA, il est considéré comme un volume en suspens. Pendant ce temps, un RSI inférieur à 30 indique un statut de survente. Lorsque les deux conditions sont remplies, il est jugé comme un bas à court terme et une position longue est prise immédiatement. La position sera fermée après une certaine période de temps (par exemple, 10 barres).
La logique de cette stratégie est simple:
Les avantages de cette stratégie sont les suivants:
En résumé, cette stratégie tire parti des ruptures de volume pour attraper les renversements de tendance tout en contrôlant strictement les risques.
Les principaux risques de cette stratégie sont les suivants:
Pour faire face à ces risques, l'optimisation peut être effectuée dans les aspects suivants:
Cette stratégie peut être encore optimisée dans les domaines suivants:
En introduisant des techniques plus avancées, une amélioration significative de la stabilité, de l'alpha et du rapport Sharpe peut être réalisée.
En résumé, il s'agit d'une stratégie de rupture à court terme très simple, directe et logique. En tirant correctement parti du volume pour détecter les renversements de tendance et en contrôlant strictement les risques, une performance solide peut être atteinte. Mais les risques de faux signaux et de robustesse des paramètres existent. Ceux-ci peuvent être abordés progressivement en introduisant des techniques plus avancées pour améliorer davantage la stratégie.
/*backtest start: 2024-01-10 00:00:00 end: 2024-01-17 00:00:00 period: 1m basePeriod: 1m 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/ // © footlz //@version=4 strategy("Bottom catch strategy", overlay=true) v_len = input(20, title="Volume SMA Length") mult = input(2) rsi_len = input(20, title="RSI Length") oversold = input(30, title="Oversold") close_time = input(10, title="Close After") v = volume basis = sma(v, v_len) dev = mult * stdev(v, v_len) upper_volume = basis + dev rsi = rsi(close, rsi_len) long = v > upper_volume and rsi < oversold strategy.entry("Long", true, when=long) passed_time = 0.0 if strategy.position_size != 0 passed_time := 1 else passed_time := 0 if strategy.position_size != 0 and strategy.position_size[1] != 0 passed_time := passed_time[1] + 1 if passed_time >= close_time strategy.close_all() // If want to enable plot, change overlay=false. v_color = close >= close[1] ? color.new(#3eb370, 0) : color.new(#e9546b, 0) // plot(v, title="volume", color=v_color, style=plot.style_columns) // plot(upper_volume, title="Threshold", color=color.aqua)