Стратегия торговли на основе пересечения скользящих средних


Дата создания: 2023-11-27 17:25:36 Последнее изменение: 2023-11-27 17:25:36
Копировать: 0 Количество просмотров: 639
1
Подписаться
1617
Подписчики

Стратегия торговли на основе пересечения скользящих средних

Обзор

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

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

Эта стратегия рассчитывает 20-циклические и 50-циклические EMA с помощью индексальных подвижных средних (EMA). При 20-циклической EMA с 50-циклической EMA выполняется операция по покупке. При 20-циклической EMA с 50-циклической EMA с продажей.

Индекс EMA является скользящим средним, который придает больший вес последним данным. Формула расчета EMA:

EMAtoday = (Pricetoday * k) + EMAyesterday * (1-k)

где k = 2/ (количество циклов + 1)

Таким образом, когда краткосрочная EMA пересекает долгосрочную EMA, это означает, что ценовое движение становится бычьим, LONG; когда краткосрочная EMA пересекает долгосрочную EMA, это означает, что ценовое движение становится медвежьим, SHORT.

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

Эта стратегия имеет следующие преимущества:

  1. Простые в использовании и понятные для понимания.
  2. Небольшое заимствование, небольшое изъятие, благоприятное для управления капиталом.
  3. Гибкость в регулировании параметров, может быть адаптирована для различных рынков.
  4. Применяется на любых сортах и применяется для внутридневного и трендового трейдинга.

Риск и оптимизация

Также существуют следующие риски:

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

Поэтому эта стратегия может быть оптимизирована в следующих аспектах:

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

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

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

Исходный код стратегии
/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
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/
// © brandlabng

//@version=5
//study(title="Holly Grail", overlay = true)
strategy('HG|E15m', overlay=true)
src = input(close, title='Source')

price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(20, title='1st MA Length')
type1 = input.string('EMA', '1st MA Type', options=['EMA'])

ma2 = input(50, title='2nd MA Length')
type2 = input.string('EMA', '2nd MA Type', options=['EMA'])

price1 = if type1 == 'EMA'
    ta.ema(price, ma1)

price2 = if type2 == 'EMA'
    ta.ema(price, ma2)


//plot(series=price, style=line,  title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=plot.style_line, title='1st MA', color=color.new(#219ff3, 0), linewidth=2)
plot(series=price2, style=plot.style_line, title='2nd MA', color=color.new(color.purple, 0), linewidth=2)


longCondition = ta.crossover(price1, price2)
if longCondition
    strategy.entry('Long', strategy.long)

shortCondition = ta.crossunder(price1, price2)
if shortCondition
    strategy.entry('Short', strategy.short)