
La stratégie de croisement triangulaire est une stratégie de suivi de tendance qui utilise la croisée de moyennes mobiles de différentes périodes de temps comme signal d’achat et de vente. La stratégie utilise trois moyennes mobiles, y compris les moyennes mobiles à court terme, moyennes mobiles à moyen terme et moyennes mobiles à long terme, pour former un signal de transaction en fonction de leur croisement.
La stratégie calcule d’abord les moyennes mobiles à court terme (default 7 jours), moyennes mobiles à moyen terme (default 25 jours) et moyennes mobiles à long terme (default 99 jours), puis génère un signal de transaction selon les règles suivantes:
Un signal d’achat est généré lorsque les moyennes mobiles à court terme traversent les moyennes mobiles à moyen terme.
Un signal de vente est généré lorsque la moyenne mobile intermédiaire passe sous la moyenne mobile à court terme.
Un signal d’achat rapide est généré lorsque les moyennes mobiles à court terme sont croisées avec les moyennes mobiles à long terme.
Un signal de vente rapide est généré lorsque la moyenne mobile à court terme est traversée par la moyenne mobile à long terme.
La stratégie considère que la traversée de la moyenne mobile intermédiaire au-dessus de la moyenne mobile à court terme indique que la tendance du marché est en hausse, ce qui génère un signal d’achat; et la traversée de la moyenne mobile intermédiaire en dessous de la moyenne mobile à court terme indique que la tendance du marché est en baisse, ce qui génère un signal de vente. De même, la croisée de la moyenne mobile à court terme avec la moyenne mobile à long terme génère également un signal de transaction rapide pour capturer les changements de tendance de la ligne plus longue.
Il est possible d’optimiser et de réduire les faux signaux en ajustant le cycle des moyennes mobiles ou en ajoutant des conditions de filtrage. Il est également possible de raccourcir le cycle des transactions rapides et de réduire la fréquence des transactions.
L’ensemble de la stratégie d’intersection de trois équilibres est relativement simple et direct, déterminant la direction de la tendance par l’intersection d’équilibres de différentes périodes de temps pour produire un signal de négociation. La stratégie est facile à mettre en œuvre, l’ajustement des paramètres est flexible et permet de capturer les changements de tendance.
/*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)