Chiến lược này tạo ra tín hiệu mua khi trung bình di chuyển nhanh vượt qua trung bình di chuyển chậm. Đồng thời, nó tính giá dừng lỗ sau dựa trên phạm vi trung bình thực sự để thiết lập tín hiệu bán. Chiến lược này có thể theo dõi hiệu quả xu hướng thị trường và cắt giảm lỗ một cách kịp thời khi lấy lợi nhuận.
Chiến lược này kết hợp các lợi thế của việc theo dõi xu hướng và quản lý dừng lỗ. Nó có thể theo dõi xu hướng trung bình đến dài hạn và kiểm soát lỗ giao dịch duy nhất thông qua dừng lỗ.
Các thông số có thể được tối ưu hóa để cân bằng phạm vi dừng lỗ. Các chỉ số khác cũng có thể được kết hợp để cải thiện thời gian nhập.
Chiến lược này kết hợp thành công khả năng theo dõi xu hướng của MA
/*backtest start: 2024-01-05 00:00:00 end: 2024-02-04 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //created by XPloRR 24-02-2018 strategy("XPloRR MA-Buy ATR-MA-Trailing-Stop Strategy",overlay=true, initial_capital=1000,default_qty_type=strategy.percent_of_equity,default_qty_value=100) testStartYear = input(2005, "Start Year") testStartMonth = input(1, "Start Month") testStartDay = input(1, "Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2050, "Stop Year") testStopMonth = input(12, "Stop Month") testStopDay = input(31, "Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) testPeriodBackground = input(title="Background", type=bool, defval=true) testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na bgcolor(testPeriodBackgroundColor, transp=97) emaPeriod = input(12, "Exponential MA") smaPeriod = input(45, "Simple MA") stopPeriod = input(12, "Stop EMA") delta = input(6, "Trailing Stop #ATR") testPeriod() => true emaval=ema(close,emaPeriod) smaval=sma(close,smaPeriod) stopval=ema(close,stopPeriod) atr=sma((high-low),15) plot(emaval, color=blue,linewidth=1) plot(smaval, color=orange,linewidth=1) plot(stopval, color=lime,linewidth=1) long=crossover(emaval,smaval) short=crossunder(emaval,smaval) //buy-sell signal stop=0 inlong=0 if testPeriod() if (long and (not inlong[1])) strategy.entry("buy",strategy.long) inlong:=1 stop:=emaval-delta*atr else stop:=iff((nz(emaval)>(nz(stop[1])+delta*atr))and(inlong[1]),emaval-delta*atr,nz(stop[1])) inlong:=nz(inlong[1]) if ((stopval<stop) and (inlong[1])) strategy.close("buy") inlong:=0 stop:=0 else inlong:=0 stop:=0 plot(stop,color=green,linewidth=1)