
Эта стратегия использует двойные подвижные средние, подвижные средние с 8 и 21 циклами соответственно. При использовании длинных подвижных средних над короткосрочными подвижными средними, делают больше; при использовании длинных подвижных средних ниже короткосрочных подвижных средних, делают меньше.
Эта стратегия также включает в себя скольжение скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения скольжения
В основе этой стратегии лежит скрещивание краткосрочных и долгосрочных скользящих средних. Краткосрочные скользящие средние способны быстрее улавливать тенденции изменения цен, а долгосрочные скользящие средние обладают лучшей эффективностью фильтрации шума. При пересечении долгосрочных линий в коротких линиях, которые показывают формирование многополосной тенденции, делается дополнительная прибыль; при пересечении долгосрочных линий в коротких линиях, которые показывают формирование пустой тенденции, делается пустая прибыль.
Эта стратегия также устанавливает наклонный порог. Многосигналы создаются только тогда, когда наклон больше положительного порога, и пустые сигналы - только тогда, когда наклон меньше отрицательного порога. Это позволяет отфильтровывать промежутки, в которых нет очевидной тенденции, чтобы повысить качество торговых сигналов.
В частности, логика генерирования торговых сигналов этой стратегии состоит в следующем:
Эта стратегия имеет следующие преимущества:
Однако эта стратегия также несет в себе некоторые риски:
Для этих рисков можно оптимизировать следующие аспекты:
Эта стратегия также может быть оптимизирована в следующих направлениях:
Эта стратегия двойных движущихся средних в целом проста и практична, она захватывает различные трендовые характеристики с помощью параметров двух циклов диффов и объединяется для создания торговых сигналов. В то же время, введение наклонных значений повышает качество сигнала. Эта стратегия может использоваться в качестве базовой стратегии и расширяться, и есть много возможностей для оптимизации и расширения.
/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//written by sixpathssenin
//@version=4
strategy(title="Dual Moving Average",initial_capital=10000,overlay=true)
ma1= sma(close,8)
ma2= sma(close,21)
angleCriteria = input(title="Angle", type=input.integer, defval=7, minval=1, maxval=13)
i_lookback = input(2, "Angle Period", input.integer, minval = 1)
i_atrPeriod = input(10, "ATR Period", input.integer, minval = 1)
i_angleLevel = input(6, "Angle Level", input.integer, minval = 1)
i_maSource = input(close, "MA Source", input.source)
f_angle(_src, _lookback, _atrPeriod) =>
rad2degree = 180 / 3.141592653589793238462643 //pi
ang = rad2degree * atan((_src[0] - _src[_lookback]) / atr(_atrPeriod)/_lookback)
ang
_angle = f_angle(ma2, i_lookback, i_atrPeriod)
plot(ma1,color=#FF0000)
plot(ma2,color=#00FF00)
crosso=crossover(ma1,ma2)
crossu=crossunder(ma1,ma2)
_lookback = 15
f_somethingHappened(_cond, _lookback) =>
bool _crossed = false
for i = 1 to _lookback
if _cond[i]
_crossed := true
_crossed
longcrossed = f_somethingHappened(crosso,_lookback)
shortcrossed = f_somethingHappened(crossu,_lookback)
long = longcrossed and _angle > angleCriteria
short= shortcrossed and _angle < -(angleCriteria)
if(long)
strategy.entry("Long",strategy.long)
if(short)
strategy.entry("short",strategy.short)