Адаптивная динамическая пороговая стратегия на основе данных временных рядов


Дата создания: 2024-04-01 10:48:52 Последнее изменение: 2024-04-01 10:48:52
Копировать: 2 Количество просмотров: 613
1
Подписаться
1617
Подписчики

Адаптивная динамическая пороговая стратегия на основе данных временных рядов

Обзор

Эта стратегия представляет собой временную серию чистой стоимости акций или других финансовых активов, основанных на данных, которые, используя динамический расчет эффективности (ER) в качестве скольжения коэффициента (EMA) в качестве скольжения коэффициента (ER) в качестве скольжения коэффициента (EMA) в качестве скольжения коэффициента (ER) в качестве скольжения коэффициента (EMA) в качестве скольжения коэффициента (ER) в качестве скольжения коэффициента (ER) в качестве скольжения коэффициента (ER) в качестве скольжения коэффициента (ER) в качестве скольжения коэффициента (ER) в качестве скольжения коэффициента (ER) в качестве скольжения коэффициента (ER) в качестве скольжения коэффициента (ER) в качестве скольжения коэффициента (ER) в качестве скольжения коэффициента (ER) в качестве скольжения коэффициента (ER) в качестве скольжения коэффициента (ER) в качестве скольжения коэффициента (ER) в качестве скольжения коэффициента (ER).

Стратегический принцип

  1. Эффективность вычисления данных о чистой стоимости (ER), то есть отношение изменения чистой стоимости к общему изменению. Чем меньше значение ER, тем более плавное изменение чистой стоимости; чем больше значение ER, тем сильнее изменение чистой стоимости.
  2. Используя ER в качестве сглаживающего фактора alpha для функции pine_ema, динамически вычисляется среднее значение EMA и абсолютная погрешность чистой стоимости.
  3. Увеличить среднее значение EMA и уменьшить абсолютную отклонение, чтобы получить динамические изменения вверх и вниз.
  4. При повышении чистой стоимости акций в текущем периоде открывается лишний рынок, а при повышении низкой стоимости рынок закрывается.

Стратегические преимущества

  1. Использование всей информации, содержащейся в данных чистой временной последовательности, без необходимости установки каких-либо параметров и оптимизации, метод прост и естественен.
  2. С помощью динамического расчета ER для корректировки коэффициента сглаживания EMA, можно адаптироваться к сложности изменений в чистой стоимости, гибко реагировать на изменения рынка.
  3. По сравнению с традиционными EMA с фиксированными параметрами, динамическая EMA может эффективно сократить количество сделок и время хранения, снизить затраты на сделки и риск.
  4. Эффективно контролировать отзывы. По сравнению с покупкой и владением, эта стратегия может снизить максимальный отзыв в 2-3 раза или увеличить доход в 2-3 раза при том же отзыве.
  5. Комбинация нескольких стратегий может быть легко применена для автоматического переключения стратегий.

Стратегический риск

  1. Эта стратегия основана на чистых временных последовательностях данных, и в случае коренного переворота ценового курса, может быть медленнее, чем в случае сбыта, что может повлиять на прибыль.
  2. Несмотря на то, что данная стратегия позволяет адаптировать параметры, ее адаптивность к экстремальным ситуациям требует дальнейшего изучения.
  3. В настоящее время эта стратегия ориентирована в основном на ситуацию с лишним весом, но в случае с лишним весом она нуждается в дальнейшем совершенствовании.
  4. В практическом применении эта стратегия имеет высокие требования к качеству выбранных знаков, требуя выбора долгосрочных знаков, движущихся вверх.

Направление оптимизации стратегии

  1. Можно рассмотреть вопрос о дальнейшей оптимизации методов расчета ER, введении большего количества показателей, отражающих характер изменения чистой стоимости, повышение устойчивости и эффективности ER.
  2. Условия для открытия позиции могут быть уточнены, например, можно рассмотреть возможность включения мобильных стоп-стоп, процентных стоп-стоп и т. д., что повысит прибыльность стратегии и ее устойчивость к риску.
  3. Для различных стандартов и рыночных условий можно оптимизировать параметры и адаптировать стратегию, повышая универсальность стратегии.
  4. Эта стратегия может быть комбинирована с другими стратегиями (такими как отслеживание тенденций, среднезначное возвращение и т. д.), чтобы использовать преимущества различных стратегий и повысить устойчивость и прибыльность портфеля.

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-03-26 00:00:00
end: 2024-03-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy('Equity control', 'EC')
// study('Exponential bands', 'EB', overlay = true)


er(src) =>
    var start = src
    var total = 0.0

    total += abs(src - nz(src[1], src))
    net    = abs(src - start          )
    
    net / total

pine_ema(src, alpha) =>
    mean = 0.0
    dev  = 0.0

    mean := na(mean[1]) ? src : (1 - alpha) * mean[1] + alpha *     src
    dev  := na(dev [1]) ? 0   : (1 - alpha) * dev [1] + alpha * abs(src - mean)

    [mean, dev]


src = input(close)


a           = er      (src   )
[mean, dev] = pine_ema(src, a)

dev_lower = mean - dev
dev_upper = mean + dev


// plot(dev_lower, 'lower deviation', color.silver, 2, plot.style_stepline)
// plot(mean     , 'basis'          , color.purple, 1, plot.style_stepline)
// plot(dev_upper, 'upper deviation', color.silver, 2, plot.style_stepline)


if src > dev_upper
    strategy.entry('event', true, comment = 'on')
if src < dev_lower
    strategy.close('event', comment = 'off')


plot(strategy.equity)

//bigDope