Это была первоначальная система равновесия точек тренда, созданная Уэллсом Уайлдером в 1978 году, правила торговли которой можно найти в его книге “Техническая система анализа новых концепций”. Система использует динамические индикаторы для идентификации тренда и настраивает стоп-стоп в определенном порядке, создавая более устойчивую систему отслеживания тренда.
Основные компоненты стратегии и правила торгов следующие:
Динамический индикатор: рассчитывает изменения в цене закрытия N циклов, чтобы определить тенденцию цены.
Многоусловие: последовательное увеличение значения динамики в текущем цикле и в последних двух циклах.
Условия пустоты: последовательное снижение значения динамики в текущем цикле и в последних двух циклах.
Стоп-стоп: средняя цена за предыдущий день ± диапазон колебаний за предыдущий день.
Точка остановки: 2 раза средняя цена предыдущего дня - минимальная цена ((сделай больше) или 2 раза средняя цена - максимальная цена ((сделай пустой)
После входа выйти по цене стоп-лосса или стоп-стоп.
Эта стратегия проста и непосредственна, использует динамику для определения направления тенденции и контролирует риск с помощью специального метода остановки убытков, создавая более устойчивую систему отслеживания тенденций.
По сравнению с другими стратегиями отслеживания тенденций, она имеет следующие основные преимущества:
Расчет динамического показателя прост и легко реализуем.
По мнению экспертов, это может быть связано с повышенным уровнем шума.
Устойчивый метод для предотвращения повреждений.
Ограничение размера убытков.
“Возвращение под контролем, прибыль очевидна”
Это не очень сложная задача, но она может быть реализована гибко.
Параметры могут быть изменены для различных рынков.
Стратегическая концепция проста.
В целом, стабильность и способность управлять рисками более высоки.
Однако эта стратегия несет в себе следующие риски:
Задержка в динамике, возможно, пропущены ключевые повороты.
Эффект зависит от степени оптимизации параметров.
Риск быть обманутым, не учитывая объемы сделок.
Стоп-стоп устанавливается произвольно и может быть неудачным.
Продолжительность испытаний должна быть подтверждена.
Фиксированная позиция не может быть изменена динамически.
Ограниченный простор для оптимизации, неопределенность прибыли.
Необходимо следить за соотношением прибыли и убытка, чтобы не допустить пересоответствия.
В свете приведенного выше анализа, данная стратегия может быть оптимизирована в следующих аспектах:
Попробуйте различные методы подсчета мощности.
Подключение к проверке объема транзакций.
Оптимизация параметров стоп-стоп.
Внедрение машинного обучения для генерирования динамических сигналов.
Оценка устойчивости различных сортов к различным циклам.
Создание динамической модели управления позициями.
Установите максимальную допустимую отмену.
Оптимизация стратегии управления капиталом.
Продолжайте проверять и проверять, чтобы предотвратить переоптимизацию.
Стратегия в целом представляет собой относительно простую и непосредственную систему отслеживания тенденций. Однако любая стратегия нуждается в постоянной оптимизации и проверке, чтобы оставаться адаптированной к рынку. Систематическая работа может повысить эффективность и стабильность стратегии.
/*backtest
start: 2023-09-15 00:00:00
end: 2023-09-22 00:00:00
period: 5m
basePeriod: 1m
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/
// © 2020 X-Trader.net
//@version=3
strategy("Trend Balance Point System by Welles Wilder", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 10000)
MomPer = input(2, "Momentum Period")
isLong = strategy.position_size > 0
isShort = strategy.position_size < 0
longTrigger = mom(close, MomPer)[1] > mom(close, MomPer)[2] and mom(close, MomPer)[1] > mom(close, MomPer)[3]
shortTrigger = mom(close, MomPer)[1] < mom(close, MomPer)[2] and mom(close, MomPer)[1] < mom(close, MomPer)[3]
longEntry = (not isLong) and longTrigger
shortEntry = (not isShort) and shortTrigger
longStop = valuewhen(longEntry, ((high[1]+low[1]+close[1])/3 - (high[1]-low[1])), 0)
longTP = valuewhen(longEntry, (2*(high[1]+low[1]+close[1])/3 - low[1]), 0)
shortStop = valuewhen(shortEntry, ((high[1]+low[1]+close[1])/3 + (high[1]-low[1])), 0)
shortTP = valuewhen(shortEntry, (2*(high[1]+low[1]+close[1])/3 - high[1]), 0)
strategy.entry(id = "Long", long = true, when = longEntry)
strategy.exit("Exit Long", "Long", profit = longTP, loss = longStop, when = isLong)
strategy.entry(id = "Short", long = false, when = shortEntry)
strategy.exit("Exit Short", "Short", profit = shortTP, loss = shortStop, when = isShort)