Эта стратегия определяет текущее направление тренда, рассчитывая движущиеся средние цены и стандартный разрыв 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")