Средняя стратегия прорыва истинного диапазона с золотым коэффициентом

Автор:Чао Чжан, Дата: 2024-02-26 15:02:26
Тэги:

img

Обзор

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

Принципы

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

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

  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)

Больше