
Эта стратегия сначала рассчитывает быстрые и медленные скользящие средние значения ma_fast и ma_slow, а затем в сочетании с FRAMA адаптируется к скользящим средним значениям, делая больше при прохождении ma_slow на ma_fast, а при прохождении ma_fast на ma_slow или при прохождении FRAMA при закрытии.
Вычислите 13-дневную простую подвижную среднюю ma_fast и 26-дневную простую подвижную среднюю ma_slow.
Вычисление ФРАМА адаптируется к скользящей средней out. Формулы вычисления ФРАМА более сложны, основная идея заключается в том, чтобы скорректировать среднюю линию в зависимости от максимальных, минимальных значений цены и динамики волатильности.
Это означает, что краткосрочная средняя линия начинает расти и побеждает долгосрочную среднюю линию, соответствующую тенденции.
При прохождении ma_slow при прохождении ma_fast или при прохождении закрытия при FRAMA. Это означает обратный сигнал тренда.
Преимущества двойной равнолинейной системы в сочетании с адаптивной равнолинейной системой. Двойная равнолинейная система хорошо улавливает тенденции, а адаптивная равнолинейная система лучше фильтрует шум.
Показатель FRAMA может автоматически корректировать параметры, избегая субъективности параметров, выбранных вручную.
Используя одновременно два сигнала выхода, можно вовремя обнаружить обратный тренд.
Возможность неправильного расположения двух равномерных пересечений, которые могут привести к периодическим потерям.
Адаптация к скользящим средним увеличивает количество параметров стратегии, что может привести к переоптимизации.
Если мы не будем учитывать только ценовые факторы и не будем отфильтровывать объемы, мы можем упустить возможность.
Можно тестировать комбинации средних линий разных циклов, чтобы найти оптимальные параметры.
Можно добавить подтверждение количества сделанных сделок, чтобы избежать недействительного сигнала. Например, увеличение количества сделанных сделок.
Можно оптимизировать условия для открытия позиции и позиции, чтобы сделать стратегию более стабильной. Например, открывать позиции только при продолжении формы прорыва.
Эта стратегия сочетает в себе двойную равновесную скрещивание и FRAMA адаптивную равновесную линию, которая автоматически приспосабливается к рыночной среде путем динамической корректировки параметров. Двойная равновесная линия умеет улавливать тенденции, 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())