Система адаптивной скользящей средней торговли Donchian - это количественная стратегия торговли, которая отслеживает тенденции цен. Эта стратегия использует индикатор канала Donchian в сочетании с долгосрочными и краткосрочными скользящими средними, чтобы судить и отслеживать тенденции цен и фиксировать средне- и долгосрочные тенденции цен для трендовой торговли.
Стратегия сначала рассчитывает истинный диапазон волатильности. Истинный диапазон волатильности относится к диапазону ценового движения от ценовой отметки закрытия предыдущей свечи до самой высокой и самой низкой цены текущей свечи. Затем он рассчитывает простую скользящую среднюю отметку истинного диапазона волатильности как полосу пропускания Дончианского канала. В сочетании с скользящими средними отметками двух периодов времени он оценивает ценовую тенденцию. Конкретные правила суждения следующие:
Когда цена проходит через длительный скользящий средний плюс полоса пропускания и краткосрочный скользящий средний плюс полоса пропускания, идти долго; когда цена падает ниже долгосрочного скользящего среднего минус полоса пропускания и краткосрочный скользящий средний минус полоса пропускания, идти коротко. Условия закрытия закрывают длинные позиции, когда цены падают ниже длинных и коротких скользящих средних увеличенных полосой пропускания; закрытие коротких позиций, когда цены растут выше длинных и коротких скользящих средних увеличенных полосой пропускания.
Таким образом, путем динамической корректировки пропускной способности Donchain Channel на основе реальной волатильности и фильтрации с использованием двойных скользящих средних, стратегия может эффективно отслеживать средне- и долгосрочные ценовые тенденции, уменьшать ложные сигналы и получать стабильные долгосрочные торговые возможности.
Эта стратегия имеет следующие преимущества:
Использование реальной волатильности для динамической корректировки пропускной способности канала позволяет избежать статических параметров и лучше адаптироваться к изменениям рынка.
Комбинация двойных скользящих средних может эффективно фильтровать шум и уменьшать ложные сигналы.
Отслеживание средне- и долгосрочных тенденций может уменьшить повторную торговлю и снизить частоту торговли для получения долгосрочных возможностей получения прибыли.
Логика стратегии проста и ясна, легко внедряется, терпима к ошибкам и подходит для автоматизированной алгоритмической торговли.
Стратегия также сопряжена с некоторыми рисками:
При краткосрочных корректировках трудно определить лучшее время входа в долгосрочные сделки.
Параметры должны быть оптимизированы для различных секторов и отдельных запасов.
Точки остановки потерь должны быть должным образом ослаблены в случае значительных изменений тренда в чрезвычайных ситуациях.
В целом, адаптивная система торговли скользящими средними является стабильной, простой и легко реализуемой количественной стратегией. Используя динамические каналы и двойную фильтрацию скользящих средних, она может эффективно отслеживать средне- и долгосрочные рыночные тенденции, снижать частоту торговли и получать долгосрочную устойчивую прибыль. Между тем, необходимо также учитывать оптимизацию параметров, предотвращение рисков и правильную стоп-лосс для адаптации к чрезвычайным ситуациям. В целом эта стратегия имеет выдающиеся результаты и подходит для средне- и долгосрочного алгоритмического отслеживания тенденций.
/*backtest start: 2023-02-14 00:00:00 end: 2024-02-20 00:00:00 period: 1d basePeriod: 1h 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/ // © dongyun //@version=4 strategy("唐齐安移动平均交易系统", overlay=true) longperiod = input(20,'长线') shortperiod = input(5,'短线') bandfactor = input(1.0,'') TrueHigh = 0.0 TrueLow = 0.0 TrueRange = 0.0 TrueHigh := close[1] > high ? close[1] : high TrueLow := close[1] < low ? close[1] : low TrueRange := TrueHigh - TrueLow AvgTrueRange = sma(TrueRange,longperiod) MAlong = sma(close,longperiod) MAshort = sma(close,shortperiod) band = AvgTrueRange * bandfactor if close > MAlong[1] + band[1] and close > MAshort[1] + band[1] strategy.entry("Long", strategy.long, when=strategy.position_size < 1) else if close < MAlong[1] - band[1] and close < MAshort[1] - band[1] strategy.entry("Short", strategy.short, when=strategy.position_size > -1) if close < MAlong[1] - band[1] or close < MAshort[1] - band[1] strategy.close("Long", when=strategy.position_size > 0) else if close > MAlong[1] + band[1] or close > MAshort[1] + band[1] strategy.close("Short", when=strategy.position_size < 0)