
یہ حکمت عملی مارکیٹ کے رجحانات کی سمت کی نشاندہی کرنے کے لئے TEMA اشارے کے کثیر ٹائم فریم کراسنگ پر مبنی ہے ، اور کم ٹائم فریم کے ساتھ TEMA اشارے کے کراسنگ کے ساتھ مل کر مخصوص اندراج اور باہر نکلنے کے وقت کی تلاش کرتی ہے۔ حکمت عملی کو صرف زیادہ ، صرف غیر فعال یا دو طرفہ تجارت کے لئے تشکیل دیا جاسکتا ہے۔
حکمت عملی میں دو ٹی ای ایم اے اشارے استعمال کیے جاتے ہیں ، ایک 5 اور 15 دوروں پر مبنی تیز اور سست لائن ، اور دوسرا صارف کے اپنی مرضی کے مطابق اعلی دورانیہ کے وقت کے فریم ورک پر مبنی ہوتا ہے ، جیسے دن کی لکیر یا گھڑی لائن۔ اعلی دورانیہ ٹی ای ایم اے اشارے کی کراسنگ مجموعی رجحان کی سمت کا تعین کرتی ہے ، جب تیز لائن پر سست لائن کو عبور کرتی ہے تو بیعانہ اور نیچے کی طرف جاتا ہے۔ کم دورانیہ ٹی ای ایم اے اشارے کی کراسنگ کا استعمال مخصوص داخلے اور باہر نکلنے کے مواقع تلاش کرنے کے لئے کیا جاتا ہے۔
جب اعلی دورانیہ TEMA تیز لائن پر سست لائن کو پار کرتے ہیں تو ، کم دورانیہ TEMA تیز لائن پر سست لائن کو پار کرتے ہیں تو زیادہ کھیلنے کے لئے داخل ہوسکتے ہیں۔ جب کم دورانیہ TEMA تیز لائن کے نیچے سست لائن کو پار کرتے ہیں تو ، کھیل سے باہر ہونا چاہئے۔ اسی طرح ، جب اعلی دورانیہ TEMA تیز لائن کے نیچے سست لائن کو پار کرتے ہیں تو ، کم دورانیہ TEMA تیز لائن کے نیچے سست لائن کو پار کرتے ہیں تو ، خالی جگہ پر داخل ہوسکتے ہیں۔ جب تیز لائن پر سست لائن کو پار کرتے ہیں تو ، کھیل سے باہر ہونا چاہئے۔
خطرے سے نمٹنے کے طریقے:
اس حکمت عملی کا مجموعی تصور واضح اور سمجھنے میں آسان ہے ، جس میں TEMA اشارے پر مبنی متعدد ٹائم فریم کراسنگ کے ذریعہ رجحان کی سمت کا تعین کیا گیا ہے ، اور کم دورانیہ کراسنگ کے ساتھ مل کر داخلے کا وقت تلاش کیا گیا ہے۔ اس میں کچھ فوائد ہیں ، لیکن اس میں کچھ بہتری کی گنجائش بھی ہے۔ مجموعی طور پر ، اس حکمت عملی نے مقدار میں تجارت کے عمل کے لئے ایک قیمتی حوالہ فراہم کیا ہے۔
/*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)