Стратегия двойного перемещающегося среднего выхода

Автор:Чао Чжан, Дата: 2024-01-24 14:49:29
Тэги:

img

Обзор

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

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

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

  1. Вычислить экспоненциальную скользящую среднюю AP ценового массива с периодом 2 дней
  2. Вычислить быстро движущуюся среднюю скорость на основе AP, с периодом 12 дней
  3. Вычислить медленную скользящую среднюю медленную на основе AP, с периодом 26 дней
  4. Сравните быстрые и медленные скользящие средние:
    1. Когда быстрый пересекает медленный, это бычий сигнал
    2. Когда быстрый переходит ниже медленного, это медвежий сигнал.
  5. Определить конкретные торговые сигналы, объединяющие взаимосвязь между ценой и скользящей средней:
    1. Бычий сигнал: Быстрый> Медленный && AP> Быстрый
    2. Сигнал медвежьего движения: Fast

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

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

Стратегия двойного перемещающегося среднего имеет следующие преимущества:

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

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

Стратегия двойного перемещающегося среднего выхода также сопряжена с некоторыми рисками:

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

Решения:

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

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

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

  1. Найти более подходящие комбинации скользящих средних периодов для адаптации к изменениям рынка
  2. Добавить такие показатели, как объем для фильтрации сигнала, чтобы обеспечить его достоверность
  3. Включение показателей структуры рынка для выявления тенденций и корректировки параметров
  4. Принять динамические скользящие средние, которые могут автоматически корректировать периоды на основе изменений рынка
  5. Включить стратегии стоп-лосса для эффективного контроля риска и защиты капитала

Заключение

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


/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("CDC Action Zone V.2", overlay=true)

// CDC ActionZone V2 29 Sep 2016
// CDC ActionZone is based on a simple 2MA and is most suitable for use with medium volatility market
// 11 Nov 2016 : Ported to Trading View with minor UI enhancement
LSB = input(title="Long/Short", defval="Long only", options=["Long only", "Short only" , "Both"])
src = input(title="Data Array",type=input.source,defval=ohlc4)
prd1=input(title="Short MA period", type=input.integer,defval=12)
prd2=input(title="Long MA period",type=input.integer,defval=26)
AP = ema(src,2)
Fast = ema(AP,prd1)
Slow = ema(AP,prd2)


Bullish = Fast>Slow
Bearish = Fast<Slow

Green = Bullish and AP>Fast
Red = Bearish and AP<Fast
Yellow = Bullish and AP<Fast
Blue = Bearish and AP>Fast

Buy = Bullish and Bearish[1]
Sell = Bearish and Bullish[1]


alertcondition(Buy,"Buy Signal","Buy")
alertcondition(Sell,"Sell Signal","Sell")


//Plot

l1=plot(Fast,"Fast", linewidth=1,color=color.red)
l2=plot(Slow,"Slow", linewidth=2,color=color.blue)
bcolor = Green ? color.lime : Red ? color.red : Yellow ? color.yellow : Blue ? color.blue : na
barcolor(color=bcolor)
fill(l1,l2,bcolor)

// === INPUT BACKTEST RANGE ===
FromYear  = input(defval = 2000, title = "From Year", minval = 1920)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 1921)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"


if LSB == "Long only" and Buy and window()
    strategy.entry("L",true)
if LSB == "Long only" and Sell and window()
    strategy.close("L",qty_percent=100,comment="TP Long")
if LSB == "Both" and Buy and window()
    strategy.entry("L",true)
if LSB == "Both" and Sell and window()
    strategy.entry("S",false)
if LSB == "Short only" and Sell and window()
    strategy.entry("S",false)
if LSB == "Short only" and Buy and window()
    strategy.close("S",qty_percent=100,comment="TP Short")

Больше