
A estratégia de cruzamento de três linhas usa o cruzamento de médias móveis de diferentes períodos de tempo como um sinal de compra e venda, e é uma estratégia de acompanhamento de tendências. A estratégia usa três médias móveis, incluindo médias móveis de curto prazo, médias móveis de médio prazo e médias móveis de longo prazo, para formar um sinal de negociação com base em sua cruz.
A estratégia primeiro calcula a média móvel de curto prazo (default 7 dias), a média móvel de médio prazo (default 25 dias) e a média móvel de longo prazo (default 99 dias) e gera um sinal de negociação de acordo com as seguintes regras:
Quando uma média móvel de curto prazo atravessa uma média móvel de médio prazo, um sinal de compra é gerado.
Quando a média móvel de curto prazo atravessa a média móvel de médio prazo, um sinal de venda é gerado.
Quando uma média móvel de curto prazo é atravessada por uma média móvel de longo prazo, um sinal de compra rápida é gerado.
Quando a média móvel de curto prazo atravessa a média móvel de longo prazo, um sinal de venda rápida é gerado.
A estratégia considera que a transição entre a média móvel e a média móvel de curto prazo indica que a tendência do mercado se transformou em alta e, portanto, produz um sinal de compra; e a transição entre a média móvel de curto prazo e a média móvel de curto prazo indica que a tendência do mercado se transformou em baixa e, portanto, produz um sinal de venda. Da mesma forma, o cruzamento entre a média móvel de curto prazo e a média móvel de longo prazo também produz um sinal de negociação rápido para capturar a mudança de tendência da linha mais longa.
Pode-se reduzir os falsos sinais através de ajustes apropriados no ciclo da média móvel, ou adicionar condições de filtragem para otimizar. Também pode-se reduzir apropriadamente o ciclo de negociação rápida e reduzir a frequência de negociação.
A estratégia de cruzamento de três equilíbrios é mais simples e direta, determinando a direção da tendência através do cruzamento de equilíbrios de diferentes períodos de tempo para gerar um sinal de negociação. A estratégia é fácil de implementar, o ajuste de parâmetros é flexível e pode capturar mudanças na tendência.
/*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)