Эта стратегия рассчитывает скользящий средний и стандартное отклонение CHANNEL цены, чтобы сформировать динамические верхние и нижние рельсы, и объединяет среднее значение самых высоких и самых низких цен, чтобы сформировать средний рельс, чтобы судить о текущем направлении тренда. Когда цена проходит через верхний рельс, это означает длинный. Когда цена проходит через нижний рельс, это означает короткий. Это реализует стратегию, которая торгует на основе изменений тренда.
Общая идея этой стратегии ясна и понятна. Динамически захватывая тенденции через канал и генерируя торговые сигналы с несколькими дизайнами средней рельсы, он может эффективно отслеживать направления тренда для торговли и получать хорошую прибыль. В фактическом применении следует обратить внимание на стратегии остановки потерь, управление капиталом, оптимизацию параметров и т. Д., Чтобы получить стабильную прибыль в долгосрочной перспективе.
/*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")