Stratégie de tendance sur plusieurs périodes

Auteur:ChaoZhang est là., Date: le 28-12-2023 à 11h57.
Les étiquettes:

img

Résumé

Cette stratégie utilise 4 délais différents pour déterminer la direction de la tendance, pour découvrir la tendance à long terme tout en utilisant le court terme comme opportunités d'entrée. Lorsque les prix d'ouverture des 4 délais (quotidien, hebdomadaire, 15 jours, mensuel) sont tous inférieurs aux prix de clôture, il est déterminé comme une tendance haussière à long terme; lorsque les prix d'ouverture des 4 délais sont tous supérieurs aux prix de clôture, il est déterminé comme une tendance baissière à long terme. La stratégie ouvrira des positions lors de la confirmation de la tendance à long terme et un signal à court terme est généré.

La logique de la stratégie

Cette stratégie utilise 4 délais: quotidien, hebdomadaire, quinquadécennal et mensuel. Elle détermine l'orientation de la tendance à long terme en fonction de la relation entre les prix d'ouverture et de clôture de ces 4 délais.

Lorsque les cours d'ouverture des délais journaliers, hebdomadaires, de 15 jours et mensuels sont tous inférieurs aux prix de clôture, cela indique que les prix montrent une tendance à la hausse sur ces 4 délais, il est donc déterminé comme un marché haussier et haussier à long terme.

Au contraire, lorsque les prix d'ouverture de ces quatre périodes sont tous supérieurs aux prix de clôture, cela indique que les prix montrent une tendance à la baisse sur ces quatre périodes, de sorte qu'il est déterminé comme un marché baissier et un marché baissier à long terme.

Après avoir déterminé la direction de la tendance à long terme, la stratégie ouvrira des positions lorsqu'un signal d'achat/vente est généré à court terme.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. Le jugement sur plusieurs périodes améliore la précision

    L'utilisation de 4 délais différents pour évaluer de manière exhaustive la tendance à long terme peut améliorer la précision du jugement et éviter d'être induit en erreur par le bruit de marché à court terme.

  2. Combinaison d'une stratégie flexible à long terme et à court terme

    En utilisant des cadres à long terme pour déterminer la direction principale et à court terme pour générer des signaux de trading, cette stratégie est flexible, qui peut saisir les opportunités à court terme sans dévier de la tendance principale.

  3. Paramètres simples, faciles à mettre en œuvre

    Les principaux indicateurs de jugement de cette stratégie sont simplement les prix d'ouverture et de clôture des 4 délais.

Analyse des risques

Cette stratégie comporte également certains risques:

  1. Renversement de tendance à long terme

    Si la tendance haussière à long terme s'inverse en baisse à long terme, cette stratégie ne peut pas juger rapidement, ce qui peut entraîner des pertes plus importantes.

  2. Faibles performances à court terme

    Cette stratégie repose principalement sur des signaux à court terme pour déterminer des opportunités d'entrée spécifiques. Si la performance à court terme est médiocre et incapable d'ouvrir des positions au bon moment, elle affectera la performance globale. Les paramètres à court terme peuvent être ajustés ou la stratégie à court terme peut être optimisée dans ce cas.

Directions d'optimisation

Il existe d'autres possibilités d'optimisation pour cette stratégie:

  1. Ajouter une stratégie de stop loss

    Le déplacement ou l'ordre stop loss peut être réglé pour contrôler la perte maximale.

  2. Optimiser la stratégie à court terme

    Différents indicateurs à court terme peuvent être testés afin de trouver des stratégies à court terme plus appropriées et d'améliorer les performances d'entrée.

  3. Réglage dynamique des positions

    Les positions peuvent être ajustées dynamiquement en fonction de la volatilité du marché, augmenter les positions lorsque la tendance devient plus évidente.

  4. Combiner le machine learning

    Une grande quantité de données peut être collectée et des méthodes d'apprentissage automatique peuvent être utilisées pour optimiser dynamiquement les paramètres et les règles.

Conclusion

Cette stratégie détermine la direction de la tendance sur plusieurs délais, adopte l'idée de combiner à long terme et à court terme, ce qui assure le jugement des principales tendances et utilise les opportunités à court terme.


/*backtest
start: 2023-11-27 00:00:00
end: 2023-12-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("[RichG] Easy MTF Strategy", overlay=false)

TF_1_time = input("D", "Timeframe 1")
TF_2_time = input("5D", "Timeframe 2")
TF_3_time = input("15D", "Timeframe 3")
TF_4_time = input("45D", "Timeframe 4")

transaction_size = input(1, "Contract/Share Amount")

src = close, len = 20
out = sma(src, len)
width = 5
upcolor = green
downcolor = red
neutralcolor = blue
linestyle = line

TF_1 = request.security(syminfo.tickerid, TF_1_time, open) < request.security(syminfo.tickerid, TF_1_time, close) ? true:false
TF_1_color = TF_1 ? upcolor:downcolor

TF_2 = request.security(syminfo.tickerid, TF_2_time, open) < request.security(syminfo.tickerid, TF_2_time, close) ? true:false
TF_2_color = TF_2 ? upcolor:downcolor

TF_3 = request.security(syminfo.tickerid, TF_3_time, open) < request.security(syminfo.tickerid, TF_3_time, close) ? true:false
TF_3_color = TF_3 ? upcolor:downcolor


TF_4 = request.security(syminfo.tickerid, TF_4_time, open) < request.security(syminfo.tickerid, TF_4_time, close) ? true:false
TF_4_color = TF_4 ? upcolor:downcolor

TF_global = TF_1 and TF_2 and TF_3 and TF_4 
TF_global_bear = TF_1 == false and TF_2 == false and TF_3 == false and TF_4 == false
TF_global_color = TF_global ? green : TF_global_bear ? red : white
TF_trigger_width = TF_global ? 6 : width

plot(1, style=linestyle, linewidth=width, color=TF_1_color)
plot(5, style=linestyle, linewidth=width, color=TF_2_color)
plot(10, style=linestyle, linewidth=width, color=TF_3_color)
plot(15, style=linestyle, linewidth=width, color=TF_4_color)
plot(25, style=linestyle, linewidth=4, color=TF_global_color)    

exitCondition_Long = TF_global_bear
exitCondition_Short = TF_global

longCondition = TF_global
if (longCondition)
    strategy.entry("MTF_Long", strategy.long, qty=transaction_size, when=strategy.position_size == 0)

shortCondition = TF_global_bear
if (shortCondition)
    strategy.entry("MTF_Short", strategy.short, qty=transaction_size, when=strategy.position_size == 0)
    
strategy.close("MTF_Long", when=exitCondition_Long)    
strategy.close("MTF_Short", when=exitCondition_Short)


Plus de