
Трехлинейная стратегия использования пересечения движущихся средних различных временных периодов в качестве сигналов для покупки и продажи относится к стратегии отслеживания тенденций. Эта стратегия использует три движущихся средних, включая короткосрочные движущиеся средние, среднесрочные движущиеся средние и долгосрочные движущиеся средние, чтобы сформировать торговый сигнал на основе их пересечения.
Сначала стратегия рассчитывает краткосрочные скользящие средние ((7 дней по умолчанию), среднесрочные скользящие средние ((25 дней по умолчанию) и долгосрочные скользящие средние ((99 дней по умолчанию), а затем генерирует торговый сигнал в соответствии со следующими правилами:
Сигнал покупки возникает, когда краткосрочная скользящая средняя пересекает среднесрочную скользящую среднюю.
Сигнал продажи возникает, когда краткосрочная скользящая средняя пересекает промежуточную скользящую среднюю ниже.
Когда краткосрочная скользящая средняя пересекает долгосрочную скользящую среднюю, генерируется быстрый сигнал покупки.
Сигналы быстрого продажи возникают, когда краткосрочная скользящая средняя проходит под долгосрочную скользящую среднюю.
Эта стратегия предполагает, что пересечение средней движущейся средней на короткой движущейся средней означает переход рыночной тенденции вверх, что вызывает сигнал к покупке; а пересечение средней движущейся средней на короткую движущуюся среднюю означает переход рыночной тенденции вниз, что вызывает сигнал к продаже. Точно так же, пересечение короткой движущейся средней и долгосрочной движущейся средней также создает быстрый торговый сигнал, чтобы захватить изменение тенденции более длинной линии.
Можно оптимизировать и уменьшить ложные сигналы путем соответствующей корректировки цикла движущихся средних или добавления фильтрующих условий. Также можно уместно сократить быстрые торговые циклы и снизить частоту торгов.
Стратегия трехуровневого скрещивания в целом довольно проста и непосредственна, она определяет направление тренда с помощью скрещивания равновесия с разными временными периодами, чтобы создать торговый сигнал. Стратегия легко реализуема, параметры регулируются гибко и могут улавливать изменения в тренде. Но также существуют проблемы с задержкой движущихся средних, а также риск слишком много ложных сигналов.
/*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)