Стратегия перекрестного использования средней скользящей SMA

Автор:Чао Чжан, Дата: 2024-03-28 17:50:00
Тэги:

img

Обзор

Эта стратегия представляет собой простую стратегию пересечения скользящей средней SMA. Она использует две простые скользящие средние (SMA) с различными длинами. Когда быстрый MA пересекает более медленной MA, он входит в длинную позицию. Когда быстрый MA пересекает ниже медленной MA, он закрывает длинную позицию. Длины двух MA могут быть настроены, а также даты начала и окончания для обратного тестирования.

Основная идея этой стратегии состоит в том, чтобы использовать тенденционные характеристики скользящих средних и сигнальные характеристики перекресток MA для торговли. Когда быстрый MA выше медленного MA, это указывает на восходящую тенденцию и длинную позицию следует держать. Когда быстрый MA ниже медленного MA, это указывает на нисходящую тенденцию и никакой позиции не следует держать.

Принцип стратегии

  1. Вычислить две SMA с разными длинами, которые можно настроить.
  2. Проверьте, находится ли текущее время в окне обратного тестирования.
  3. Если быстрый MA пересекает медленный MA, введите длинную позицию.
  4. Если быстрый MA переходит ниже медленного MA, закрыть все длинные позиции.
  5. В других случаях оставайтесь на месте и ничего не делайте.

Анализ преимуществ

  1. Простые и понятные, с четкой логикой, подходящие для обучения и использования новичками.
  2. Движущаяся средняя является широко используемым техническим показателем с очевидными тенденционными характеристиками, которые могут хорошо отражать текущую тенденцию рынка.
  3. Кроссовер MA является классическим сигналом, следующим за трендом, который может быстро улавливать изменения в тенденциях.
  4. Длины МА и окно обратного тестирования могут быть настроены, обеспечивая хорошую гибкость.
  5. Подходит для инструментов и временных рамок с сильными тенденционными характеристиками.

Анализ рисков

  1. Когда рынок сильно колеблется и тенденция часто меняется, могут возникать частые перекрестные сигналы, что приводит к чрезмерной торговле и увеличению затрат на транзакции.
  2. Эта стратегия может только отслеживать тенденции к росту, и бессильна на рынках с диапазоном и тенденциями к снижению.
  3. Выбор параметров MA должен быть оптимизирован для различных инструментов и временных рамок.
  4. Эта стратегия не содержит никаких мер по прекращению потерь и может иметь более высокие риски снижения при резких колебаниях рынка.

Руководство по оптимизации

  1. Рассмотреть возможность добавления соответствующих мер стоп-лосса, таких как ATR-основанная последующая остановка, для контроля максимальной потери одной сделки.
  2. Подумайте о добавлении некоторых условий фильтрации, таких как объем торговли и волатильность, чтобы отфильтровать некоторые ложные сигналы.
  3. Подумайте об оптимизации параметров, например, использование генетических алгоритмов или других интеллектуальных алгоритмов для поиска оптимальной комбинации параметров.
  4. Для повышения надежности и эффективности стратегии следует рассмотреть возможность объединения других технических индикаторов или торговых сигналов с кроссовером MA, таких как MACD и RSI.

Заключение

Стратегия пересечения скользящей средней SMA является простой, простой в понимании, классической и практической стратегией, которая подходит для обучения и использования новичков. Она использует тенденционные характеристики скользящих средних и сигнальные характеристики пересечений MA для быстрого улавливания изменений в рыночных тенденциях. Однако эта стратегия также имеет некоторые ограничения и риски, такие как задержка, частые торговли и отсутствие стоп-лосса. Поэтому в практическом применении ее необходимо надлежащим образом оптимизировать и улучшить в соответствии с конкретными условиями для повышения стабильности и прибыльности стратегии.


/*backtest
start: 2023-03-22 00:00:00
end: 2024-03-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © j0secyn

//@version=5
strategy("MA Cross", overlay=true, margin_long=100, margin_short=100, default_qty_value=100, default_qty_type=strategy.percent_of_equity, initial_capital=10000)

// === INPUT BACKTEST RANGE ===
fromDay   = input.int(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input.int(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear  = input.int(defval = 2018,title = "From Year", minval = 1970)
thruDay   = input.int(defval = 30, title = "Thru Day", minval = 1, maxval = 31)
thruMonth = input.int(defval = 9, title = "Thru Month", minval = 1, maxval = 12)
thruYear  = input.int(defval = 2024, title = "Thru Year", minval = 1970)

slow_ma_length = input.int(defval = 100, title = "Slow MA lenght")
fast_ma_length = input.int(defval = 30, title = "Fast MA lenght")

// === FUNCTION EXAMPLE ===
start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)            // backtest start  window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)            // backtest finish window
window()  => true

// === LOGIC ===
crossOv = ta.crossover(ta.sma(close, fast_ma_length), ta.sma(close, slow_ma_length))
crossUn = ta.crossunder(ta.sma(close, fast_ma_length), ta.sma(close, slow_ma_length))

// === EXECUTION ===
// strategy.entry("L", strategy.long, when = window() and crossOv)        // enter long when "within window of time" AND crossover
// strategy.close("L", when = window() and crossUn)                       // exits long when "within window of time" AND crossunder         
strategy.entry("L", strategy.long, when = window() and crossOv)        // enter long when "within window of time" AND crossover
strategy.close("L", when = window() and crossUn)                       // exits long when "within window of time" AND crossunder         

Больше