Стратегия прорыва ATR с усилением золотого сечения скользящей средней


Дата создания: 2024-02-26 15:02:26 Последнее изменение: 2024-02-26 15:02:26
Копировать: 0 Количество просмотров: 684
1
Подписаться
1617
Подписчики

Стратегия прорыва ATR с усилением золотого сечения скользящей средней

Обзор

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

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

В коде используется ATR-циклический индикатор, который используется для поиска цены на закрытие, и увеличивается в 1,618 раза в качестве верхней полосы, увеличивается в 2,618 раза в качестве нижней полосы, в сочетании с равнолинейной эмой, чтобы построить систему торговли с прорывом Буринского канала. Когда цена прорывается вверх от нижней полосы, она делает больше, когда цена прорывается вниз от верхней полосы, чтобы получить прибыль от отслеживания тенденции.

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

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

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

  1. Показатель ATR отстает в реагировании на экстремальные ситуации.
  2. Неправильное увеличение размера золота может привести к чрезмерной частоте торгов.
  3. Задержка в сигнале перехода на среднюю линию длительного цикла.

Оптимизация стратегии

  1. Показатель ATR может быть использован в сочетании с индексом рыночной волатильности VIX или с корректировкой увеличенного кратного числа.
  2. В среднелинейной системе можно вводить многовременные EMA, создавая адаптивную торговую систему.
  3. Можно создать механизм хранения убытков, чтобы снизить максимальные потери от одной сделки.

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

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

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

//@version=4
strategy("ATR Long Only Strategy lower band buy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

len = input(52, type=input.integer, minval=1, title="Length")
mul = input(1.618, type=input.float, minval=0, title="Length")
mullow = input(2.618, type=input.float, minval=0, title="Length")

price = sma(close, 1)
average = ema(close, len)
diff = atr(len) * mul
difflow = atr(len) * mullow

bull_level = average + diff
bear_level = average - difflow
bull_cross = crossunder(price, bear_level)
bear_cross = crossunder(bull_level, price)

FromMonth = input(defval = 8, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 18, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2008, title = "From Year", minval = 2008)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2020, title = "To Year", minval = 2019)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
startTimeOk()  => true

if (startTimeOk())
    strategy.entry("KOP", strategy.long, when=bull_cross)
    strategy.close("KOP", when=bear_cross)  //strategy.entry("Sell", strategy.short, when=bear_cross)

plot(price, title="price", color=color.black, transp=50, linewidth=2)
a0 = plot(average, title="average", color=color.red, transp=50, linewidth=1)
a1 = plot(bull_level, title="bull", color=color.green, transp=50, linewidth=1)
a2 = plot(bear_level, title="bear", color=color.red, transp=50, linewidth=1)
fill(a0, a1, color=color.green, transp=97)
fill(a0, a2, color=color.red, transp=97)