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

Автор:Чао Чжан, Дата: 2024-02-27 16:36:31
Тэги:

img

Обзор

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

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

Стратегия использует 10-дневную и 40-дневную простую скользящую среднюю. Она длится, когда короткий период скользящей средней пересекает над длинным периодом один и становится короткой, когда происходит обратный перекресток. Когда изменяется сигнал, позиция закрывается с использованием двойной величины и инициируется обратная позиция. Торговля происходит только после сигналов скользящей средней в течение определенной внутридневной сессии.

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

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

  1. Простая и понятная логика стратегии, легко понятная и реализуемая.
  2. Эффективно отслеживает краткосрочные ценовые тенденции с использованием перекрестного использования двойного MA.
  3. Избегает риска на ночь, ограничиваясь внутридневным заседанием.
  4. Расширяет потенциал прибыли с помощью обратной торговли двойной величиной.

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

  1. Склонность к ошибкам в торговле шумом как краткосрочная стратегия.
  2. Удвоение количества может усилить потери.
  3. Принудительное расчётное рискованно упускает более долгосрочные прибыльные тенденции.

Уменьшение риска:

  1. Оптимизируйте параметры MA, чтобы уменьшить ложные сигналы.
  2. Добавьте фильтры с использованием других показателей.
  3. Оптимизируйте параметры количества.
  4. Расслабьте длительность сеанса в течение дня.

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

  1. Оптимизируйте параметры MA, тестируя больше комбинаций для лучшего соответствия.

  2. Добавьте фильтры типа подтверждения MACD, чтобы уменьшить ложные сигналы.

  3. Оптимизируйте умножение количества обратного ввода с помощью настройки параметров.

  4. Проверка продления длительности сеанса в течение суток для получения лучшей доходности.

Заключение

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


/*backtest
start: 2024-02-19 00:00:00
end: 2024-02-26 00:00:00
period: 1m
basePeriod: 1m
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/
// © Pritesh-StocksDeveloper

//@version=4
strategy("Moving Average - Intraday", shorttitle = "MA - Intraday", 
     overlay=true, calc_on_every_tick = true)

// Used for intraday handling
// Session value should be from market start to the time you want to square-off 
// your intraday strategy
var i_marketSession = input(title="Market session", type=input.session, 
     defval="0915-1455", confirm=true)

// Short & Long moving avg. period
var int i_shortPeriod = input(title = "Short MA Period", type = input.integer, 
     defval = 10, minval = 2, maxval = 20, confirm=true)
var int i_longPeriod = input(title = "Long MA Period", type = input.integer, 
     defval = 40, minval = 3, maxval = 120, confirm=true)

// A function to check whether the bar is in intraday session
barInSession(sess) => time(timeframe.period, sess) != 0

// Calculate moving averages
shortAvg = sma(close, i_shortPeriod)
longAvg = sma(close, i_longPeriod)

// Plot moving averages
plot(series = shortAvg, color = color.red, title = "Short MA", 
     linewidth = 2)
plot(series = longAvg, color = color.blue, title = "Long MA", 
     linewidth = 2)

// Long/short condition
longCondition = crossover(shortAvg, longAvg)
shortCondition = crossunder(shortAvg, longAvg)

// See if intraday session is active
bool intradaySession = barInSession(i_marketSession)

// Trade only if intraday session is active

// Long position
strategy.entry(id = "Long", long = strategy.long, 
     when = longCondition and intradaySession)

// Short position
strategy.entry(id = "Short", long = strategy.short, 
     when = shortCondition and intradaySession)

// Square-off position (when session is over and position is open)
squareOff = (not intradaySession) and (strategy.position_size != 0)
strategy.close_all(when = squareOff, comment = "Square-off")

Больше