Эта стратегия использует принцип пересечения скользящей средней для определения направления тренда и генерации сигналов купли и продажи.
Стратегия использует две скользящие средние, 7-дневную MA как быструю линию и 5-месячную MA как медленную линию. Быстрая линия быстро улавливает изменения цен, в то время как медленная линия фильтрует шум и определяет направление тренда. Когда быстрая линия переходит выше медленной линии снизу, это считается быстрым сигналом для длинного. Когда быстрая линия переходит через медленную линию сверху, это считается медленным сигналом для короткого.
В частности, стратегия рассчитывает 7-дневную простую скользящую среднюю (SMA) и 5-месячную SMA, выставляя их на графике цен. Когда 7-дневная линия пересекает 5-месячную линию снизу, генерируется сигнал покупки. Когда 7-дневная линия пересекает 5-месячную линию сверху, запускается сигнал продажи. Стратегия также визуализирует периоды сигнала.
Стратегия имеет следующие преимущества:
Простая и надежная теоретическая основа, основанная на широко известном принципе перекрестки скользящей средней.
Используются только две скользящие средние, с простым выбором параметров и легкой реализацией.
Быстрые и медленные линии эффективно работают вместе, чтобы определить тенденции и отфильтровать шум рынка.
Различные временные рамки фиксируются с помощью различных периодов МА, обнаруживая изменения тренда в нескольких масштабах.
Простая реализация с ясной, понятной логикой.
Визуализированные сигналы ясны и интуитивно понятны для принятия решений о сделках.
Существуют также некоторые риски:
Склонны к ложным сигналам, опираясь исключительно на перекрестки MA.
Невозможность эффективно оценить силу тренда, что вызывает частые стоп-лосс на рыночных рынках.
Фиксированные периоды MA не могут адаптироваться к изменениям рынка, что требует оптимизации параметров.
Уровни входа и выхода неясны, с некоторыми рисками.
Упрощенная теоретическая основа может поставить под угрозу эффективность и потенциал прибыли.
Стратегия может быть улучшена в следующих аспектах:
Добавить другие показатели для определения уровней входа и выхода, такие как KDJ для перекупленных/перепроданных.
Используйте механизмы остановки потерь, такие как остановка отслеживания, чтобы ограничить потери.
Оптимизировать периоды MA для адаптации к различным рыночным циклам.
Добавьте фильтр громкости, чтобы избежать ложных прорывов.
Оценить силу тренда, например, наклон MA, для масштабирования размера позиции.
Включите несколько временных рамок для лучшей непрерывности тренда.
Стратегия идентифицирует бычьи/медвежьи тенденции просто и надежно на основе теории кроссовера MA. Преимущества заключаются в простоте и простоте использования, в то время как минусы - это неотъемлемые риски, связанные с трендом.
/*backtest start: 2022-09-30 00:00:00 end: 2023-10-06 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/ // © dadashkadir //@version=4 strategy("Mount MaV - Day MaV CrossOver Strgty", shorttitle="Yusram Str.", overlay=true) src = input(title= "Kaynak", type=input.source, defval=close) mav = input(title="Hareketli Ortlama Tipi", defval="SMA", options=["SMA", "EMA", "WMA"]) Gbar = input(title="Günlük Bar Sayısı", defval=7, minval=1, maxval=999) Abar = input(title="Aylık Bar Sayısı", defval=5, minval=1, maxval=999) //displacement = input(20, minval=1, title="Displacement") getMA(src, length) => ma = 0.0 if mav == "SMA" ma := sma(src, length) ma if mav == "EMA" ma := ema(src, length) ma if mav == "WMA" ma := wma(src, length) ma ma long = "M" //Aylık ln = security(syminfo.ticker, long, src) lnma = getMA(ln, Abar) gnma = getMA(src, Gbar) col1= gnma>gnma[1] col3= gnma<gnma[1] colorM = col1 ? color.green : col3 ? color.navy : color.yellow l1 = plot(lnma, title="MhO", trackprice = true, style=plot.style_line, color=color.red, linewidth=3) l2 = plot(gnma, title="DhO", trackprice = true, style=plot.style_line, color=colorM, linewidth=3) fill(l1, l2, color = lnma < gnma ? color.green : color.red, title="Gölgelendirme", transp=90) zamanaralik = input (2020, title="Backtest Başlangıç Tarihi") al = crossover (gnma, lnma) and zamanaralik <= year sat = crossover (lnma, gnma) and zamanaralik <= year plotshape(al, title = "Giriş", text = 'Al', style = shape.labelup, location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny) plotshape(sat, title = "Çıkış", text = 'Sat', style = shape.labeldown, location = location.abovebar, color= color.red, textcolor = color.white, transp = 0, size = size.tiny) FromDay = input(defval = 1, title = "Str. Başlama Tarihi Gün", minval = 1, maxval = 31) FromMonth = input(defval = 1, title = "Str. Başlama Tarihi Ay", minval = 1, maxval = 12) FromYear = input(defval = 2015, title = "Str. Başlama Tarihi Yıl", minval = 2005) ToDay = input(defval = 1, title = "Str. Bitiş Tarihi Gün", minval = 1, maxval = 31) ToMonth = input(defval = 1, title = "Str. Bitiş Tarihi Ay", minval = 1, maxval = 12) ToYear = input(defval = 9999, title = "Str. Bitiş Tarihi Yıl", minval = 2006) Start = timestamp(FromYear, FromMonth, FromDay, 00, 00) Finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) Timerange() => time >= Start and time <= Finish ? true : false if al strategy.entry("Al", strategy.long, when=Timerange()) if sat strategy.entry("Sat", strategy.short, when=Timerange())