Стратегия тренда, основанная на скользящей средней за несколько временных рамок и EMA

Автор:Чао Чжан, Дата: 2024-02-21 15:59:43
Тэги:

img

Обзор

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

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

Основная идея основана на сравнении 3 SMA разных периодов для определения динамики цены.

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

Кроме того, 5-периодная EMA проверяет, указывает ли тело свечи вверх, прежде чем вводить длинные сделки.

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

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

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

Использование EMA для проверки направления тела свечи уменьшает ненужное скольжение от покупки в падающие свечи.

В целом это стабильная и надежная система, подходящая для наблюдения за тенденцией в течение нескольких недель или месяцев.

Риски и способы их смягчения

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

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

Возможности для расширения

  • Для дальнейшего улучшения точности тренда можно добавить больше временных рамок МА или ЕМА.

  • Умеренный стоп-лосс цены может быть протестирован, чтобы закрепить прибыль при снижении потерь в экстремальных движениях.

  • Машинное обучение может динамически оптимизировать параметры для адаптации к меняющимся рыночным условиям.

Заключение

Стратегия является надежной и надежной в целом, используя кроссоверы MA для определения тренда, дополненного фильтром EMA. Дальнейшая оптимизация параметров и осторожное управление рисками могут повысить показатель выигрыша и рентабельность. Достоин дальнейших исследований и применения.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Free Strategy #02 (ES / SPY)", overlay=true)

// Inputs
Quantity = input(1, minval=1, title="Quantity")
SmaPeriod01 = input(3, minval=1, title="SMA Period 01")
SmaPeriod02 = input(8, minval=1, title="SMA Period 02")
SmaPeriod03 = input(10, minval=1, title="SMA Period 03")
EmaPeriod01 = input(5, minval=1, title="EMA Period 01")
MaxProfitCloses = input(5, minval=1, title="Max Profit Close")
MaxBars = input(10, minval=1, title="Max Total Bars")

// Misc Variables
src = close
BarsSinceEntry = 0
MaxProfitCount = 0
Sma01 = sma(close, SmaPeriod01)
Sma02 = sma(close, SmaPeriod02)
Sma03 = sma(close, SmaPeriod03)
Ema01 = ema(close, EmaPeriod01)

// Conditions
Cond00 = strategy.position_size == 0
Cond01 = close < Sma03
Cond02 = close <= Sma01
Cond03 = close[1] > Sma01[1]
Cond04 = open > Ema01
Cond05 = Sma02 < Sma02[1]

// Update Exit Variables
BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1
MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1])

// Entries
strategy.entry(id="L1", long=true, qty=Quantity, when=(Cond00 and Cond01 and Cond02 and Cond03 and Cond04 and Cond05))
 
// Exits
strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))

Больше