Стратегия SMC, объединяющая MACD и EMA

Автор:Чао Чжан, Дата: 2024-03-19 17:37:45
Тэги:

img

Обзор стратегии

Эта стратегия в основном использует индикатор MACD и индикатор EMA для определения рыночных тенденций, в сочетании с сигналами покупки и продажи от индикатора Lux Algo SMC. Она покупает, когда тенденция повышается, а цена выше EMA, и продает, когда тенденция снижается, а цена ниже EMA. Таким образом, стратегия может извлекать выгоду из трендовых рынков, избегая частой торговли на рынках входящего диапазона.

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

Основой этой стратегии является индикатор MACD и индикатор EMA. Индикатор MACD состоит из двух линий: линии MACD и линии сигнала. Когда линия MACD пересекает линию сигнала снизу, это указывает на то, что тенденция может расти, а когда линия MACD пересекает линию сигнала сверху, это указывает на то, что тенденция может снижаться.

В частности, логика этой стратегии следующая:

  1. Вычислите три переменные индикатора MACD: macdLine, signalLine и hist.
  2. Вычислить значение показателя EMA: emaValue.
  3. Получите сигналы покупки и продажи от индикатора Lux Algo SMC: buySignal и sellSignal.
  4. Когда buySignal является истинным, а macdLine больше signalLine, а цена закрытия больше emaValue, открыть длинную позицию.
  5. Когда sellSignal является истинным, а macdLine меньше signalLine, а цена закрытия меньше emaValue, открыть короткую позицию.

Таким образом, стратегия может вовремя выйти на рынок во время трендов на рынках, избегая частого торговли на рынках с ограниченным диапазоном, тем самым повышая стабильность и рентабельность стратегии.

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

  1. Сильная способность отслеживать тенденции: путем объединения индикаторов MACD и EMA стратегия может своевременно определять тенденции рынка и получать прибыль от тенденций рынков.
  2. Избегайте частой торговли: внедряя индикатор EMA, стратегия позволяет избежать частой торговли на рынках с ограниченным диапазоном, тем самым снижая затраты на торговлю и снижая вычеты.
  3. Настройка параметров: параметры стратегии могут быть изменены в соответствии с рыночными условиями, что повышает адаптивность стратегии.
  4. Конкретный код: логика кода стратегии ясна и легко понять и изменить.

Стратегические риски

  1. Чувствительность параметров: производительность стратегии относительно чувствительна к настройкам параметров, и различные комбинации параметров могут привести к большим различиям в производительности стратегии.
  2. Ошибочное суждение о тенденциях: стратегия в основном опирается на индикаторы MACD и EMA для определения тенденций, но оба индикатора могут посылать ложные сигналы, что приводит к потерям стратегии. Поэтому необходимо комбинировать другие индикаторы или методы для проверки надежности тенденции.
  3. Риск внезапного события: стратегия не может справиться с некоторыми внезапными событиями, такими как крупные медвежие новости, события черного лебедя и т. д., которые могут привести к тому, что стратегия будет страдать от больших выводов. Поэтому для контроля рисков необходимо установить соответствующие меры стоп-лосса.

Направления оптимизации стратегии

  1. Введение большего количества индикаторов: рассмотреть возможность введения других индикаторов типа тренда, таких как ADX, DMI и т.д., для проверки надежности индикаторов MACD и EMA и повышения точности суждения о тренде.
  2. Оптимизировать параметры: использовать генетические алгоритмы, поиск сетки и другие методы для оптимизации параметров стратегии для поиска оптимальной комбинации параметров и улучшения эффективности стратегии.
  3. Добавить меры стоп-лосса: Добавить некоторые меры стоп-лосса, такие как фиксированный стоп-лосс, последующий стоп-лосс и т.д., чтобы контролировать риск снижения стратегии.
  4. Сочетание нескольких временных рамок: рассмотрите возможность реализации стратегии в разные временные рамки, используя более высокие временные рамки для определения основной тенденции и более низкие временные рамки для определения точек входа, тем самым повышая стабильность и рентабельность стратегии.

Резюме

Эта стратегия сочетает в себе индикатор MACD и индикатор EMA для определения рыночных тенденций и использует сигналы покупки и продажи индикатора Lux Algo SMC для определения точек входа, получения прибыли от трендовых рынков и избегания частой торговли на рынках с ограниченным диапазоном. Стратегия имеет очевидные преимущества, сжатый код, регулируемые параметры, но также имеет некоторые риски, такие как чувствительность параметров, неправильное суждение о тренде, риск внезапного события и т. Д. Для дальнейшего улучшения эффективности стратегии мы можем рассмотреть возможность внедрения большего количества индикаторов, оптимизации параметров, добавления мер стоп-лосса, объединения нескольких временных рамок и других методов. В целом, эта стратегия является многообещающей количественной торговой стратегией, которая заслуживает дальнейших исследований и оптимизации.


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

//@version=5
strategy("SMC with MACD and EMA", overlay=true)

// 1. MACD Settings
fastLength = input(12, title="MACD Fast Length")
slowLength = input(26, title="MACD Slow Length")
signalLength = input(9, title="MACD Signal Length")

// 2. EMA Settings
emaLength = input(200, title="EMA Length")

// 3. Calculating MACD and assigning variables correctly
[macdLine, signalLine, hist] = ta.macd(close, fastLength, slowLength, signalLength)

// 4. EMA Calculation
emaValue = ta.ema(close, emaLength)

// 5. Get Buy/Sell Signals from Lux Algo SMC Indicator (Modify as needed)
buySignal = input.bool(true, title="Buy Signal from Lux Algo SMC") 
sellSignal = input.bool(true, title="Sell Signal from Lux Algo SMC")

// 6. Strategy Logic (Using the corrected variables)
if buySignal and macdLine > signalLine and close > emaValue 
    strategy.entry("Buy", strategy.long)

if sellSignal and macdLine < signalLine and close < emaValue 
    strategy.entry("Sell", strategy.short)

// 7. Optional: Plot MACD for visualization 
plot(macdLine, color=color.blue, title="MACD")
plot(signalLine, color=color.orange, title="Signal")

Больше