Эта стратегия является типичной стратегией пересечения скользящих средних. Она использует пересечение скользящих средних и медленно движущихся средних в качестве сигнала для покупки и продажи. Когда скользящая средняя пересекает медленно движущуюся среднюю снизу, она рассматривается как сигнал к покупке; когда скользящая средняя пересекает медленно движущуюся среднюю снизу, она рассматривается как сигнал к продаже.
Эта стратегия реализуется в основном через следующие шаги:
Настройка fastMA и slowMA.
В зависимости от типа ввода Type, рассчитывается быстрая скользящая средняя fast и медленная скользящая средняя slow.
Настройка диапазона времени отсчета start и finish
Определение перекрестных функций: когда fast проходит через slow снизу, создается сигнал покупать; когда fast проходит через slow сверху, создается сигнал продавать.
При запуске крестовой функции, если она находится в пределах отсчета времени, высылается указание купить и открыть позицию или продать и закрыть позицию.
В конце диапазона отсчета или при прохождении под крестовой функцией, выдается указание на закрытие продажи.
Тренд-карта быстрого и медленного скользящего среднего значения.
Эта стратегия определяет тенденции в течение периода удержания путем скрещивания медленно-быстрых движущихся средних и, соответственно, создает торговый сигнал. При этом устанавливается окно времени обратной связи, чтобы имитировать реальные сделки.
Эта стратегия имеет следующие преимущества:
Использование скользящих средних для определения трендов очень эффективно и позволяет эффективно фильтровать случайные колебания.
В сочетании с медленно-быстрыми скользящими средними можно определить изменение тренда.
Можно адаптироваться к тенденциям разных периодов, регулируя параметры скользящих средних.
Вы можете выбрать простую или индексированную скользящую среднюю.
Параметры стратегии могут быть протестированы и оптимизированы с помощью функции обратной связи.
Стратегическая логика проста, понятна и легко понятна.
Графики скользящих средних позволяют интуитивно оценивать тенденции и эффективность.
Однако эта стратегия также несет в себе некоторые риски:
В пределах сверки может возникнуть ошибочный сигнал
Подвижная средняя имеет отсталость и может пропустить поворотный момент.
Опирается только на равнолинейный пересечение, без фильтрации в сочетании с другими показателями или условиями.
Не учитывается влияние на стоимость сделки.
Нет установленной стратегии стоп-лосса.
Неразумные параметры могут повлиять на эффективность стратегии.
Неправильно выбранный диапазон времени отслеживания может привести к пересоответствию.
Эта стратегия может быть оптимизирована в следующих аспектах:
В сочетании с другими индикаторами, такими как MACD, RSI и т. д. для проверки сигналов, повышается точность.
Добавление стратегии стоп-лосса для контроля одиночных потерь.
Оптимизация параметров скользящих средних для различных периодов.
Добавление управления открытыми позициями, использование различных позиций в разных условиях рынка.
С учетом стоимости сделки, изменение входных и выходных точек.
Проверяйте данные на более длительный промежуток времени, чтобы избежать пересчета.
Продолжайте оптимизировать параметры с помощью walks forward analysis.
Стратегия пересечения движущихся средних является простой и практичной стратегией отслеживания тенденций. Она может фильтровать случайные колебания, идентифицируя направление тенденции. Но есть также некоторые проблемы, такие как отсталость, которые следует использовать в сочетании с другими индикаторами.
/*backtest
start: 2023-09-13 00:00:00
end: 2023-09-20 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
// strategy("MavCrossover v2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
// Revision: 1
// Author: @ToS_MavericK
// === INPUT SMA ===
fastMA = input(defval = 13, title = "FastMA", minval = 1, step = 1)
slowMA = input(defval = 144, title = "SlowMA", minval = 1, step = 1)
Type = input(defval = 1, title = "Type (1 = SMA, 2 = EMA)", minval = 1, maxval = 2, step = 1)
SlowMAIsFactor = input(false)
slowMA := SlowMAIsFactor == true ? round(fastMA * slowMA) : slowMA
// === INPUT BACKTEST RANGE ===
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear = input(defval = 2018, title = "From Year", minval = 2012)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear = input(defval = 2020, title = "To Year", minval = 2012)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
// === MA SETUP ===
fast = Type == 1 ? sma(close, fastMA) : ema(close, fastMA)
slow = Type == 1 ? sma(close, slowMA) : ema(close, slowMA)
// === EXECUTION ===
strategy.entry("L", strategy.long, when = crossover(fast, slow) and window()) // buy long when "within window of time" AND crossover
strategy.close("L", when = crossunder(fast, slow) or time > finish) // sell long when window ends OR crossunder
plot(fast, title = 'FastMA', color = yellow, linewidth = 2, style = line) // plot FastMA
plot(slow, title = 'SlowMA', color = aqua, linewidth = 2, style = line) // plot SlowMA