
Strategi ini menggunakan peraturan perdagangan pelaut untuk menetapkan dua titik hentian pengesanan, mengehadkan kerugian dengan hentian pengesanan ganda, dan menetapkan parameter yang berbeza untuk menyaring bunyi pasaran dan membeli apabila trend lebih jelas.
Strategi ini terutamanya menentukan masa pembelian dengan dua titik berhenti yang dilacak long_1 dan long_2. Di mana long_1 mengikuti trend jangka panjang, dan long_2 mengikuti trend jangka pendek.
Jika harga lebih tinggi daripada long_1, pasaran berada dalam trend kenaikan jangka panjang, pada masa ini jika harga lebih rendah daripada long_2, yang menunjukkan bahawa perubahan jangka pendek memberikan peluang masuk yang lebih baik, maka masuklah lebih banyak; jika harga lebih rendah daripada long_1, jangka panjang tidak menentukan trend,shorterm Jika harga lebih tinggi daripada long_2, yang menunjukkan kenaikan harga jangka pendek, juga boleh masuk.
Selepas masuk, setkan dua titik berhenti kehilangan stoploss1 dan stoploss2, dan bandingkan dengan profit1 dan profit2 untuk mendapatkan nilai maksimum, sehingga dapat mengunci keuntungan.
Dengan menyesuaikan parameter panjang dan keuntungan, anda boleh membuat strategi lebih agresif, meningkatkan jumlah dagangan. Pada masa yang sama, anda boleh mengoptimumkan algoritma titik hentian anda dan menyesuaikan diri secara automatik.
Strategi ini secara keseluruhannya lebih konservatif dan sesuai untuk pelabur yang mempunyai pertumbuhan yang stabil. Dengan penyesuaian parameter dan pengoptimuman algoritma stop-loss, anda boleh meningkatkan kemerosotan strategi dengan sewajarnya. Di samping itu, mekanisme untuk meningkatkan bunyi pasaran penapis juga merupakan arah pengoptimuman seterusnya.
/*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)
//--------------------------------------------------------------