Двойная скользящая средняя Краткосрочная дневная торговая стратегия


Дата создания: 2024-02-27 16:36:31 Последнее изменение: 2024-02-27 16:36:31
Копировать: 2 Количество просмотров: 724
1
Подписаться
1617
Подписчики

Двойная скользящая средняя Краткосрочная дневная торговая стратегия

Обзор

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

Стратегический принцип

Стратегия использует две простые движущиеся средние линии на 10 и 40 день. Когда краткосрочная средняя линия пересекает долгосрочную среднюю линию, делайте больше; когда краткосрочная средняя линия пересекает долгосрочную среднюю линию, делайте пустоту.

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

Стратегические преимущества

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

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

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

Решение риска:

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

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

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

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

  3. Оптимизация обратного множителя. Тестирование разных размеров множителя для поиска оптимальных параметров.

  4. Проверьте различные периоды в течение дня.

Подвести итог

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

Исходный код стратегии
/*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")