В процессе загрузки ресурсов... загрузка...

Тенденция после долгой стратегии

Автор:Чао Чжан, Дата: 2023-10-17 15:55:41
Тэги:

img

Обзор

Тенденция, следующая только за долгой стратегией, - это стратегия, которая отслеживает тенденции цен с использованием динамических скользящих средних. Она определяет текущую тенденцию, рассчитывая скользящие средние самых высоких и самых низких цен в течение периода и объединяет ее с ATR для динамического стоп-лосса и получения прибыли. Эта стратегия хорошо работает на трендовых рынках, своевременно улавливая обратные тенденции для долгосрочного держания.

Логика стратегии

Стратегия сначала рассчитывает скользящие средние самых высоких и самых низких цен в течение периода (по умолчанию 200 дней) и принимает их среднюю точку в качестве базовой линии. Затем она измеряет отклонение цены от базовой линии. Если цена выше базовой линии на 1 ATR (0,5 раз 10-дневный ATR по умолчанию), это считается восходящим трендом. Если цена ниже базовой линии на 1 ATR, это считается нисходящим трендом. Долгие или короткие позиции вводятся на основе состояния тренда.

Кроме того, динамический ATR позволяет остановить потерю и получить прибыль, чтобы следовать за основным трендом, избегая чрезмерной торговли при незначительных колебаниях.

Преимущества

  1. Динамические средние эффективно регулируют ценовые действия для определения долгосрочного направления тренда
  2. Остановки на базе ATR динамически следуют за основной тенденцией, избегая чрезмерной чувствительности
  3. Своевременное замечание сдвига тенденции уменьшает несвоевременные траты капитала
  4. Простая логика, легко реализуемая.

Риски и их смягчение

  1. Может генерировать ложные сигналы на различных рынках
  2. Неправильная настройка параметров может пропустить изменение тренда
  3. Следует учитывать расхождение между рыночными и отдельными запасами

Риски могут быть уменьшены путем корректировки параметров ATR, добавления фильтров для установки с высокой вероятностью и оценки рыночных условий и желания рисковать.

Идеи улучшения

  1. Добавить вторичное подтверждение после первоначальных сигналов входа с использованием таких показателей, как KDJ
  2. Оптимизировать параметры, основанные на волатильности, фундаментальных данных отдельных акций
  3. Умножитель ATR на основе обратных испытаний для сбалансирования коэффициента прибыли и показателя оборота
  4. Внедрение динамической корректировки волатильности при стоп-лосс и прибыли
  5. Использование методов машинного обучения для автоматической оптимизации параметров

Резюме

Тренд после длинной только стратегии - это простая в использовании система торговли трендом в целом. Он определяет направление тренда с использованием динамических средних и устанавливает контроль рисков с помощью остановок на основе ATR. Он может эффективно улавливать прибыльные колебания на трендовых рынках.


/*backtest
start: 2022-10-10 00:00:00
end: 2023-10-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Trend Following Long Only Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

lookback_length = input(200, type=input.integer, minval=1, title="Lookback Length")
smoother_length = input(5, type=input.integer, minval=1, title="Smoother Length")
atr_length = input(10, type=input.integer, minval=1, title="ATR Length")
atr_multiplier = input(0.5, type=input.float, minval=0.5, title="ATR Multiplier")

vola = atr(atr_length) * atr_multiplier
price = sma(close, 3)

l = ema(lowest(low, lookback_length), smoother_length)
h = ema(highest(high, lookback_length), smoother_length)
center = (h + l) * 0.5
upper = center + vola
lower = center - vola
trend = ema(price > upper ? 1 : (price < lower ? -1 : 0), 3)
c = trend < 0 ? upper : lower

pcenter = plot(center, transp=100)
pclose = plot(close, transp=100)
pc = plot(c, transp=100)

buy_signal = crossover(trend, 0.0) 
sell_signal = crossunder(trend, 0.0)

strategy.entry("Buy", strategy.long, when=buy_signal)
strategy.close("Buy", when=sell_signal)

bgcolor(trend >= 0 ? color.green : color.red, transp=95)
fill(pc, pclose, color=trend >= 0 ? color.green : color.red)

Больше