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

Автор:Чао Чжан, Дата: 2023-09-17 22:35:07
Тэги:

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

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

Стратегия позволяет пользователям выбирать тип и длину скользящих средних.

Если более быстрая линия пересекает более медленную линию, образуется золотой крест и генерируется сигнал покупки. Если более быстрая линия пересекает ниже более медленной линии, образуется крест смерти и генерируется сигнал продажи.

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

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

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

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

  • Может генерировать несколько ложных сигналов, когда рынок колеблется.
  • Неправильный выбор параметров может привести к плохой реализации стратегии.
  • Сигналы отстают, не способны вовремя зафиксировать поворотные моменты.
  • Подвержен внезапным ценовым шокам.

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

Руководство по оптимизации

  • Испытывать различные типы и длину МА для поиска оптимальных параметров.
  • Добавить другие показатели для фильтрации сигналов, например, объем, показатели волатильности.
  • Добавьте логику стоп-лосса/прибыли, чтобы уменьшить вывод.
  • Включить оценку тенденций, чтобы избежать неблагоприятных рыночных условий.
  • Оптимизировать управление деньгами, такие как размещение позиций, бюджетирование рисков.

Заключение

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


/*backtest
start: 2023-09-09 00:00:00
end: 2023-09-13 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "Noro's MAs Tests", shorttitle = "MAs tests", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)


len = input(30, defval = 30, minval = 2, maxval = 1000, title = "MA length")
type = input(1, defval = 1, minval = 1, maxval = 7, title = "Type")
src = input(close, defval = close, title = "Source")

//DEMA
dema = 2 * ema(src, len) - ema(ema(close, len), len)

//TEMA
xPrice = close
xEMA1 = ema(src, len)
xEMA2 = ema(xEMA1, len)
xEMA3 = ema(xEMA2, len)
tema = 3 * xEMA1 - 3 * xEMA2 + xEMA3

//KAMA
xvnoise = abs(src - src[1])
nfastend = 0.20
nslowend = 0.05
nsignal = abs(src - src[len])
nnoise = sum(xvnoise, len)
nefratio = iff(nnoise != 0, nsignal / nnoise, 0)
nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) 
kama = nz(kama[1]) + nsmooth * (src - nz(kama[1]))

//PriceChannel
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

ma = type == 1 ? sma(src, len) : type == 2 ? ema(src, len) : type == 3 ? vwma(src, len) : type == 4 ? dema : type == 5 ? tema : type == 6 ? kama : type == 7 ? center : 0

plot(ma, color = blue, linewidth = 3, transp = 0)

trend = low > ma ? 1 : high < ma ? -1 : trend[1]

longCondition = trend == 1 and trend[1] == -1
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = trend == -1 and trend[1] == 1
if (shortCondition)
    strategy.entry("Short", strategy.short)
    
    
    
    

Больше