
Танцянская стратегия - это стратегия отслеживания тенденций. Она использует танцянские каналы, чтобы идентифицировать рыночные тенденции, войти в поле, когда появляется сигнал о направлении тенденции, а затем попытаться захватить всю тенденцию. В то же время, она в сочетании с длинной периодической средней линией для фильтрации, чтобы избежать ошибочного сигнала.
Эта стратегия основана на тончайском канале. Тончайский канал состоит из верхнего, нижнего и среднего треков. Верхний трек - это самая высокая цена за последние n дней, нижний трек - это самая низкая цена за последние n дней, средний трек - это среднее значение верхнего и нижнего треков.
Сначала стратегия рассчитывает верхние, нижние и средние траектории каналов Тоньцзяна длительностью в 20 дней. Затем она определяет, пробилась ли цена через канал. Если цена закрытия пробивается через 200-дневную среднюю линию и цена закрытия пробивается через верхнюю траекторию, она создает многосигнал.
После входа в позицию сделанного множества позиций, стоп-линия устанавливается на нижнюю полосу; после входа в позицию сделанного пустого положения, стоп-линия устанавливается на верхнюю полосу.
Эта стратегия имеет следующие преимущества:
Это позволяет эффективно определять направление рыночных тенденций.
В сочетании с длиннопериодической средней можно эффективно отфильтровывать ошибочные сигналы. Длиннопериодическая средняя обеспечивает, чтобы сигналы появлялись только в направлении большого тренда.
Остановка ущерба на границе прохода позволяет быстро остановить ущерб и эффективно контролировать риск.
Стратегическая логика проста и понятна, легко понятна и реализуема.
Однако эта стратегия также несет в себе определенные риски:
Риск изменения тренда. В случае резкого изменения тренда на рынке может произойти значительный убыток.
Риск оптимизации параметров. Параметры каналов Донцзяна, такие как длина цикла, требуют постоянного тестирования и оптимизации, иначе это может повлиять на эффективность стратегии.
Слишком высокая частота торгов рискует. Торговые сигналы в канале Тунцзяна могут быть слишком частыми, что может привести к чрезмерной частоте торгов.
Эта стратегия может быть оптимизирована в следующих аспектах:
В сочетании с другими показателями проводится фильтрация сигнала. Например, форма K-линии, показатель колебаний и т. д., чтобы избежать ошибочных сигналов.
Оптимизация параметров. Оптимизация параметров длины туннеля Тоньцзяна, чтобы найти оптимальную комбинацию параметров.
Использование адаптивных стоп-убытков. Использование адаптивных стоп-убытков в соответствии с волатильностью рынка и требованиями контроля риска.
Классификация сигналов. Классификация сигналов с использованием различных уровней остановочных потерь для разграничения сильных и слабых сигналов.
В целом, стратегия движения по каналу Туньцзяна является более простой и практичной стратегией отслеживания тенденций. Она позволяет эффективно идентифицировать направление рыночных тенденций и максимально улавливать тенденции. При этом в сочетании с долгосрочной средней линией и остановкой границ канала для контроля риска.
/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-16 00:00:00
period: 1h
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/
// © pratyush_trades
//@version=4
strategy("Donchian Channel Strategy", overlay=true)
length = input(20)
longRule = input("Higher High", "Long Entry", options=["Higher High", "Basis"])
shortRule = input("Lower Low", "Short Entry", options=["Lower Low", "Basis"])
hh = highest(high, length)
ll = lowest(low, length)
up = plot(hh, 'Upper Band', color = color.green)
dw = plot(ll, 'Lower Band', color = color.red)
mid = (hh + ll) / 2
midPlot = plot(mid, 'Basis', color = color.orange)
fill(up, midPlot, color=color.green, transp = 95)
fill(dw, midPlot, color=color.red, transp = 95)
if (close>ema(close,200))
if (not na(close[length]))
strategy.entry("Long", strategy.long, stop=longRule=='Basis' ? mid : hh)
if (close<ema(close,200))
if (not na(close[length]))
strategy.entry("Short", strategy.short, stop=shortRule=='Basis' ? mid : ll)
if (strategy.position_size>0)
strategy.exit(id="Longs Exit",stop=ll)
if (strategy.position_size<0)
strategy.exit(id="Shorts Exit",stop=hh)