टीएसआई क्रॉसओवर रणनीति

TSI EMA ATR TEMA
निर्माण तिथि: 2024-06-07 16:36:24 अंत में संशोधित करें: 2024-06-07 16:36:24
कॉपी: 7 क्लिक्स: 628
1
ध्यान केंद्रित करना
1617
समर्थक

टीएसआई क्रॉसओवर रणनीति

अवलोकन

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

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

  1. टीएसआई सूचक मान और सिग्नल लाइन मान की गणना करें
  2. यह निर्धारित करने के लिए कि क्या वर्तमान लेनदेन अनुमत समय सीमा के भीतर है और वर्तमान बार पिछले लेनदेन से कम से कम निर्दिष्ट न्यूनतम बार के अंतराल पर है।
  3. यदि टीएसआई संकेतक नीचे से ऊपर तक सिग्नल लाइन को पार करता है, और इस समय सिग्नल लाइन निर्दिष्ट निचले सीमा से नीचे है, तो एक बहुसंकेतक उत्पन्न होता है।
  4. यदि टीएसआई संकेतक सिग्नल लाइन को ऊपर से नीचे की ओर से पार करता है और इस समय सिग्नल लाइन निर्दिष्ट ऊपरी सीमा से ऊपर है, तो एक रिक्त सिग्नल उत्पन्न होता है।
  5. यदि आप वर्तमान में बहुस्तरीय स्थिति रखते हैं, तो टीएसआई सूचकांक को ऊपर से नीचे तक सिग्नल लाइन के माध्यम से पार करने के बाद, सभी बहुस्तरीय पदों को समतल करें।
  6. यदि वर्तमान में खाली पदों पर कब्जा कर लिया गया है, तो सभी खाली पदों को खाली कर दिया जाएगा जब टीएसआई संकेतक नीचे से सिग्नल लाइन को पार करेगा।

श्रेष्ठता विश्लेषण

  1. रणनीति तर्क स्पष्ट है, टीएसआई सूचकांक का उपयोग करके क्रॉसिंग को एकमात्र स्थिति खोलने के लिए सरल और समझने योग्य है।
  2. ट्रेडिंग समय और ट्रेडिंग आवृत्ति को सीमित करके, ओवर-ट्रेडिंग के जोखिम को प्रभावी ढंग से नियंत्रित किया जाता है।
  3. स्टॉप लॉस को समय पर रोकें, एक विपरीत संकेत के साथ स्थिति को स्पष्ट करें, और एक एकल लेनदेन के जोखिम को नियंत्रित करें।
  4. इस रणनीति को मजबूत करने के लिए, EMA, ATR, आदि जैसे कई मापदंडों का उपयोग किया गया है।

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

  1. टीएसआई सूचकांक के पैरामीटर के चयन के लिए रणनीति संवेदनशील है, विभिन्न पैरामीटर बहुत बड़ा प्रदर्शन अंतर ला सकते हैं, सावधानीपूर्वक चयन की आवश्यकता है।
  2. स्थिति खोलने और स्थिति की शर्तें अपेक्षाकृत सरल हैं, प्रवृत्ति के फैसले और अस्थिरता की सीमाओं की कमी है, जो उतार-चढ़ाव की स्थिति में नुकसान का कारण बन सकती है।
  3. स्थिति प्रबंधन और धन प्रबंधन की कमी, निकासी को नियंत्रित करने में कठिनाई, एक बार लगातार नुकसान होने पर भारी निकासी हो सकती है।
  4. इस प्रकार, हम इस बात पर ध्यान केंद्रित कर रहे हैं कि क्या हम वास्तव में इस तरह के व्यापार में प्रवेश कर सकते हैं, और क्या हम वास्तव में इस तरह के व्यापार में प्रवेश कर सकते हैं।

अनुकूलन दिशा

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

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2024-05-30 00:00:00
end: 2024-06-06 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © nikgavalas

//@version=5
strategy("TSI Entries", overlay=true, margin_long=100, margin_short=100)

//
// INPUTS
//

// Define the start and end hours for trading
string sessionInput = input("1000-1530", "Session")

// Day of the week.
string daysInput = input.string("23456", tooltip = "1 = Sunday, 7 = Saturday")

// Minimum number of bar's between entries
requiredBarsBetweenEntries = input.int(12, "Required Bars Between Entries")

// Show debug labels
bool showDebugLabels = input.bool(false, "Show Debug Labels")

//
// FUNCTIONS
//

//@function Define the triple exponential moving average function
tema(src, len) => tema = 3 * ta.ema(src, len) - 3 * ta.ema(ta.ema(src, len), len) + ta.ema(ta.ema(ta.ema(src, len), len), len)

//@function Atr with EMA
atr_ema(length) =>
    trueRange = na(high[1])? high-low : math.max(math.max(high - low, math.abs(high - close[1])), math.abs(low - close[1]))
    //true range can be also calculated with ta.tr(true)
    ta.ema(trueRange, length)

//@function Check if time is in range
timeinrange() => 
    sessionString = sessionInput + ":" + daysInput
    inSession = not na(time(timeframe.period, sessionString, "America/New_York"))

//@function Displays text passed to `txt` when called.
debugLabel(txt, color, y, style) =>
    if (showDebugLabels) 
        label.new(bar_index, y, text = txt, color = color, style = style, textcolor = color.black, size = size.small)


//
// INDICATOR CODE
//

long = input(title="TSI Long Length", defval=8)
short = input(title="TSI Short Length", defval=8)
signal = input(title="TSI Signal Length", defval=3)
lowerLine = input(title="TSI Lower Line", defval=-50)
upperLine = input(title="TSI Upper Line", defval=50)

price = close
double_smooth(src, long, short) =>
	fist_smooth = ta.ema(src, long)
	ta.ema(fist_smooth, short)

pc = ta.change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(math.abs(pc), long, short)
tsiValue = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
signalValue = ta.ema(tsiValue, signal)

//
// COMMON VARIABLES
//

var color trendColor = na
var int lastEntryBar = na

bool tradeAllowed = timeinrange() == true and (na(lastEntryBar) or bar_index - lastEntryBar > requiredBarsBetweenEntries)

// 
// CROSSOVER
//

bool crossOver = ta.crossover(tsiValue, signalValue)
bool crossUnder = ta.crossunder(tsiValue,signalValue)

if (tradeAllowed) 
	if (signalValue < lowerLine and crossOver == true)
		strategy.entry("Up", strategy.long)
		lastEntryBar := bar_index

	else if (signalValue > upperLine and crossUnder == true)

		strategy.entry("Down", strategy.short)
		lastEntryBar := bar_index

// 
// EXITS
// 

if (strategy.position_size > 0 and crossUnder == true)
	strategy.close("Up", qty_percent = 100)

else if (strategy.position_size < 0 and crossOver == true)
	strategy.close("Down", qty_percent = 100)