Stratégie de suivi de tendance


Date de création: 2023-12-08 12:05:17 Dernière modification: 2023-12-08 12:05:17
Copier: 0 Nombre de clics: 1241
1
Suivre
1621
Abonnés

Stratégie de suivi de tendance

Aperçu

Cette stratégie est une stratégie de suivi de la grille de tendance qui ne fait que faire plus et pas de blanchiment, choisissant la période de la grande tendance à la hausse. La taille de la grille par défaut est de 1 fois l’ATR, le suivi à la baisse établit des grilles de niveau 1, 2 et 3 pour le suivi, le blocage de la 5e grille.

Principe de stratégie

  1. L’EMA moyenne est utilisée pour déterminer la direction de la tendance majeure, l’EMA12 est supérieure à l’EMA144 et la tendance majeure est à la hausse.
  2. Il est possible de faire des investissements dans des titres à la hausse.
  3. La taille de la grille par défaut est 1 fois ATR, le nombre de fois peut être ajusté
  4. Créer des grilles de traçage des prix vers le bas de niveau 1, 2 et 3, ouvrir des positions séparément et faire plus
  5. La 5ème grille définit le point d’arrêt
  6. Définition des points stop et stop-loss après l’ouverture de la position
  7. Quand la hausse des prix dépasse le seuil d’équilibre
  8. Lorsque la baisse des prix déclenche un arrêt de perte
  9. Lorsque les positions sont complètement liquidées, si le prix revient à la dernière grille, recalculez la position et le nombre de la grille et suivez la tendance à la hausse

Cette stratégie permet de déterminer la direction de la grande tendance à l’aide de l’EMA, puis de la suivre en combinaison avec la stratégie de la grille, ce qui permet d’obtenir de plus grands bénéfices dans la tendance à la hausse de la grande tendance. La grille définit plusieurs points de prix, construit des positions en lots, peut réduire le risque d’une seule position. Le paramètre de stop-loss permet de verrouiller les bénéfices et de contrôler les pertes maximales.

Analyse des avantages

  1. L’EMA peut être utilisée pour déterminer la direction des grandes tendances et éviter de prendre des positions négatives.
  2. La stratégie de la grille permet de construire des entrepôts par lots et de réduire le risque d’un seul entrepôt
  3. Arrêtez-vous et arrêtez-vous pour verrouiller les bénéfices et contrôler les pertes maximales
  4. La grille peut être recalculée pour continuer à courir après la liquidation de la position, élargissant ainsi l’espace de profit

Le principal avantage de cette stratégie réside dans la combinaison de la négociation de tendance et de la négociation de grille, assurant à la fois la précision de la direction de la tendance et la dispersion des risques de la stratégie de grille. En outre, le recalcul de la grille après la liquidation de la position permet un retour illimité, ce qui permet d’obtenir des gains énormes en cas de forte hausse des cours.

Analyse des risques

  1. Les tendances peuvent être mal évaluées et mal orientées
  2. La situation a été bouleversée et le réseau a subi de lourdes pertes
  3. Les pertes atteignent le point de rupture trop rapidement et les positions sont complètement liquidées.
  4. Les joueurs ne peuvent pas revenir à leur point d’entrée après une reprise

Le principal risque est que la grande tendance soit mal jugée, ce qui peut entraîner une forte perte de position en cas de reprise. En outre, si le marché est en forte agitation, les pertes sont accrues si plusieurs grilles sont emprisonnées simultanément.

L’optimisation des paramètres EMA permet d’améliorer l’exactitude des grandes tendances. L’ajustement de l’espacement de la grille et du nombre de premiers ordres permet également de contrôler les pertes globales. Le paramètre de la position de stop loss doit tenir compte de la fréquence des fluctuations du marché.

Direction d’optimisation

Cette stratégie peut également être optimisée dans les directions suivantes:

  1. Optimisation des paramètres EMA pour améliorer la précision des jugements des grandes tendances
  2. Ajustement de la distance et du nombre de grilles pour optimiser le rapport bénéfice-risque
  3. Amélioration de la logique de stop-loss, comme le stop-loss partiel, le stop-loss mobile, etc.
  4. Augmentation des restrictions sur les conditions de réadmission afin d’éviter une réadmission prématurée lors d’un rebond
  5. Le temps d’entrée est évalué en fonction d’autres paramètres, tels que la forme de la ligne K, la sensibilité des indicateurs, etc.
  6. Augmenter le jugement sur les situations exceptionnelles et éviter les pertes massives en cas de situations exceptionnelles

Grâce à ces optimisations, la stratégie peut obtenir de meilleurs rendements dans les conditions générales, tout en maîtrisant les risques et en réduisant les pertes dans les conditions de choc habituelles.

Résumer

La stratégie est une combinaison organique de trading de tendance et de trading de grille. Elle utilise l’EMA pour déterminer la direction générale, puis construit des positions en lots avec la stratégie de grille pour suivre. Le risque est en place, il y a un mécanisme de suivi de stop loss et de recalculation de la grille.

Code source de la stratégie
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
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/
// © zxcvbnm3260

//@version=5
strategy("grid strategy long", overlay=true)


// 版本更新记录:
// v1.0 2021/11/09 只做多、不做空,选择大趋势向上的时间段。网格大小默认为1倍ATR,往下1、2、3个网格吃单,第5个网格止损。空仓时到达往上一个网格则网格整体抬升。(Only go long, not short, choose a time period when the general trend is up. The default grid size is 1x ATR, the next one, two, and three grids will take orders, and the fifth grid will stop loss. When the empty position reaches the upper grid, the grid as a whole rises.)


X_ATR = input.float(title='网格大小是多少倍ATR?', defval = 1)


// 1.基础变量
ema169 = ta.ema(close, 169)
ema144 = ta.ema(close, 144)
ema12 = ta.ema(close, 12)

ema576 = ta.ema(close, 576)
ema676 = ta.ema(close, 676)

plot(ema169, color=color.new(color.orange, 0), linewidth=2)
// plot(ema144, color=color.orange)
plot(ema12,  color=color.blue)
// plot(ema676, color=color.orange, linewidth=1)

mtr = math.max(high - low, math.abs(close[1] - high), math.abs(close[1] - low))
atr = ta.ema(mtr, 30)

is_0930 = hour(time, 'GMT-4') == 9  and minute(time, 'GMT-4') == 30
is_1500 = hour(time, 'GMT-4') == 15 and minute(time, 'GMT-4') == 00
is_1530 = hour(time, 'GMT-4') == 15 and minute(time, 'GMT-4') == 30

is_yangxian = close>open
is_yinxian = close<open

// 2.基本趋势标记

big_trend  = ema12 >= ema169 ? 1 : 0
big_trend2 = ema12 <= ema169 ? 1 : 0

// 背景的变色处理:
bgcolor(big_trend == 1 ? color.new(color.green, 90) : color.new(color.red, 90) )

// 3.网格点位初始化

grid_size = atr * X_ATR // 网格大小
        
price_entry1 = open - grid_size*1
price_entry2 = open - grid_size*2
price_entry3 = open - grid_size*3
price_stop_loss = open - grid_size*5

price_exit1 = price_entry1 + grid_size*1
price_exit2 = price_entry2 + grid_size*1
price_exit3 = price_entry3 + grid_size*1

qty1 = int(1000/price_entry1)
qty2 = int(1000/price_entry2)
qty3 = int(1000/price_entry3)


// 标出各种点位
slm_lines_time(time, price_entry1, price_entry2, price_entry3, price_stop_loss, price_exit1)=>
    time2 = time + 1000*3600*24*5
    line.new(time, price_stop_loss, time2, price_stop_loss, color=color.red, xloc = xloc.bar_time, width=2)  // 止损位
    line.new(time, price_entry1, time2, price_entry1, color=color.green, xloc = xloc.bar_time)  // 
    line.new(time, price_entry2, time2, price_entry2, color=color.green, xloc = xloc.bar_time)  // 
    line.new(time, price_entry3, time2, price_entry3, color=color.green, xloc = xloc.bar_time)  // 
    line.new(time, price_exit1,  time2, price_exit1,  color=color.green, xloc = xloc.bar_time, width=2)  // 

slm_lines(time, price_entry1, price_entry2, price_entry3, price_stop_loss, price_exit1)=>
    line.new(bar_index, price_stop_loss, bar_index[5], price_stop_loss, color=color.red, xloc = xloc.bar_index, width=2)  // 止损位
    line.new(bar_index, price_entry1, bar_index[5], price_entry1, color=color.green, xloc = xloc.bar_index)  // 
    line.new(bar_index, price_entry2, bar_index[5], price_entry2, color=color.green, xloc = xloc.bar_index)  // 
    line.new(bar_index, price_entry3, bar_index[5], price_entry3, color=color.green, xloc = xloc.bar_index)  // 
    line.new(bar_index, price_exit1,  bar_index[5], price_exit1,  color=color.green, xloc = xloc.bar_index, width=2)  // 


// 4.网格点位更新和下单

is_entry0 = big_trend==1 and year>=2020

var is_entry = false

// 未进场时:
if is_entry0 and not is_entry
    is_entry := true
    
    grid_size := atr * X_ATR // 网格大小
    
    price_entry1 := close - grid_size*1
    price_entry2 := close - grid_size*2
    price_entry3 := close - grid_size*3
    price_stop_loss := close - grid_size*5
    
    price_exit1 := price_entry1 + grid_size*1
    price_exit2 := price_entry2 + grid_size*1
    price_exit3 := price_entry3 + grid_size*1
    
    qty1 := int(1000/price_entry1)
    qty2 := int(1000/price_entry2)
    qty3 := int(1000/price_entry3)
    
    // slm_lines(time, price_entry1, price_entry2, price_entry3, price_stop_loss, price_exit1)
    
    strategy.entry("open1", strategy.long, qty1, limit = price_entry1)
    strategy.entry("open2", strategy.long, qty2, limit = price_entry2)
    strategy.entry("open3", strategy.long, qty3, limit = price_entry3)
    
    strategy.exit("close1", qty = qty1, limit = price_exit1, stop = price_stop_loss)
    strategy.exit("close2", qty = qty2, limit = price_exit2, stop = price_stop_loss)
    strategy.exit("close3", qty = qty3, limit = price_exit3, stop = price_stop_loss)

// 已进场的各类情况

// 1.止损
if is_entry and close <= price_stop_loss
    strategy.close_all()
    is_entry := false

// 2.网格抬升
if is_entry and close >= price_exit1
    is_entry := false