Chiến lược này tính toán trung bình động và lệch chuẩn CHANNEL của giá để hình thành đường ray trên và dưới năng động, và kết hợp giá trị trung bình của giá cao nhất và thấp nhất để hình thành đường ray giữa, để đánh giá hướng xu hướng hiện tại. Khi giá vượt qua đường ray trên, nó có nghĩa là dài. Khi giá vượt qua đường ray dưới, nó có nghĩa là ngắn. Điều này thực hiện một chiến lược giao dịch dựa trên những thay đổi xu hướng.
Ý tưởng tổng thể của chiến lược này là rõ ràng và dễ hiểu. Bằng cách nắm bắt xu hướng một cách năng động thông qua kênh và tạo ra các tín hiệu giao dịch với nhiều thiết kế đường ray giữa, nó có thể theo dõi hiệu quả các hướng xu hướng để giao dịch và có được lợi nhuận tốt. Trong ứng dụng thực tế, nên chú ý đến các chiến lược dừng lỗ, quản lý vốn, tối ưu hóa tham số, v.v., để có được lợi nhuận ổn định trong dài hạn.
/*backtest start: 2023-09-10 00:00:00 end: 2023-10-10 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © ErdemDemir //@version=4 strategy("Lawyers Trend Pro Strategy", shorttitle="Lawyers Trend Pro Strategy", overlay=true) src = close mult = 2.0 basis = sma(src, 20) dev = mult * stdev(src, 20) upper = basis + dev lower = basis - dev offset = 0 lower2 = lowest(20) upper2 = highest(20) basis2 = avg(upper2, lower2) MB= (basis+basis2)/2 col1=close>MB col3=MB>close colorE = col1 ? color.blue : col3 ? color.red : color.yellow p3=plot(MB, color=colorE, linewidth=3) // Deternine if we are currently LONG isLong = false isLong := nz(isLong[1], false) // Determine if we are currently SHORT isShort = false isShort := nz(isShort[1], false) // Buy only if the buy signal is triggered and we are not already long buySignal = not isLong and crossover(close,MB) // Sell only if the sell signal is triggered and we are not already short sellSignal= not isShort and crossover(MB,close) if (buySignal) isLong := true isShort := false if (sellSignal) isLong := false isShort := true /// LONG strategy.entry("long", true , when = buySignal, comment="Open Long") strategy.close("long", when=sellSignal, comment = "Close Long") /// SHORT strategy.entry("short", false, when = sellSignal, comment="Open Short") strategy.close("short", when=buySignal, comment = "Close Short")