Стратегия перекрестной торговли FraMA и MA на основе индикатора FRAMA

Автор:Чао Чжан, Дата: 2024-01-15 14:38:48
Тэги:

img

Резюме

Эта стратегия сначала рассчитывает быструю скользящую среднюю линию ma_fast и медленную скользящую среднюю линию ma_slow, а затем объединяет ее с адаптивной скользящей средней линией FRAMA. Она становится длинной, когда ma_fast пересекает ma_slow, и закрывает позицию, когда ma_slow пересекается ниже ma_fast или FRAMA падает ниже цены закрытия.

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

  1. Вычислите 13-дневную простую скользящую среднюю ma_fast и 26-дневную простую скользящую среднюю ma_slow.

  2. Расчет адаптивной скользящей средней линии FRAMA. Формула FRAMA сложна, основная идея заключается в динамической корректировке плавности α скользящей средней на основе наивысшей, наименьшей и волатильности цен.

  3. Это означает, что краткосрочная скользящая средняя начинает двигаться вверх и работает быстрее, чем долгосрочная, соответствуя характеристикам тренда.

  4. Закрыть позицию, когда ma_slow переходит ниже ma_fast или FRAMA падает ниже цены закрытия.

Анализ преимуществ

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

  2. Индикатор FRAMA автоматически регулирует параметры, избегая субъективности ручной настройки параметров.

  3. Использование двух сигналов выхода позволяет вовремя обнаружить обратный тренд.

Анализ рисков

  1. Двойные пересечения скользящих средних могут иметь випса, что приводит к периодическим потерям.

  2. Адаптивные скользящие средние вводят больше параметров, рискуя переустановить.

  3. Рассматривает только ценовые факторы без фильтра объема торговли, поэтому может упустить возможности.

Оптимизация

  1. Испытывайте различные периоды MA, чтобы найти оптимальную комбинацию.

  2. Добавить подтверждение объема, чтобы избежать ложных сигналов, например, требующих пиков объема.

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

Заключение

Эта стратегия сочетает в себе двойной скользящий средний кроссовер и адаптивный скользящий средний FRAMA, автоматически адаптируясь к рыночным условиям путем динамической корректировки параметров. Двойные MAs хорошо улавливают тенденции, а FRAMA фильтрует шум. Использование двух выходных сигналов также делает стратегию более надежной. Следующими шагами могут быть дальнейшая оптимизация параметров и добавление фильтра объема для его улучшения.


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

//@version=2
strategy("Fractal Adaptive Moving Average",shorttitle="FRAMA",overlay=true)


ma_fast = sma(close,13)

ma_slow = sma(close,26)
plot(ma_fast,color = green)
plot(ma_slow, color = yellow)
price = input(hl2)
len = input(defval=16,minval=1)
FC = input(defval=1,minval=1)
SC = input(defval=198,minval=1)
len1 = len/2
w = log(2/(SC+1))
H1 = highest(high,len1)
L1 = lowest(low,len1)
N1 = (H1-L1)/len1
H2 = highest(high,len)[len1]
L2 = lowest(low,len)[len1]
N2 = (H2-L2)/len1
H3 = highest(high,len)
L3 = lowest(low,len)
N3 = (H3-L3)/len
dimen1 = (log(N1+N2)-log(N3))/log(2)
dimen = iff(N1>0 and N2>0 and N3>0,dimen1,nz(dimen1[1]))
alpha1 = exp(w*(dimen-1))
oldalpha = alpha1>1?1:(alpha1<0.01?0.01:alpha1)
oldN = (2-oldalpha)/oldalpha
N = (((SC-FC)*(oldN-1))/(SC-1))+FC
alpha_ = 2/(N+1)
alpha = alpha_<2/(SC+1)?2/(SC+1):(alpha_>1?1:alpha_)
out = (1-alpha)*nz(out[1]) + alpha*price
plot(out,title="FRAMA",color=purple,transp=0)
entry() => crossover(ma_fast, ma_slow) and (out < close)
exit() => crossover(ma_slow, ma_fast) or crossunder(out, close)

strategy.entry(id= "MA cross", long = true, when = entry())
strategy.close(id= "MA cross", when = exit())

Больше