मल्टी-टाइमफ्रेम TEMA इंडिकेटर क्रॉसओवर पर आधारित ट्रेंड फॉलोइंग रणनीति


निर्माण तिथि: 2023-12-25 14:20:36 अंत में संशोधित करें: 2023-12-25 14:20:36
कॉपी: 0 क्लिक्स: 671
1
ध्यान केंद्रित करना
1623
समर्थक

मल्टी-टाइमफ्रेम TEMA इंडिकेटर क्रॉसओवर पर आधारित ट्रेंड फॉलोइंग रणनीति

अवलोकन

यह रणनीति बाजार की प्रवृत्ति की दिशा की पहचान करने के लिए TEMA सूचक के बहु-समय सीमा क्रॉसिंग पर आधारित है, और विशिष्ट प्रवेश और निकास समय खोजने के लिए कम समय सीमा के TEMA सूचक क्रॉसिंग के साथ संयुक्त है। रणनीति को केवल अधिक, केवल शून्य या द्वि-दिशात्मक व्यापार के लिए कॉन्फ़िगर किया जा सकता है।

रणनीति सिद्धांत

रणनीति दो TEMA संकेतकों का उपयोग करती है, एक 5 और 15 चक्रों पर आधारित तेज़ और धीमी रेखा है, और दूसरा उपयोगकर्ता-अनुकूलित उच्च चक्र समय-सीमा पर आधारित है, जैसे कि दिन की रेखा या परिधि रेखा। उच्च चक्र TEMA संकेतकों का क्रॉसिंग समग्र प्रवृत्ति की दिशा निर्धारित करता है, जब तेज़ रेखा पर धीमी रेखा को पार करते समय पूर्वाग्रह होता है, नीचे गिरावट होती है; कम चक्र TEMA संकेतकों का क्रॉसिंग विशिष्ट प्रवेश और बाहर निकलने के समय की तलाश में उपयोग किया जाता है।

जब उच्च अवधि TEMA तेज लाइन पर धीमी गति से लाइन को पार करते हैं, तो कम अवधि TEMA तेज लाइन पर धीमी गति से लाइन को पार करने पर अधिक प्रवेश किया जा सकता है; जब कम अवधि TEMA तेज लाइन के नीचे धीमी गति से लाइन को पार करते हैं, तो बाहर निकलना चाहिए। इसी तरह, जब उच्च अवधि TEMA तेज लाइन के नीचे धीमी गति से लाइन को पार करते हैं, तो कम अवधि TEMA तेज लाइन के नीचे धीमी गति से लाइन को पार करने पर प्रवेश किया जा सकता है और खाली किया जा सकता है; जब तेज लाइन पर धीमी गति से लाइन को पार करते हैं तो बाहर निकलना चाहिए।

रणनीतिक लाभ

  1. टीईएमए सूचकांकों के आधार पर क्रॉसिंग, शोर से बचें
  2. बहु समय फ्रेम सेट करें, उच्च और निम्न चक्र निर्णय के साथ, सटीकता में सुधार करें
  3. एकतरफा या दोतरफा लेनदेन, लचीला विन्यास
  4. नियम स्पष्ट हैं और उनका पालन करना आसान है

जोखिम विश्लेषण

  1. TEMA सूचकांक में देरी, मूल्य परिवर्तन के शुरुआती समय को याद किया जा सकता है
  2. उच्च आवधिक प्रवृत्ति के निर्णय में, अल्पकालिक समायोजन अनावश्यक रिवर्स ऑपरेशन का कारण बन सकता है
  3. उच्च-चक्र सेटिंग को गलत तरीके से चुना गया है, जो वास्तविक रुझानों को प्रतिबिंबित नहीं कर सकता है
  4. कम आवृत्ति सेटिंग का गलत चयन, स्टॉप लॉस के जोखिम को बढ़ा सकता है

जोखिम समाधान:

  1. TEMA पैरामीटर को सही ढंग से समायोजित करें
  2. उचित रूप से ढीली रोकथाम सीमा
  3. अनुकूलित उच्च या निम्न चक्र पैरामीटर Setting
  4. विभिन्न किस्मों के पैरामीटर की शक्ति का परीक्षण करना

अनुकूलन दिशा

  1. गतिशील TEMA पैरामीटर को समायोजित करें, सूचक संवेदनशीलता को अनुकूलित करें
  2. गतिशीलता सूचक फ़िल्टर को बढ़ाएं और रुझानों को याद न करें
  3. अस्थिरता सूचकांक में वृद्धि, गतिशील रूप से स्टॉप लॉस को समायोजित करना
  4. अनुकूलन पैरामीटर के लिए मशीन लर्निंग

संक्षेप

इस रणनीति की समग्र अवधारणा स्पष्ट और समझने में आसान है, यह 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)