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

Автор:Чао Чжан, Дата: 2023-11-14 16:17:16
Тэги:

img

Обзор

Эта стратегия генерирует сигналы покупки и продажи на основе золотого креста и смертельного креста нескольких простых скользящих средних (SMA) с различными временными периодами для определения направления тренда. Она использует 4 SMA - 20-дневную, 50-дневную, 100-дневную и 200-дневную SMA. Когда краткосрочная SMA пересекает длинную SMA, она считается золотым крестом и запускается сигнал покупки. Когда краткосрочная SMA пересекает длинную SMA, она считается смертельным крестом и запускается сигнал продажи.

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

Основная логика этой стратегии основана на следующих моментах:

  1. Укажите несколько SMA с различными периодами времени, включая 20-дневную, 50-дневную, 100-дневную и 200-дневную SMA.

  2. Проверьте перекрестные ситуации между краткосрочными (20-дневными) и долгосрочными (50-дневными, 100-дневными, 200-дневными) SMA.

  3. Когда 20-дневная SMA пересекает 50-дневную SMA, она считается золотым крестом и запускается сигнал покупки.

  4. Более широкая тенденция определяется тем, что длительные СМД остаются выше коротких СМД, т.е. 50-дневная СМД > 20-дневная СМД.

  5. Приоритетное значение для входных сигналов: 20-дневная SMA vs 50-дневная SMA > 20-дневная SMA vs 100-дневная SMA > 20-дневная SMA vs 200-дневная SMA.

  6. Сигнал выхода генерируется, когда 20-дневная SMA пересекает обратно ниже 50-дневной SMA.

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

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

К основным преимуществам этой стратегии относятся:

  1. Логика проста и легко понять и реализовать.

  2. SMA лучше EMA в фильтрации рыночного шума и определении тенденции.

  3. Использование нескольких временных SMA улучшает надежность сигнала.

  4. Установка приоритета сигналов входа позволяет избежать преждевременного входа.

  5. Настраиваемые периоды SMA и цвета позволяют оптимизировать стратегию.

  6. Применяется для нескольких временных рамок для различных стилей торговли.

  7. Система перекрестка SMA очень эффективна в определении основного направления тренда.

Риски стратегии

Некоторые риски, связанные с этой стратегией:

  1. Слишком много ложных сигналов может возникнуть на рыночных диапазонах с частыми пересечениями SMA.

  2. Фиксированные периоды SMA не могут адаптироваться к изменениям рынка, параметры должны быть оптимизированы на основе тенденции и волатильности.

  3. Только пересечения SMA не могут определить точный вход, должны быть включены другие индикаторы, такие как MACD.

  4. СМА имеют задержку, необходимо оптимизировать сроки входа или использовать лимитные ордера.

  5. Строгое применение стоп-лосса имеет решающее значение для сохранения капитала.

  6. Следует рассмотреть влияние затрат на торговлю на рентабельность.

Улучшение стратегии

Некоторые способы оптимизации этой стратегии:

  1. Оптимизировать периоды SMA динамически на основе рыночных условий и ATR.

  2. Добавьте другие индикаторы, такие как MACD, RSI для времени входа.

  3. Добавьте трендовый фильтр, такой как ADX, чтобы избежать ложных сигналов во время консолидации.

  4. Оптимизируйте методы остановки потерь, такие как остановка ATR или остановка отслеживания.

  5. Динамическое управление размером позиций на основе размера счета.

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

  7. Включить несколько временных рамок, чтобы обеспечить согласованность с более высокими временными рамками.

Заключение

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


/*backtest
start: 2023-10-14 00:00:00
end: 2023-11-13 00:00:00
period: 1h
basePeriod: 15m
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/
// © xyzdesign1989
//@version=5
strategy("SMA crossover buy/sell [SCSM_Algo]", overlay=true, margin_long=3000, margin_short=3000)


BuyCond = ta.crossover(ta.sma(close, 20), ta.sma(close, 50)) and ta.sma(close, 20) > ta.sma(close, 50) and  ta.sma(close, 50) > ta.sma(close, 100) and  ta.sma(close, 100) > ta.sma(close, 200) or (ta.crossover(ta.sma(close, 20), ta.sma(close, 100)) and ta.sma(close, 20) > ta.sma(close, 50))
if (BuyCond)
    strategy.entry("SCSM 🤲 Buy", strategy.long)

SellCond = ta.crossunder(ta.sma(close, 20), ta.sma(close, 50))
if (SellCond)
    strategy.entry("الحمد للہ،Sell", strategy.short)

ma(source, length, type) =>
    type == "SMA" ? ta.sma(source, length) :
     type == "EMA" ? ta.ema(source, length) :
     type == "SMMA (RMA)" ? ta.rma(source, length) :
     type == "WMA" ? ta.wma(source, length) :
     type == "VWMA" ? ta.vwma(source, length) :
     na

show_ma1   = input(true   , "MA №1", inline="MA #1")
ma1_type   = input.string("SMA"  , ""     , inline="MA #1", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
ma1_source = input(close  , ""     , inline="MA #1")
ma1_length = input.int(20     , ""     , inline="MA #1", minval=1)
ma1_color  = input(#0929f6, ""     , inline="MA #1")
ma1 = ma(ma1_source, ma1_length, ma1_type)
plot(show_ma1 ? ma1 : na, color = ma1_color, title="MA №1")

show_ma2   = input(true   , "MA №2", inline="MA #2")
ma2_type   = input.string("SMA"  , ""     , inline="MA #2", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
ma2_source = input(close  , ""     , inline="MA #2")
ma2_length = input.int(50     , ""     , inline="MA #2", minval=1)
ma2_color  = input(#00fb04, ""     , inline="MA #2")
ma2 = ma(ma2_source, ma2_length, ma2_type)
plot(show_ma2 ? ma2 : na, color = ma2_color, title="MA №2")

show_ma3   = input(true   , "MA №3", inline="MA #3")
ma3_type   = input.string("SMA"  , ""     , inline="MA #3", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
ma3_source = input(close  , ""     , inline="MA #3")
ma3_length = input.int(100    , ""     , inline="MA #3", minval=1)
ma3_color  = input(#131313, ""     , inline="MA #3")
ma3 = ma(ma3_source, ma3_length, ma3_type)
plot(show_ma3 ? ma3 : na, color = ma3_color, title="MA №3")

show_ma4   = input(true   , "MA №4", inline="MA #4")
ma4_type   = input.string("SMA"  , ""     , inline="MA #4", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
ma4_source = input(close  , ""     , inline="MA #4")
ma4_length = input.int(200    , ""     , inline="MA #4", minval=1)
ma4_color  = input(#f60c0c, ""     , inline="MA #4")
ma4 = ma(ma4_source, ma4_length, ma4_type)
plot(show_ma4 ? ma4 : na, color = ma4_color, title="MA №4")

Больше