Тенденционная стратегия торговли SMA 1.1

Автор:Чао Чжан, Дата: 2023-09-22 16:40:33
Тэги:

Обзор

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

Логика стратегии

Стратегия оценивает направление тренда, рассчитывая быстрые и медленные линии SMA.

  • Медленная линия SMA (синяя) используется для определения направления тренда.

  • Быстрая линия SMA (красная) используется для определения конкретных точек входа. В восходящем тренде, идти долго, когда закрытие свечи ниже, чем открытие и ниже быстрой SMA. В нисходящем тренде, идти коротко, когда закрытие выше, чем открытие и выше быстрой SMA.

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

Преимущества

  • Стратегия использует только два основных индикатора SMA, очень простых в понимании.
  • Использование двух линий SMA для определения тенденций является надежным, избегая шума рынка.
  • Учитывая цвет свечи, можно избежать проникновения контртенда, уменьшая риск.
  • Настраиваемые параметры быстрого и медленного SMA подходят для различных рыночных условий.
  • Может идти только долго или коротко, гибко для различных рыночных ситуаций.

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

  • СМА имеет отстающие характеристики, может пропустить повороты тренда.
  • Фиксированные параметры не могут адаптироваться к изменяющимся рынкам, необходимо их корректировать.
  • Оценка тренда может быть ошибочной, что приводит к рискам, связанным с контратендом.
  • Отсутствие подтверждения при комбинации одного индикатора, риск переоценки.

Возможные оптимизации для решения рисков:

  1. Добавьте MACD, чтобы подтвердить тренд.

  2. Внедрить стоп-лосс для контроля риска.

  3. Добавьте оптимизацию параметров для адаптивных параметров.

  4. Добавьте подтверждение входа, чтобы избежать перепродажи.

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

Основные аспекты оптимизации стратегии:

  1. Добавление модуля для автоматической корректировки параметров на основе рыночных условий.

  2. Добавьте такие индикаторы, как MACD, Bollinger Bands, чтобы подтвердить сигналы SMA.

  3. Используйте стратегии стоп-лосса, такие как стоп-лосс, чтобы ограничить риски.

  4. Контроль вывода. Закрыть все позиции, когда максимальный процент вывода достигнут, чтобы ограничить потери.

  5. Используйте индикаторы более высоких временных рамок для подтверждения сигналов SMA более низких временных рамок.

  6. Добавить переключатели для выбора только длинных или коротких сделок для разных рынков.

Резюме

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


/*backtest
start: 2023-08-22 00:00:00
end: 2023-09-21 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Noro's Trend SMA Strategy v1.1", shorttitle = "Trend SMA str 1.1", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

fastlen = input(5, "fast SMA Period")
slowlen = input(15, "slow SMA Period")
only = input(false, "Only long?")

fastsma = ema(close, fastlen)
slowsma = ema(close, slowlen)

trend = low > slowsma ? 1 : high < slowsma ? -1 : trend[1]

up = trend == 1 and low < fastsma and close < open ? 1 : 0
dn = trend == -1 and high > fastsma and close > open ? 1 : 0

plot(fastsma, color = red, title = "Fast SMA")
plot(slowsma, color = blue, title = "Slow SMA")

longCondition = up == 1
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = dn == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, only == true ? 0 : na)

Больше