یہ حکمت عملی متعدد ٹائم فریموں میں TEMA اشارے کے کراس اوور کی بنیاد پر مارکیٹ کے رجحان کی سمت کی نشاندہی کرتی ہے ، اور مخصوص انٹری اور آؤٹ پوائنٹس تلاش کرنے کے لئے کم ٹائم فریم میں TEMA کراس اوور کا استعمال کرتی ہے۔ حکمت عملی کو صرف لمبے ، صرف مختصر یا دونوں سمتوں کے لئے تشکیل دیا جاسکتا ہے۔
اس حکمت عملی میں دو ٹی ای ایم اے اشارے استعمال کیے جاتے ہیں ، ایک 5 اور 15 ادوار کی بنیاد پر تیز اور سست لائن کے ساتھ ، دوسرا صارف کے ذریعہ طے شدہ اعلی ٹائم فریم جیسے روزانہ یا ہفتہ وار پر مبنی ہے۔ اعلی ٹائم فریم ٹی ای ایم اے کا کراس اوور مجموعی طور پر رجحان کی تعصب کا تعین کرتا ہے ، سست لائن کے اوپر تیز لائن کراسنگ تیزی سے نقطہ نظر کی نشاندہی کرتی ہے ، اور اس سے نیچے bearish نقطہ نظر کی نشاندہی کرتی ہے۔ کم ٹائم فریم ٹی ای ایم اے کراس اوور کا استعمال کنکریٹ انٹری اور آؤٹ ٹائمنگ تلاش کرنے کے لئے کیا جاتا ہے۔
جب اعلی ٹائم فریم ٹی ای ایم اے فاسٹ لائن سست لائن سے تجاوز کرتی ہے تو ، جب نچلے ٹائم فریم ٹی ای ایم اے فاسٹ لائن سست لائن سے تجاوز کرتی ہے تو ایک لمبی انٹری کو متحرک کیا جاسکتا ہے۔ جب تیز لائن سست لائن سے نیچے عبور کرتی ہے تو ایک باہر نکلنے کا اشارہ دیا جاتا ہے۔ اسی طرح ، جب اعلی ٹائم فریم فاسٹ لائن سست لائن سے نیچے گرتی ہے تو ، کم ٹائم فریم ٹی ای ایم اے برداشت کراس اوور پر ایک مختصر انٹری کو متحرک کیا جاسکتا ہے اور جب تیزی سے کراس اوور ہوتا ہے تو باہر نکل جاتا ہے۔
خطرے کے حل:
مجموعی طور پر حکمت عملی منطقی طور پر آسان اور واضح ہے ، متعدد ٹائم فریموں پر ٹی ای ایم اے کراس اوور کے ذریعہ رجحان کی تعصب کی نشاندہی کرتی ہے ، اور کم ٹی ایف سے وقت کے اندراجات پر اضافی کراس اوور پر انحصار کرتی ہے۔ اس میں کچھ خوبیوں کے ساتھ ساتھ بہتری کے لئے کچھ گنجائش بھی ہے۔ مجموعی طور پر ، یہ مقدار کی تجارت کے طریقوں کے لئے ایک قیمتی حوالہ فراہم کرتا ہے۔
/*backtest start: 2023-01-01 00:00:00 end: 2023-12-24 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/ // © Seltzer_ //@version=4 strategy(title="TEMA Cross +HTF Backtest", shorttitle="TEMA_X_+HTF_BT", overlay=true) orderType = input("Longs+Shorts",title="What type of Orders", options=["Longs+Shorts","LongsOnly","ShortsOnly"]) isLong = (orderType != "ShortsOnly") isShort = (orderType != "LongsOnly") // Backtest Section { // Backtest inputs FromMonth = input(defval=1, title="From Month", minval=1, maxval=12) FromDay = input(defval=1, title="From Day", minval=1, maxval=31) FromYear = input(defval=2020, title="From Year", minval=2010) ToMonth = input(defval=1, title="To Month", minval=1, maxval=12) ToDay = input(defval=1, title="To Day", minval=1, maxval=31) ToYear = input(defval=9999, title="To Year", minval=2017) // Define backtest timewindow start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => true // } //TEMA Section { //LTF Section xLength = input(20, minval=1, title="Fast Length") xPrice = close xEMA1 = ema(xPrice, xLength) xEMA2 = ema(xEMA1, xLength) xEMA3 = ema(xEMA2, xLength) xnRes = (3 * xEMA1) - (3 * xEMA2) + xEMA3 xnResP = plot(xnRes, color=color.green, linewidth=2, title="TEMA1") yLength = input(60, minval=1, title="Slow Length") yPrice = close yEMA1 = ema(yPrice, yLength) yEMA2 = ema(yEMA1, yLength) yEMA3 = ema(yEMA2, yLength) ynRes = (3 * yEMA1) - (3 * yEMA2) + yEMA3 ynResP = plot(ynRes, color=color.red, linewidth=2, title="TEMA2") fill(xnResP, ynResP, color=xnRes > ynRes ? color.green : color.red, transp=65, editable=true) //HTF Section HTFres = input(defval="D", type=input.resolution, title="HTF Resolution") HTFxLength = input(5, minval=1, title="HTF Fast Length") HTFxPrice = close HTFxEMA1 = security(syminfo.tickerid, HTFres, ema(HTFxPrice, HTFxLength), barmerge.gaps_off, barmerge.lookahead_on) HTFxEMA2 = security(syminfo.tickerid, HTFres, ema(HTFxEMA1, HTFxLength), barmerge.gaps_off, barmerge.lookahead_on) HTFxEMA3 = security(syminfo.tickerid, HTFres, ema(HTFxEMA2, HTFxLength), barmerge.gaps_off, barmerge.lookahead_on) HTFxnRes = (3 * HTFxEMA1) - (3 * HTFxEMA2) + HTFxEMA3 HTFxnResP = plot(HTFxnRes, color=color.yellow, linewidth=1,transp=30, title="TEMA1") HTFyLength = input(15, minval=1, title="HTF Slow Length") HTFyPrice = close HTFyEMA1 = security(syminfo.tickerid, HTFres, ema(HTFyPrice, HTFyLength), barmerge.gaps_off, barmerge.lookahead_on) HTFyEMA2 = security(syminfo.tickerid, HTFres, ema(HTFyEMA1, HTFyLength), barmerge.gaps_off, barmerge.lookahead_on) HTFyEMA3 = security(syminfo.tickerid, HTFres, ema(HTFyEMA2, HTFyLength), barmerge.gaps_off, barmerge.lookahead_on) HTFynRes = (3 * HTFyEMA1) - (3 * HTFyEMA2) + HTFyEMA3 HTFynResP = plot(HTFynRes, color=color.purple, linewidth=1, transp=30, title="TEMA2") fill(HTFxnResP, HTFynResP, color=HTFxnRes > HTFynRes ? color.yellow : color.purple, transp=90, editable=true) bgcolor(HTFxnRes > HTFynRes ? color.yellow : na, transp=90, editable=true) bgcolor(HTFxnRes < HTFynRes ? color.purple : na, transp=90, editable=true) // } // Buy and Sell Triggers LongEntryAlert = xnRes > ynRes and HTFxnRes > HTFynRes and window() LongCloseAlert = xnRes < ynRes and window() ShortEntryAlert = xnRes < ynRes and HTFxnRes < HTFynRes and window() ShortCloseAlert = xnRes > ynRes // Entry & Exit signals if isLong strategy.entry("Long", strategy.long, when = LongEntryAlert) strategy.close("Long", when = LongCloseAlert) if isShort strategy.entry("Short", strategy.short, when = ShortEntryAlert) strategy.close("Short", when = ShortCloseAlert)