Chiến lược này sử dụng hai điểm dừng lỗ theo dõi dựa trên các quy tắc giao dịch rùa để hạn chế lỗ, trong khi thiết lập các tham số khác nhau để lọc tiếng ồn thị trường và nhập vào các xu hướng rõ rệt hơn.
Chiến lược chủ yếu dựa trên hai điểm dừng lỗ theo dõi, long_1 và long_2, để xác định tín hiệu nhập cảnh. Long_1 theo dõi xu hướng dài hạn trong khi long_2 theo dõi ngắn hạn. Lợi nhuận1 và lợi nhuận2 hoạt động như các điểm dừng lỗ.
Nếu giá cao hơn long_1, thị trường đang trong xu hướng tăng dài hạn. Nếu giá sau đó giảm xuống dưới long_2, nó cho thấy một pullback ngắn hạn cung cấp cơ hội đầu vào tốt để đi dài. Nếu giá thấp hơn long_1, không có xu hướng dài hạn được xác nhận. Nhưng nếu giá sau đó vượt quá long_2, nó báo hiệu một sự bật ngắn hạn và cũng có thể có vị trí dài.
Sau khi nhập, hai lệnh dừng lỗ theo dõi stoploss1 và stoploss2 được thiết lập và so sánh với profit1 và profit2 để lấy giá trị tối đa, để khóa lợi nhuận.
Có thể làm cho chiến lược tích cực hơn bằng cách điều chỉnh các thông số dài và lợi nhuận cho nhiều giao dịch hơn.
Đây là một chiến lược bảo thủ tổng thể phù hợp với các nhà đầu tư tìm kiếm tăng trưởng ổn định. Bằng cách điều chỉnh các tham số và tối ưu hóa thuật toán dừng lỗ, sự hung hăng có thể được tăng lên.
/*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) //--------------------------------------------------------------