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


Дата создания: 2024-01-12 14:04:37 Последнее изменение: 2024-01-12 14:04:37
Копировать: 0 Количество просмотров: 615
1
Подписаться
1617
Подписчики

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

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

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

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

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

Стратегический риск

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

Оптимизация

  1. Оптимизация циклических параметров движущихся средних для различных сортов и циклов
    1. Добавление фильтров на другие показатели, такие как объем сделок, Брин-банк и т. д.
  2. Сочетание стратегий тренда и реверса, отслеживание в тренде, ожидание возможности в сборе

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

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

Исходный код стратегии
/*backtest
start: 2023-01-05 00:00:00
end: 2024-01-11 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/
// © rt-maax

//@version=5

strategy(title = "rt maax EMA cross strategy", shorttitle = "rt maax ema ", overlay = true, precision = 8, max_bars_back = 200, pyramiding = 0, initial_capital = 100000, 
     currency = currency.USD, default_qty_type = strategy.cash, default_qty_value = 100000, commission_type = "percent", commission_value = 0.27)
fastema = ta.ema (close , 50)
fema=ta.ema(close,20)
slowema= ta.ema(close,200)
price = close

// === INPUT BACKTEST RANGE ===
fromMonth = input.int(defval = 1,    title = "From Month",  minval = 1, maxval = 12)
fromDay   = input.int(defval = 1,    title = "From Day",    minval = 1, maxval = 31)
fromYear  = input.int(defval = 2021, title = "From Year",   minval = 1970)
thruMonth = input.int(defval = 10,    title = "Thru Month",  minval = 1, maxval = 12)
thruDay   = input.int(defval = 25,    title = "Thru Day",    minval = 1, maxval = 31)
thruYear  = input.int(defval = 2112, title = "Thru Year",   minval = 1970)

// === INPUT SHOW PLOT ===
showDate  = input(defval = true, title = "Show Date Range")

// === FUNCTION EXAMPLE ===



longCondition1= ta.crossover (fema , fastema) 
longcondition2= fema> slowema
longcondition3=fastema>slowema


if (longCondition1 and longcondition2 and longcondition3 )
    stoploss=low*0.97
    takeprofit=high*1.12
    strategy.entry("Long Entry", strategy.long)
    strategy.exit ("exit","long",stop=stoploss,limit=takeprofit)
   


shortCondition1 = ta.crossunder (fema , fastema )
shortcondition2= fastema< slowema
shortcondition3= fema< slowema

if (shortCondition1 and shortcondition2 and shortcondition3 )
    stoploss=low*0.97 
    takeprofit=high*1.5
    strategy.entry("Short Entry", strategy.short)
    strategy.exit("exit","short",stop=stoploss,limit=takeprofit)