
Стремительная среднелинейная стратегия - это простая стратегия с движущимися средними. Она использует два движущихся средних, быстрое и медленное, когда быстрое движущееся среднее сверху проходит через медленное движущееся среднее, чтобы показать, что цена может подняться.
В стратегии используются два типа скользящих средних, быстрое и медленное. В частности, длина скользящих средних по умолчанию составляет 25 циклов, а длина медленно движущихся средних по умолчанию составляет 62 цикла. Стратегия позволяет выбирать различные типы скользящих средних, включая SMA, EMA, WMA, RMA и VWMA.
Когда быстрая скользящая средняя сверху пересекает медленную скользящую среднюю снизу, это означает, что краткосрочные цены начинают прорываться вверх по отношению к долгосрочным ценам, и это типичный золотой крестовый сигнал, который указывает на то, что цена может войти в верхний канал, и тогда стратегия делает больше; когда быстрая скользящая средняя сверху снизу пересекает медленную скользящую среднюю, это означает, что краткосрочные цены начинают падать ниже долгосрочных цен, и это означает, что цена может войти в нисходящий канал, и тогда стратегия плавность.
Таким образом, можно определить тенденцию и направление цены путем быстрого и медленного пересечения средней линии, и соответственно увеличить или понизить позиции, чтобы получить прибыль.
Эта стратегия имеет следующие преимущества:
В целом, эта стратегия использует как основной торговый сигнал быстрое и медленное пересечение средней линии, обладает большой способностью определять будущие тенденции цены, может получить хорошую прибыль на основе преимуществ отслеживания тенденций и может быть использована в боевых действиях.
Однако есть и потенциальные риски этой стратегии:
Эти риски можно контролировать и улучшать следующими способами:
Основными направлениями оптимизации стратегии являются:
Периодический выбор средне-быстрых и средне-медленных линий: текущий параметр по умолчанию может быть не оптимальным, можно попробовать различные параметры для поиска оптимальной конфигурации
Выбор типов движущихся средних: в настоящее время доступно несколько вариантов движущихся средних, которые можно использовать для тестирования того, какой тип лучше всего работает для конкретных сортов
Комбинации с другими индикаторами или стратегиями: можно попробовать комбинацию с индикаторами волатильности, индикаторами цены или стратегией отслеживания тенденций для повышения эффективности
Самостоятельная адаптация параметров: позволяет параметрам среднелинейного цикла автоматически корректироваться в зависимости от волатильности и ликвидности рынка, повышая стабильность
Поддержка моделей ИИ: алгоритмы машинного обучения для анализа больших объемов данных и автоматического поиска оптимальных правил торговли
Эти оптимизационные инструменты, как ожидается, будут способствовать дальнейшему повышению прибыльности и устойчивости стратегии.
В целом, стратегия пересечения средне-быстрых и медленных линий является очень практичной стратегией отслеживания тенденций. Она фиксирует закономерности изменения цены в разных временных масштабах и определяет возможные будущие тенденции и направления цены путем прорыва средне-быстрых и медленных средних линий.
/*backtest
start: 2023-02-20 00:00:00
end: 2024-02-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
//Author @divonn1994
initial_balance = 100
strategy(title='Fast v Slow Moving Averages Strategy', shorttitle = 'Fast v Slow', overlay=true, pyramiding=0, default_qty_value=100, default_qty_type=strategy.percent_of_equity, precision=7, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent, initial_capital=initial_balance)
//Input for number of bars for moving average, Switch to choose moving average type, Display Options and Time Frame of trading----------------------------------------------------------------
fastBars = input.int(25, "Fast moving average length", minval=1)
slowBars = input.int(62, "Slow moving average length", minval=1)
strategy = input.string("EMA", "MA type", options = ["EMA", "VWMA", "SMA", "RMA", "WMA"])
redOn = input.string("On", "Red Background Color On/Off", options = ["On", "Off"], group='Display')
greenOn = input.string("On", "Green Background Color On/Off", options = ["On", "Off"], group='Display')
maOn = input.string("On", "Moving Average Plot On/Off", options = ["On", "Off"], group='Display')
startMonth = input.int(title='Start Month 1-12 (set any start time to 0 for furthest date)', defval=1, minval=0, maxval=12, group='Beginning of Strategy')
startDate = input.int(title='Start Date 1-31 (set any start time to 0 for furthest date)', defval=1, minval=0, maxval=31, group='Beginning of Strategy')
startYear = input.int(title='Start Year 2000-2100 (set any start time to 0 for furthest date)', defval=2011, minval=2000, maxval=2100, group='Beginning of Strategy')
endMonth = input.int(title='End Month 1-12 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=12, group='End of Strategy')
endDate = input.int(title='End Date 1-31 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=31, group='End of Strategy')
endYear = input.int(title='End Year 2000-2100 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=2100, group='End of Strategy')
//Strategy Calculations-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
inDateRange = true
maMomentum = switch strategy
"EMA" => (ta.ema(close, fastBars) >= ta.ema(close, slowBars)) ? 1 : -1
"SMA" => (ta.sma(close, fastBars) >= ta.sma(close, slowBars)) ? 1 : -1
"RMA" => (ta.rma(close, fastBars) >= ta.rma(close, slowBars)) ? 1 : -1
"WMA" => (ta.wma(close, fastBars) >= ta.wma(close, slowBars)) ? 1 : -1
"VWMA" => (ta.vwma(close, fastBars) >= ta.vwma(close, slowBars)) ? 1 : -1
=>
runtime.error("No matching MA type found.")
float(na)
fastMA = switch strategy
"EMA" => ta.ema(close, fastBars)
"SMA" => ta.sma(close, fastBars)
"RMA" => ta.rma(close, fastBars)
"WMA" => ta.wma(close, fastBars)
"VWMA" => ta.vwma(close, fastBars)
=>
runtime.error("No matching MA type found.")
float(na)
slowMA = switch strategy
"EMA" => ta.ema(close, slowBars)
"SMA" => ta.sma(close, slowBars)
"RMA" => ta.rma(close, slowBars)
"WMA" => ta.wma(close, slowBars)
"VWMA" => ta.vwma(close, slowBars)
=>
runtime.error("No matching MA type found.")
float(na)
//Enter or Exit Positions--------------------------------------------------------------------------------------------------------------------------------------------------------------------
if ta.crossover(maMomentum, 0)
if inDateRange
strategy.entry('long', strategy.long, comment='long')
if ta.crossunder(maMomentum, 0)
if inDateRange
strategy.close('long')
//Plot Strategy Behavior---------------------------------------------------------------------------------------------------------------------------------------------------------------------
plot(series = maOn == "On" ? fastMA : na, title = "Fast Moving Average", color = color.new(color.white,0), linewidth=2, offset=1)
plot(series = maOn == "On" ? slowMA : na, title = "Slow Moving Average", color = color.new(color.purple,0), linewidth=3, offset=1)
bgcolor(color = inDateRange and (greenOn == "On") and maMomentum > 0 ? color.new(color.green,75) : inDateRange and (redOn == "On") and maMomentum <= 0 ? color.new(color.red,75) : na, offset=1)