Stratégie quotidienne haut/bas

Auteur:ChaoZhang est là., Date: 23 septembre 2023 à 15h07
Les étiquettes:

Résumé

Il s'agit d'une stratégie simple de négociation intradienne qui combine des points hauts / bas quotidiens, une moyenne mobile et un volume.

La logique de la stratégie

La stratégie repose principalement sur les indicateurs suivants:

  1. Points hauts et bas quotidiens: enregistrer les prix les plus élevés et les plus bas de la journée de négociation précédente comme référence pour le jugement de rupture.

  2. Moyenne mobile: calculer la moyenne mobile des prix de clôture sur une certaine période comme référence pour l'évolution globale.

  3. Flux monétaire en volume: calculer la valeur normalisée long/short du volume sur une période pour déterminer les entrées et les sorties de fonds.

Les règles de négociation spécifiques sont les suivantes:

  1. Condition longue: Lorsque le sommet de la journée dépasse le sommet de la journée précédente, et que la clôture est supérieure à la moyenne mobile, et que le volume du flux de trésorerie est positif, passez à long.

  2. Fermer la position longue: lorsque la position close dépasse la moyenne mobile, fermer les positions longues.

  3. Condition courte: Lorsque le plus bas de la journée dépasse le plus bas de la journée précédente, et que la clôture est inférieure à la moyenne mobile, et que le volume du flux monétaire est négatif, passez court.

  4. Fermer une position courte: lorsque la position courte dépasse la moyenne mobile, fermer les positions courtes.

La stratégie prend en compte l'évolution, la tendance et le flux de capitaux de manière exhaustive, formant un système de jugement complet qui peut filtrer efficacement les faux bruits d'évolution.

Analyse des avantages

Cette stratégie de rupture haute/faible présente les avantages suivants:

  1. La logique est simple et intuitive, facile à comprendre et à mettre en œuvre.

  2. En brisant les points hauts/baissés de la journée précédente, on peut saisir la direction de forces plus fortes.

  3. Le filtrage avec des moyennes mobiles évite de nombreux signaux bruyants.

  4. Les indicateurs de flux de capitaux aident à déterminer la répartition des forces sur le long et le court terme.

  5. Le trading intraday permet d'accumuler des profits grâce à plusieurs transactions.

  6. Aucune optimisation complexe des paramètres n'est requise, relativement facile à mettre en œuvre.

  7. Applicable à différents produits avec une grande souplesse.

  8. Dans l'ensemble, l'idée stratégique est simple et claire, avec peu de difficultés à mettre en œuvre et un potentiel de profit considérable.

Analyse des risques

Bien que cette stratégie présente de nombreux avantages, elle comporte également certains risques:

  1. Le fait de s'appuyer sur des écarts élevés/faibles peut entraîner des pertes liées aux faux écarts.

  2. Extrêmement dépendant des transactions intradiennes, facilement affecté par les événements du jour au lendemain.

  3. Le retard des moyennes mobiles peut manquer les points tournants de la tendance.

  4. Les indicateurs de volume peuvent parfois donner de mauvais signaux.

  5. Incapable de contrôler correctement la taille des pertes des paris simples, avec un risque de pertes excessives.

  6. Les coûts de négociation influent sur la fréquence des transactions intraday.

  7. L'espace d'optimisation limité rend difficile l'obtention d'alpha persistant.

  8. Dans l'ensemble, la stratégie présente une fréquence de signal élevée mais une stabilité et une rentabilité non prouvées.

Directions d'optimisation

La stratégie peut être encore optimisée dans les aspects suivants:

  1. Ajoutez un stop loss pour contrôler le risque de pari unique.

  2. Optimiser les paramètres de la moyenne mobile pour une plus grande sensibilité ou douceur.

  3. Essayez différents indicateurs de volume pour améliorer le jugement des flux de capitaux.

  4. Ajoutez plus de filtres pour réduire les chances de fausse fuite.

  5. Exécutez la stratégie dans des délais plus longs pour éviter de trop négocier.

  6. Introduire l'apprentissage automatique pour la génération de signaux adaptatifs.

  7. Incorporer plus de données pour la prise de décision, par exemple des nouvelles, des macros, etc.

  8. Évaluer de manière exhaustive la stabilité et le risque, sans rechercher des rendements excessifs.

Conclusion

En résumé, il s'agit d'une stratégie simple et intuitive de rupture haute / basse, axée sur la relation prix-volume et le jugement de la tendance. Elle présente certains mérites mais aussi des risques, nécessitant une optimisation et une vérification supplémentaires. Si elle est correctement gérée, elle peut être une idée de stratégie à court terme pratique. Mais des stratégies plus efficaces et robustes nécessitent plus de facteurs de modélisation et un backtesting rigoureux.


// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99

//@version=5

strategy(title='Daily HIGH/LOW strategy', overlay=true, initial_capital=10000, calc_on_every_tick=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1)

////////////////////////////GENERAL INPUTS//////////////////////////////////////
len = input.int(24, minval=1, title='Length MA', group='Optimization paramters')
src = input.source(close, title='Source MA', group='Optimization paramters')
out = ta.ema(src, len)

length = input.int(20, minval=1, title='CMF Length', group='Optimization paramters')
ad = close == high and close == low or high == low ? 0 : (2 * close - low - high) / (high - low) * volume
mf = math.sum(ad, length) / math.sum(volume, length)

f_secureSecurity(_symbol, _res, _src) =>
    request.security(_symbol, _res, _src[1], lookahead=barmerge.lookahead_on)

pricehigh = f_secureSecurity(syminfo.tickerid, 'D', high)
pricelow = f_secureSecurity(syminfo.tickerid, 'D', low)

plot(pricehigh, title='Previous Daily High', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0))
plot(pricelow, title='Previous Daily Low', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0))

short = ta.crossunder(low, pricelow) and close < out and mf < 0
long = ta.crossover(high, pricehigh) and close > out and mf > 0


if short and barstate.isconfirmed
    strategy.entry('short', strategy.short, when=barstate.isconfirmed, stop=pricelow[1])
    strategy.close('short', when=close > out)

if long and barstate.isconfirmed
    strategy.entry('long', strategy.long, when=barstate.isconfirmed, stop=pricehigh[1])
    strategy.close('long', when=close < out)




Plus de