बहु-समय सीमा TEMA क्रॉसओवर पर आधारित रणनीति के बाद की प्रवृत्ति

लेखक:चाओझांग, दिनांकः 2023-12-25 14:20:36
टैगः

img

अवलोकन

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

रणनीति तर्क

यह रणनीति दो टेमा संकेतकों का उपयोग करती है, एक 5 और 15 अवधि के आधार पर तेज और धीमी रेखा के साथ, दूसरा उपयोगकर्ता द्वारा परिभाषित उच्च समय सीमा जैसे दैनिक या साप्ताहिक पर आधारित है। उच्च समय सीमा के टेमा का क्रॉसओवर समग्र प्रवृत्ति पूर्वाग्रह निर्धारित करता है, धीमी रेखा के ऊपर तेजी से रेखा पार करने से तेजी का संकेत मिलता है, और नीचे मंदी का संकेत मिलता है। निचले समय सीमा के टेमा क्रॉसओवर का उपयोग ठोस प्रवेश और निकास समय खोजने के लिए किया जाता है।

जब उच्च समय सीमा TEMA फास्ट लाइन धीमी रेखा से ऊपर जाती है, तो जब निम्न समय सीमा TEMA फास्ट लाइन धीमी रेखा से ऊपर जाती है, तो एक लंबी प्रविष्टि ट्रिगर की जा सकती है; जब तेज रेखा धीमी रेखा से नीचे जाती है, तो एक निकास संकेत दिया जाता है। इसी तरह, जब उच्च समय सीमा फास्ट लाइन धीमी रेखा से नीचे गिरती है, तो निम्न समय सीमा TEMA मंदी क्रॉसओवर पर एक छोटी प्रविष्टि और एक तेजी क्रॉसओवर होने पर बाहर निकलना ट्रिगर किया जाता है।

लाभ

  1. TEMA क्रॉसओवर के आधार पर, शोर हस्तक्षेप से बचा जाता है
  2. बहु-टाइमफ्रेम डिजाइन उच्च और निम्न चक्रों को जोड़ती है, सटीकता में सुधार करती है
  3. केवल लंबी, केवल छोटी या दोनों दिशाओं के लिए लचीला विन्यास
  4. सरल नियम, समझने और लागू करने में आसान

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

  1. टीईएमए में विलंब प्रभाव है, प्रारंभिक मूल्य परिवर्तन को मिस कर सकता है
  2. उच्च TF पर अल्पकालिक सुधार अनावश्यक रिवर्स ट्रेडों का कारण बन सकते हैं
  3. गलत उच्च TF सेटिंग वास्तविक प्रवृत्ति को प्रतिबिंबित करने में विफल रहता है
  4. अनुचित निचली TF सेटिंग स्टॉप लॉस के जोखिम को बढ़ाती है

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

  1. संतुलन के लिए ठीक ट्यून TEMA पैरामीटर
  2. स्टॉप लॉस मार्जिन को मामूली रूप से कम करें
  3. उच्च निम्न चक्र सेटिंग्स अनुकूलित करें
  4. परीक्षण मापदंडों की स्थिरता उत्पादों के बीच

बढ़ोतरी के अवसर

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

सारांश

रणनीति समग्र रूप से सरल और तर्क में स्पष्ट है, कई समय सीमाओं पर टीईएमए क्रॉसओवर के माध्यम से प्रवृत्ति पूर्वाग्रह की पहचान करना, और समय प्रविष्टियों में कम टीएफ पर अतिरिक्त क्रॉसओवर पर भरोसा करना। इसमें कुछ गुण हैं जबकि सुधार के लिए कुछ जगह भी है। कुल मिलाकर, यह मात्रा व्यापार प्रथाओं के लिए मूल्यवान संदर्भ प्रदान करता है।


/*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)

अधिक