Тенденция, следующая за максимизированной стратегией пересечения скользящей средней

Автор:Чао Чжан, Дата: 2023-10-17 13:05:29
Тэги:

img

Обзор

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

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

Стратегия использует 9-периодный краткосрочный MA (SMA) и 50-периодный долгосрочный MA (LMA). Когда SMA пересекает LMA, генерируется сигнал покупки. Когда SMA пересекает LMA, генерируется сигнал продажи.

Стратегия также включает в себя индикатор RSI для измерения силы тренда. Торговые сигналы генерируются только тогда, когда RSI превышает порог (по умолчанию 55).

Стратегия торгуется 30% от общего капитала каждый раз, с одной открытой позицией за раз.

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

  • Эффективно отслеживает возможности тренда с использованием перекрестных сигналов тренда MA.
  • Включение RSI позволяет избежать неправильных сигналов при остановке тренда.
  • Оптимизируются параметры дефолта и обеспечивают стабильную доходность на различных рынках.
  • Разумное управление капиталом позволяет избежать чрезмерного размещения позиций.

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

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

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

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

  • Испытывать различные комбинации MA для поиска оптимальных параметров.
  • Включите другие индикаторы, такие как MACD, чтобы подтвердить тенденцию.
  • Внедрить динамический стоп-лосс для контроля потерь на одну сделку.
  • Корректировка размеров позиций на основе различных рынков.
  • Используйте показатели объема для оценки силы тренда.

Заключение

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


/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 2h
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/
// © relevantLeader16058

//@version=4
strategy(shorttitle='Maximized Moving Average Crossing ',title='Maximized Moving Average Crossing (by Coinrule)', overlay=true, initial_capital=1000,  default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"

//MA inputs and calculations
inlong=input(50, title='MA long period')
inshort=input(9, title='MA short period')

MAlong = sma(close, inlong)
MAshort= sma(close, inshort)

// RSI inputs and calculations
lengthRSI = (14)

RSI = rsi(close, lengthRSI)
RSI_Signal = input(55, title = 'RSI Trigger', minval=1)

//Entry and Exit
bullish = crossover(MAshort, MAlong)
bearish = crossunder(MAshort, MAlong)

strategy.entry(id="long", long = true, when = bullish and RSI > RSI_Signal and window())
strategy.close(id="long", when = bearish and window())

 
plot(MAshort, color=color.purple, linewidth=2)
plot(MAlong, color=color.red, linewidth=2)

Больше