
Эта стратегия является классической системой отслеживания трендов. Она использует движущиеся средние для определения направления тренда и вступает в игру при прорыве тончайского канала. Параметры тончайского канала, установленные на 50 дней, эффективно отфильтровывают шум краткосрочного рынка.
Эта стратегия основана на следующих моментах:
Индексы для определения тренда используют 40- и 120-дневные индикаторные скользящие средние. Когда быстрая линия сверху проходит медленную линию, это является сигналом золотой вилки, указывающим на вход в восходящую тенденцию; когда быстрая линия сверху снизу проходит медленную линию, это является сигналом мертвой вилки, указывающим на вход в нисходящую тенденцию.
Параметры прохода Танцзяна установлены на 50 дней, фильтруя краткосрочные колебания рынка. Сделайте больше только тогда, когда цена прорывается вверх, и сделайте пустоту, когда она прорывается вниз, чтобы избежать подкупа.
Стоп-лосс устанавливается как четырехкратный ATR ниже цены. ATR эффективно измеряет волатильность и риск рынка, а стоп-лосс устанавливается в определенном количестве, чтобы контролировать убытки от одной сделки.
Индексные скользящие средние больше соответствуют текущим ценовым тенденциям, в то время как простые скользящие средние слишком гладкие.
50-дневный срок прохождения в сочетании со средней линией 40 и 120 дней позволяет эффективно отфильтровывать ложные прорывы.
Эта стратегия имеет следующие преимущества:
Сочетание скользящих средних позволяет эффективно определять направление рыночных тенденций. 40-дневная средняя линия может улавливать краткосрочные тенденции, 120-дневная средняя линия может определять средне-долгосрочные тенденции.
Тоньчжанский канал фильтрует шум, чтобы избежать преследования высоких и низких уровней. Только ценовые прорывы входного канала позволяют эффективно избежать зоны колебаний в середине торгового рынка.
Стоп-лосс устанавливается разумно, чтобы контролировать убытки от одной сделки и избежать разрыва позиции. Контроль потерь от одной сделки может гарантировать устойчивость прибыли.
Индексные скользящие средние больше соответствуют тенденциям изменения цен, и система может держать позиции дольше, в соответствии с тенденционным трейдинговым подходом.
Выбор параметров скользящих средних учитывает чувствительность к улавливанию тенденций и стабильность фильтрации шума.
Однако эта стратегия также несет в себе некоторые риски:
Риски, связанные с долгосрочным удержанием позиции: эта стратегия относится к стратегии отслеживания тенденции, и в случае длительного горизонтального скорректирования или обратного тренда, вы столкнетесь с большими потерями.
Риск ложного прорыва: когда цена касается вблизи канала, может быть определенная доля ложного прорыва, что приводит к ненужной сделке.
Риск параметровой настройки: настройка параметров скользящих средних и каналов слишком субъективна, и в разных рынках необходимо корректировать комбинацию параметров, иначе это может повлиять на стабильность системы.
Слишком маленький риск остановки убытков: слишком маленькая остановка убытков, которая может привести к слишком большому количеству остановки убытков, что может повлиять на прибыль.
Решение проблемы:
Эта стратегия может быть оптимизирована в следующих направлениях:
Тестируйте комбинации различных равномерных линий, чтобы найти оптимальную комбинацию параметров. Можно тестировать комбинации различных простых, индексов, движущихся средних, таких как Hull.
Оптимизация циклов и параметров каналов, чтобы сделать прорывные сигналы более эффективными. Можно оптимизировать в сочетании с частотой колебаний рынка.
Оптимизация стоп-стратегии, использование стоп-слежения в течение тренда и использование фиксированного стопа после окончания тренда.
Для повышения точности сигналов используются такие показатели, как MACD, KD и другие.
Повышение стратегии управления позициями, увеличение позиций в течение тренда, оптимизация прибыли.
Выбор комбинации параметров в зависимости от характеристик разных сортов делает систему более гибкой.
Эта стратегия в целом является типичной и простой в качестве системы отслеживания тенденций. Ее основной принцип заключается в использовании движущихся средних и прорывной фильтрации каналов.
/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 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/
// © Robrecht99
//@version=5
strategy("Long Term Trend Following System", overlay=true, margin_long=0, margin_short=0, pyramiding=4)
// Backtest Range //
Start = input(defval = timestamp("01 Jan 2017 00:00 +0000"), title = "Backtest Start Date", group = "backtest window")
Finish = input(defval = timestamp("01 Jan 2100 00:00 +0000"), title = "Backtest End Date", group = "backtest window")
//Moving Averages //
len1 = input.int(40, minval=1, title="Length Fast EMA", group="Moving Average Inputs")
len2 = input.int(120, minval=1, title="Length Slow EMA", group="Moving Average Inputs")
src1 = input(close, title="Source Fast MA")
src2 = input(close, title="Source Slow MA")
maFast = input.color(color.new(color.red, 0), title = "Color Fast EMA", group = "Moving Average Inputs", inline = "maFast")
maSlow = input.color(color.new(color.blue, 0), title = "Color Slow EMA", group = "Moving Average Inputs", inline = "maSlow")
fast = ta.ema(src1, len1)
slow = ta.ema(src2, len2)
plot(fast, color=maFast, title="Fast EMA")
plot(slow, color=maSlow, title="Slow EMA")
// Donchian Channels //
Length1 = input.int(title="Length Upper Channel", defval=50, minval=1, group="Donchian Channels Inputs")
Length2 = input.int(title="Length Lower Channel", defval=50, minval=1, group="Donchian Channels Inputs")
h1 = ta.highest(high[1], Length1)
l1 = ta.lowest(low[1], Length2)
fillColor = input.color(color.new(color.purple, 95), title = "Fill Color", group = "Donchian Channels Inputs")
upperColor = input.color(color.new(color.orange, 0), title = " Color Upper Channel", group = "Donchian Channels Inputs", inline = "upper")
lowerColor = input.color(color.new(color.orange, 0), title = " Color Lower Channel", group = "Donchian Channels Inputs", inline = "lower")
u = plot(h1, "Upper", color=upperColor)
l = plot(l1, "Lower", color=upperColor)
fill(u, l, color=fillColor)
strategy.initial_capital = 50000
//ATR and Position Size //
length = input.int(title="ATR Period", defval=14, minval=1, group="ATR Inputs")
risk = input(title="Risk Per Trade", defval=0.01, group="ATR Inputs")
multiplier = input(title="ATR Multiplier", defval=2, group="ATR Inputs")
atr = ta.atr(length)
amount = (risk * strategy.initial_capital / (multiplier * atr))
// Buy and Sell Conditions //
entrycondition1 = ta.crossover(fast, slow)
entrycondition2 = fast > slow
sellcondition1 = ta.crossunder(fast, slow)
sellcondition2 = slow > fast
// Buy and Sell Signals //
if (close > h1 and entrycondition2)
strategy.entry("long", strategy.long, qty=amount)
stoploss = close - atr * 4
strategy.exit("exit sl", stop=stoploss, trail_offset=stoploss)
if (sellcondition1 and sellcondition2)
strategy.close(id="long")
if (close < l1 and sellcondition2)
strategy.entry("short", strategy.short, qty=amount)
stoploss = close + atr * 4
strategy.exit("exit sl", stop=stoploss, trail_offset=stoploss)
if (entrycondition1 and entrycondition2)
strategy.close(id="short")