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

Автор:Чао Чжан, Дата: 2023-11-06 09:48:33
Тэги:

img

Обзор

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

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

Во-первых, стратегия рассчитывает краткосрочные (7-дневный дефолт), среднесрочные (25 дней дефолта) и долгосрочные (99 дней дефолта) скользящие средние.

  1. При пересечении краткосрочного MA над среднесрочным MA, генерируется сигнал покупки.

  2. Когда краткосрочный MA переходит ниже среднесрочного MA, генерируется сигнал продажи.

  3. При пересечении краткосрочного MA над долгосрочным MA, генерируется быстрый сигнал покупки.

  4. Когда краткосрочный MA пересекается ниже долгосрочного MA, генерируется быстрый сигнал продажи.

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

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

  • Логика стратегии проста и легко понять и реализовать.

  • Использование анализа с использованием нескольких временных рамок может эффективно отражать изменения рыночных тенденций.

  • Параметры могут быть оптимизированы путем корректировки периодов MA.

  • Визуальные перекрестные сигналы интуитивно отражают изменения тренда.

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

  • У MAs есть отстающие вопросы и они могут пропустить точки переворота тренда.

  • Слишком много ложных сигналов, когда краткосрочный MA пересекает длительный MA на бычьих рынках.

  • Слишком много ложных сигналов, когда краткосрочный MA пересекает длительный MA на медвежьих рынках.

  • Быстрые торговые сигналы могут быть слишком чувствительными, увеличивая частоту торговли и комиссии.

Правильная корректировка периодов MA или добавление условий фильтрации могут помочь оптимизировать и уменьшить ложные сигналы.

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

  • Добавить условия фильтрации, такие как генерация сигналов только при выполнении определенных объемов торговли или процентов изменения цен.

  • Комбинируйте с другими индикаторами, такими как MACD, KDJ, чтобы избежать ошибочных сделок при отсутствии четкой тенденции.

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

  • Различить бычьи и медвежьи рынки, оптимизировать параметры покупки и продажи отдельно.

  • Учитывайте торговые издержки, корректируйте параметры быстрой торговли для контроля частоты.

Резюме

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


/*backtest
start: 2023-10-06 00:00:00
end: 2023-11-05 00:00:00
period: 1h
basePeriod: 15m
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/
// © dadashkadir

//@version=4
strategy("Üç Hareketli Ortalama Str.", overlay=true, initial_capital=10000, commission_value=0.047, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0, calc_on_order_fills=true)

kisa = input(title = "Kısa Vade - Gün", defval = 7,  minval = 1)
orta = input(title = "Orta Vade - Gün", defval = 25, minval = 1)
uzun = input(title = "Uzun Vade - Gün", defval = 99, minval = 1)

sma7  = sma(close, kisa)
sma25 = sma(close, orta)
sma99  = sma(close, uzun)

alTrend  = plot (sma7, color=#2323F1, linewidth=2, title="Har.Ort. Kısa Vade", transp=0)
satTrend = plot (sma25, color=#FF0C00, linewidth=3, title="Har.Ort. Orta Vade", transp=0)
ort99    = plot (sma99, color=#DFB001, linewidth=3, title="Har.Ort. Uzun Vade", transp=0)

zamanaralik = input (2020, title="Backtest Başlangıç Tarihi")

al  = crossover (sma7, sma25) and zamanaralik <= year
sat = crossover (sma25, sma7) and zamanaralik <= year

hizlial = crossover (sma7, sma99) and zamanaralik <= year
hizlisat = crossover (sma99, sma7) and zamanaralik <= year

alkosul  = sma7 >= sma25
satkosul = sma25 >= sma7

hizlialkosul  = sma7 >= sma99
hizlisatkosul = sma99 >= sma7

plotshape(al,  title = "Buy",  text = 'Al',  style = shape.labelup,   location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sat, title = "Sell", text = 'Sat', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)

plotshape(hizlial,  title = "Hızlı Al",  text = 'Hızlı Al',  style = shape.labelup,   location = location.belowbar, color= color.blue, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(hizlisat, title = "Hızlı Sat", text = 'Hızlı Sat', style = shape.labeldown, location = location.abovebar, color= #6106D6 , textcolor = color.white, transp = 0, size = size.tiny)

fill (alTrend, satTrend, color = sma7 >= sma25? #4DFF00 : #FF0C00, transp=80, title="Al-Sat Aralığı")
//fill (ort99, satTrend, color = sma7 >= sma25? #6106D6 : color.blue, transp=80, title="Hızlı Al-Sat Aralığı")

if (al)
    strategy.entry("LONG", strategy.long)
if (sat)
    strategy.entry("SHORT", strategy.short)
//if (hizlial)
//    strategy.entry("My Short Entry Id", strategy.long)
//if (hizlisat)
//    strategy.entry("My Short Entry Id", strategy.short)    

Больше