
La stratégie utilise la règle de la pirogue pour établir deux points de traçabilité, limiter les pertes par un double point de traçabilité, tout en définissant différents paramètres pour filtrer le bruit du marché et acheter lorsque la tendance est plus évidente.
La stratégie consiste à déterminer le moment d’achat en suivant les points de rupture long_1 et long_2. Long_1 suit les tendances à plus long terme et long_2 les tendances à plus court terme.
Si le prix est supérieur à long_1, le marché est dans une tendance à la hausse à plus long terme, à ce moment-là, si le prix est inférieur à long_2, ce qui indique que la reprise à court terme offre un meilleur moment d’entrée, alors entrez plus; si le prix est inférieur à long_1, la tendance à plus long terme n’est pas déterminée, horterm Si le prix est supérieur à long_2, ce qui indique un rebond à court terme, vous pouvez également entrer.
Après l’entrée, définissez deux points de suivi de stop-loss, stoploss1 et stoploss2, et comparez-les avec profit1, profit2 pour obtenir la valeur maximale, afin de bloquer les bénéfices.
Les paramètres long et profit peuvent être ajustés de manière appropriée pour rendre la stratégie plus agressive et augmenter le nombre de transactions. En même temps, l’algorithme de stop loss est optimisé pour permettre un ajustement automatique.
Cette stratégie est globalement plus conservatrice et s’adresse aux investisseurs qui souhaitent une croissance stable. L’optimisation des paramètres d’ajustement et de l’algorithme de stop-loss permet d’augmenter de manière appropriée l’intransigeance de la stratégie. De plus, le mécanisme d’augmentation du filtrage du bruit du marché est également une orientation d’optimisation ultérieure.
/*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)
//--------------------------------------------------------------