Strategi ini mengira purata bergerak dan CHANNEL penyimpangan standard harga untuk membentuk rel atas dan bawah yang dinamik, dan menggabungkan nilai purata harga tertinggi dan terendah untuk membentuk rel tengah, untuk menilai arah trend semasa. Apabila harga menembusi rel atas, ia bermaksud panjang. Apabila harga menembusi rel bawah, ia bermaksud pendek. Ini melaksanakan strategi yang berdagang berdasarkan perubahan trend.
Idea keseluruhan strategi ini jelas dan mudah difahami. Dengan menangkap trend secara dinamik melalui Saluran dan menjana isyarat perdagangan dengan pelbagai reka bentuk rel tengah, ia dapat dengan berkesan mengesan arah trend untuk perdagangan dan memperoleh pulangan yang baik. Dalam aplikasi sebenar, perhatian harus diberikan kepada strategi stop loss, pengurusan modal, pengoptimuman Parameter, dll., untuk mendapatkan pulangan yang stabil dalam jangka panjang.
/*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")