Stratégie de négociation à double traçage

Auteur:ChaoZhang est là., Date: 2023-12-20 13:37:31 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie utilise deux points de stop loss de suivi basés sur les règles de trading de tortue pour limiter les pertes, tout en définissant différents paramètres pour filtrer le bruit du marché et entrer sur des tendances plus prononcées.

La logique de la stratégie

La stratégie s'appuie principalement sur deux points d'arrêt de perte de suivi, long_1 et long_2, pour déterminer les signaux d'entrée. Long_1 suit la tendance à plus long terme tandis que long_2 suit la tendance à plus court terme. Profit1 et profit2 agissent comme points d'arrêt de perte.

Si le prix est supérieur à long_1, le marché est dans une tendance haussière à plus long terme. Si le prix descend ensuite en dessous de long_2, cela indique un rebond à court terme offrant une bonne opportunité d'entrée à long terme. Si le prix est inférieur à long_1, il n'y a pas de tendance à long terme confirmée. Mais si le prix dépasse long_2, cela signale un rebond à court terme et peut également prendre une position longue.

Après l'entrée, deux stop-loss de suivi stoploss1 et stoploss2 sont définis et comparés au profit1 et au profit2 pour prendre la valeur maximale, afin de verrouiller les profits.

Analyse des avantages

  • Le double suivi du stop loss permet de contrôler efficacement les risques et de bloquer les bénéfices
  • La combinaison d'indicateurs à long terme et à court terme permet de filtrer un certain bruit et d'entrer dans des tendances plus prononcées
  • Flexibilité pour ajuster le conservatisme de la stratégie en ajustant les paramètres

Analyse des risques

  • La stratégie est conservatrice et pourrait manquer certaines opportunités.
  • Un paramètre de stop-loss incorrect peut entraîner une sortie prématurée
  • Moins d' échanges, donc une seule perte d' impact commercial pourrait être grande

Peut rendre la stratégie plus agressive en ajustant les paramètres long et profit pour plus de transactions.

Directions d'optimisation

  • Trouver les combinaisons optimales de paramètres pour long et profit
  • Experimenter avec des pertes d'arrêt en zigzag ou en ombre pour réduire les arrêts inutiles
  • Ajouter plus de filtres d'entrée pour détecter des tendances plus fortes
  • Incorporer des indicateurs de volume pour détecter les véritables écarts

Résumé

Il s'agit d'une stratégie globale conservatrice adaptée aux investisseurs qui recherchent une croissance constante. En ajustant les paramètres et en optimisant les algorithmes de stop loss, l'agressivité peut être augmentée.


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

//@version=4
strategy("Turtle Project",overlay= true)
//-----------------------------------------------------------
entry_1 =  input(55) 
profit_1 =  input(20)             

long_1 = float(na)                                                             
long_1:= if high[entry_1] >= highest(high,entry_1)                   
    high[entry_1]                                                            
else                                                                              
    long_1[1]                                                                   


profit1 = float(na)                                                            
profit1:= if low[profit_1] <= lowest(low,profit_1)                   
    low[profit_1]                                                            
else                                                                            
    profit1[1]                      
//-----------------------------------------------------------
entry_2 =  input(20) 
profit_2 =  input(10)             

long_2 = float(na)                                                             
long_2:= if high[entry_2] >= highest(high,entry_2)                   
    high[entry_2]                                                            
else                                                                              
    long_2[1]                                                                   


profit2 = float(na)                                                            
profit2:= if low[profit_2] <= lowest(low,profit_2)                   
    low[profit_2]                                                            
else                                                                           
    profit2[1]                      
//------------------------------------------------------------
stoploss_1= lowest(low,1) < long_1 and highest(high,1) > long_1
stoploss_2= lowest(low,1) < long_2 and highest(high,1) > long_2 

stop_1 = input(1)/100
stop_2 = input(2)/100

plotchar(stoploss_1, "high1", "▲",location.top,color=color.red )
plotchar(stoploss_2, "high2", "▲",location.top,color=color.blue)


//------------------------------------------------------------
if strategy.position_size == 0
    if low < long_1
        if high < long_1 
            strategy.entry("longlong_4",strategy.long, stop=long_1)

if strategy.position_size == 0    
    if low > long_1
        if high < long_2 
            strategy.entry("longlong_3",strategy.long, stop=long_2)

stoploss1 = float(na)
stoploss1:= stoploss_1 ? strategy.position_avg_price * (1 - stop_1) : stoploss1[1]
stoploss__1 = max(stoploss1,profit1)

if high > long_1 and strategy.position_size > 0
    strategy.exit("exit_1 ","longlong_4",stop=stoploss__1)

stoploss2 = float(na)
stoploss2:= stoploss_2 ? strategy.position_avg_price * (1 - stop_2) : stoploss2[1]
stoploss__2 = max(stoploss2,profit2)

if high > long_2 and strategy.position_size > 0
    strategy.exit("exit_2 ","longlong_3",stop=stoploss__2)
//--------------------------------------------------------------
plot(long_1,color=color.red ,linewidth=3)
plot(long_2,color=color.blue,linewidth=3)

plot(profit1,color=color.red,   linewidth=1)
plot(profit2,color=color.blue,  linewidth=1)

//plot(stoploss__1,style=plot.style_circles, color=color.yellow) 
//plot(stoploss__2,style=plot.style_circles, color=color.yellow) 

plot(stoploss1,style=plot.style_circles, color=color.blue) 
plot(stoploss2,style=plot.style_circles, color=color.red) 
//--------------------------------------------------------------

Plus de