यह रणनीति विभिन्न अवधियों के साथ तीन घातीय चलती औसत रेखाओं (ईएमए) के आधार पर ट्रेडिंग सिग्नल उत्पन्न करती हैः 5-दिवसीय अवधि के साथ अल्पकालिक ईएमए, 8-दिवसीय अवधि के साथ मध्यमकालिक ईएमए और 13-दिवसीय अवधि के साथ दीर्घकालिक ईएमए। यह लंबे समय तक जाता है जब अल्पकालिक ईएमए मध्यमकालिक और दीर्घकालिक ईएमए के पार हो जाता है, और मध्यमकालिक और दीर्घकालिक ईएमए के नीचे अल्पकालिक ईएमए के पार हो जाता है।
यह रणनीति विभिन्न अवधियों के ईएमए की गणना करके बाजार की प्रवृत्ति का न्याय करती है। अल्पकालिक ईएमए हाल के कुछ दिनों की औसत कीमत को दर्शाता है जबकि मध्यम और दीर्घकालिक ईएमए लंबी समय सीमाओं पर औसत मूल्य को दर्शाता है। मध्यम और दीर्घकालिक ईएमए पर अल्पकालिक ईएमए का क्रॉसओवर मूल्य के ऊपर के ब्रेकआउट का संकेत देता है, इसलिए एक लंबी स्थिति ली जाती है। इसके विपरीत, जब अल्पकालिक ईएमए अन्य दो के नीचे पार करता है, तो यह एक नीचे की कीमत ब्रेकआउट का संकेत देता है इसलिए एक छोटी स्थिति ली जाती है।
विशेष रूप से, यह रणनीति एक साथ 5-दिवसीय, 8-दिवसीय और 13-दिवसीय ईएमए की गणना करती है। यह लंबे संकेत उत्पन्न करती है जब 5-दिवसीय ईएमए 8-दिवसीय और 13-दिवसीय के पार हो जाता है; यह छोटे संकेत उत्पन्न करता है जब 5-दिवसीय ईएमए अन्य दो के नीचे पार हो जाता है। लंबे समय तक जाने के बाद, स्थिति बंद हो जाती है जब 5-दिवसीय ईएमए 13-दिवसीय ईएमए के नीचे वापस पार हो जाता है। शॉर्ट स्थिति के लिए भी।
सुधार के विचार:
यह एक विशिष्ट ब्रेकआउट प्रणाली है जो लघु, मध्यम और लंबी अवधि के ईएमए के बीच क्रॉसओवर की तुलना करके प्रवृत्ति उलट का न्याय करती है। सिग्नलिंग में इसकी सादगी व्यापार की आसानी को सुविधाजनक बनाती है, लेकिन ईएमए के अंतर्निहित पिछड़ने और अस्थायी सुधारों से वास्तविक रुझानों को फ़िल्टर करने में असमर्थता से भी पीड़ित है। भविष्य के सुधार इसे अनुकूलित करने के लिए अन्य तकनीकी संकेतकों या अनुकूलन पैरामीटर ट्यूनिंग को एकीकृत कर सकते हैं।
/*backtest start: 2023-11-16 00:00:00 end: 2023-11-23 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © gregoirejohnb // @It is modified by ttsaadet. // Moving average crossover systems measure drift in the market. They are great strategies for time-limited people. // So, why don't more people use them? // // strategy(title="EMA Crossover Strategy", shorttitle="EMA-5-8-13 COS by TTS", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, currency=currency.TRY,commission_type=strategy.commission.percent,commission_value=0.04, process_orders_on_close = true, initial_capital = 100000) // === GENERAL INPUTS === //strategy start date start_year = input(defval=2020, title="Backtest Start Year") // === LOGIC === short_period = input(type=input.integer,defval=5,minval=1,title="Length") mid_period = input(type=input.integer,defval=8,minval=1,title="Length") long_period = input(type=input.integer,defval=13,minval=1,title="Length") longOnly = input(type=input.bool,defval=false,title="Long Only") shortEma = ema(hl2,short_period) midEma = ema(hl2,mid_period) longEma = ema(hl2,long_period) plot(shortEma,linewidth=2,color=color.red,title="Fast") plot(midEma,linewidth=2,color=color.orange,title="Fast") plot(longEma,linewidth=2,color=color.blue,title="Slow") longEntry = ((shortEma > midEma) and crossover(shortEma,longEma)) or ((shortEma > longEma) and crossover(shortEma,midEma)) shortEntry =((shortEma < midEma) and crossunder(shortEma,longEma)) or ((shortEma < longEma) and crossunder(shortEma,midEma)) plotshape(longEntry ? close : na,style=shape.triangleup,color=color.green,location=location.belowbar,size=size.small,title="Long Triangle") plotshape(shortEntry and not longOnly ? close : na,style=shape.triangledown,color=color.red,location=location.abovebar,size=size.small,title="Short Triangle") plotshape(shortEntry and longOnly ? close : na,style=shape.xcross,color=color.black,location=location.abovebar,size=size.small,title="Exit Sign") // === STRATEGY - LONG POSITION EXECUTION === enterLong() => longEntry exitLong() => crossunder(shortEma,longEma) strategy.entry(id="Long", long=strategy.long, when=enterLong()) strategy.close(id="Long", when=exitLong()) // === STRATEGY - SHORT POSITION EXECUTION === enterShort() => not longOnly and shortEntry exitShort() => crossover(shortEma,longEma) strategy.entry(id="Short", long=strategy.short, when=enterShort()) strategy.close(id="Short", when=exitShort())