
Стратегия движущегося среднего перетягивания - это количественная торговая стратегия, которая отслеживает пересечение движущихся средних цен на акции, чтобы определить, есть ли возможность перетягивания, и, если есть, проводить обратную операцию. Эта стратегия использует Фибоначчи, чтобы установить точки входа в рынок и остановку потерь, чтобы поймать перетягивание на краткосрочных ценах.
Стратегия основана на двух движущихся средних: 14-дневная EMA и 56-дневная SMA. Когда 14-дневная EMA проходит 56-дневную SMA снизу, она создает сигнал покупки. После этого код возвращается на 20-й день, чтобы найти низкую точку в качестве поддержки, а затем, в сочетании с ценой, близкой к точке прохождения, он рисует фибоначчи-откатную линию, используя 1,272-кратную откатную линию в качестве входа и 0,618-кратную откатную линию в качестве выхода. Таким образом, стратегия устанавливает точку входа, чтобы сделать пустоту после возникновения форка.
В целом, стратегия состоит из следующих шагов:
Вот основные процессы и принципы работы стратегии. Когда происходит кратковременный обратный откат цены, эта стратегия может использовать такие возможности для получения прибыли.
В основном, у этой стратегии есть следующие преимущества:
В целом, эта стратегия очень подходит для торговли короткими линейными обратными линиями, когда рыночная ситуация вызывает определенный отклонение, чтобы поймать такой арбитраж.
Несмотря на то, что у этой стратегии есть свои преимущества, есть определенные риски, о которых следует помнить:
Для вышеуказанных рисков мы можем установить более короткое время остановки, строго контролировать одиночные потери; в то же время оптимизировать диапазон отрыва от линии оттяжки, установить разумную целевую прибыль, чтобы избежать части риска.
Есть много возможностей для оптимизации этой стратегии переменной средней, в основном, в следующих областях:
тестирование различных параметров, таких как продолжительность циклов движущихся средних, число дней в обратном порядке, множители обратной тяги, чтобы найти оптимальные параметры;
увеличение механизмов погашения убытков с возможностью использования многократного или мобильного погашения убытков для лучшего контроля риска;
В сочетании с другими показателями FILTER, чтобы избежать торговли в неблагоприятных рыночных условиях;
Оптимизация управления капиталом, установление разумного размера позиции и рискового порога.
Эта стратегия может быть улучшена путем тестирования и оптимизации параметров, что приводит к более устойчивой торговле.
Стратегия движущейся средней обратной тяги является очень практичной стратегией торговли короткой линией. Она может захватить возможности для возврата цены в краткосрочной перспективе, торговать с помощью заранее установленных точек входа и остановочных точек.
/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("MAC Pullback", overlay=true)
// Setting up timeperiod for testing
startPeriodYear = input(2014, "Backtest Start Year")
startPeriodMonth = input(1, "Backtest Start Month")
startPeriodDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(startPeriodYear, startPeriodMonth, startPeriodDay, 0, 0)
stopPeriodYear = input(2035, "Backtest Stop Year")
stopPeriodMonth = input(12, "Backtest Stop Month")
stopPeriodDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(stopPeriodYear, stopPeriodMonth, stopPeriodDay, 0, 0)
// Moving Averages
ema14 = ema(close, 14)
ema28 = ema(close, 28)
sma56 = sma(close, 56)
// Plot
plot(ema14, title="ema14", linewidth=2, color=green)
plot(ema28, title="ema28", linewidth=2, color=red)
plot(sma56, title="sma56", linewidth=3, color=blue)
// Strategy
goLong = cross(ema14, sma56) and ema14 > ema28
goShort = cross(ema14, sma56) and ema14 < ema28
// Locate Swing Lows
leftBars = input(20)
rightBars=input(20)
swinglow = pivotlow(close, leftBars, rightBars)
plot(swinglow, style=cross, linewidth=8, color=#00FF00, offset=-rightBars)
if goLong == true and time >= testPeriodStart and time <= testPeriodStop
// We try to make sure that we're catching the first Pullback after the crossover
if ema14[12] < sma56[12]
pivotpoint = lowest(40)[0] //lowest value of the month as our swing low
// We calculate a Fib 1.272 extension (from the previous swing low to
// the crossover long entry's open) and use this as our entry target to short the Pullback
extensiontarget = ((close[1] - pivotpoint) * 1.27) + pivotpoint
shorttarget = ((close[1] - pivotpoint) * 0.618) + pivotpoint
strategy.order("Pullback", strategy.short, 5.0, limit=extensiontarget)
// I would like to use a trailing stop but for know we just hope to get
// filled if the pullback reaches all the way down to the 0.618.
// We also place a tight stop loss since we trying to short an uptrend
strategy.exit("Pullback Exit", "Pullback", limit=shorttarget, loss=400)