Stratégie quantitative agressive de détection du fond

Auteur:ChaoZhang est là., Date: 2024-01-18 16h25 et 33 min
Les étiquettes:

img

Résumé

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.

Principes de stratégie

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:

  1. Calculer la SMA de volume de 20 bar comme référence
  2. Calculer 2 écarts types de volume de 20 bar comme seuil pour le volume en suspens
  3. Calculer le RSI de 20 bar pour juger du statut de survente
  4. Lorsque le volume dépasse la valeur de référence + 2 écarts types et que l'indice RSI est inférieur ou égal à 30, il doit être considéré comme le plus bas à court terme.
  5. Prenez position longue immédiatement au bas.
  6. Position de fermeture après 10 bar automatiquement

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. Logic simple, facile à comprendre et à optimiser
  2. Utiliser le volume en suspens pour détecter les points tournants à court terme
  3. RSI assure seulement prendre des longs dans la zone de survente, en évitant de poursuivre les sommets
  4. Le stop-loss automatique maximise l'évasion de risque au plus bas

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.

Analyse des risques

Les principaux risques de cette stratégie sont les suivants:

  1. Le volume et le RSI peuvent générer de faux signaux de rupture, provoquant de mauvais longs et des pertes.
  2. Un temps de stop loss fixe peut ne pas permettre d'arrêter la perte ou d'arrêter la perte trop tôt lors d'un renversement significatif du marché.
  3. Un réglage de paramètres sous-optimal peut entraîner trop peu ou trop de signaux.

Pour faire face à ces risques, l'optimisation peut être effectuée dans les aspects suivants:

  1. Ajoutez d'autres indicateurs pour filtrer les faux signaux d'évasion.
  2. Définir un stop-loss dynamique au lieu d'un nombre fixe de barres.
  3. Tests et réglages complets des paramètres pour assurer la robustesse.

Directions d'optimisation

Cette stratégie peut être encore optimisée dans les domaines suivants:

  1. Ajouter le modèle ML pour juger de la fiabilité des ruptures de volume afin d'éviter les faux signaux
  2. Ajouter un mécanisme d'arrêt adaptatif au lieu de barres fixes
  3. Optimisation des ensembles de données multidimensionnels pour les paramètres de volume en suspens
  4. Augmenter la précision des signaux de survente à l'aide du dépistage ML
  5. Incorporer une analyse du sentiment pour améliorer l'alpha

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.

Conclusion

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)

Plus de