Стратегия кроссовера тройной скользящей средней использует кроссовер скользящих средних за разные периоды времени в качестве торговых сигналов, относящихся к стратегии, следующей за трендом.
Во-первых, стратегия рассчитывает краткосрочные (7-дневный дефолт), среднесрочные (25 дней дефолта) и долгосрочные (99 дней дефолта) скользящие средние.
При пересечении краткосрочного MA над среднесрочным MA, генерируется сигнал покупки.
Когда краткосрочный MA переходит ниже среднесрочного MA, генерируется сигнал продажи.
При пересечении краткосрочного MA над долгосрочным MA, генерируется быстрый сигнал покупки.
Когда краткосрочный 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)