यह रणनीति कई समय सीमाओं में टीईएमए संकेतक के क्रॉसओवर के आधार पर बाजार की प्रवृत्ति दिशा की पहचान करती है, और विशिष्ट प्रवेश और निकास बिंदुओं को खोजने के लिए कम समय सीमा में टीईएमए क्रॉसओवर का उपयोग करती है। रणनीति केवल लंबे, केवल छोटे या दोनों दिशाओं के लिए कॉन्फ़िगर की जा सकती है।
यह रणनीति दो टेमा संकेतकों का उपयोग करती है, एक 5 और 15 अवधि के आधार पर तेज और धीमी रेखा के साथ, दूसरा उपयोगकर्ता द्वारा परिभाषित उच्च समय सीमा जैसे दैनिक या साप्ताहिक पर आधारित है। उच्च समय सीमा के टेमा का क्रॉसओवर समग्र प्रवृत्ति पूर्वाग्रह निर्धारित करता है, धीमी रेखा के ऊपर तेजी से रेखा पार करने से तेजी का संकेत मिलता है, और नीचे मंदी का संकेत मिलता है। निचले समय सीमा के टेमा क्रॉसओवर का उपयोग ठोस प्रवेश और निकास समय खोजने के लिए किया जाता है।
जब उच्च समय सीमा 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)