ADX-आधारित एक घंटे की TENKAN KIJUN क्रॉस ट्रेंड ट्रैकिंग रणनीति

लेखक:चाओझांग, दिनांक: 2023-12-08 15:37:00
टैगः

img

अवलोकन

यह एक सरल लेकिन लाभदायक ट्रेंड ट्रैकिंग रणनीति है जो एक घंटे के समय फ्रेम TENKAN और KIJUN क्रॉस पर आधारित है ICHIMOKU प्रणाली में ADX संकेतक के साथ संयुक्त व्यापार संकेत उत्पन्न करने के लिए कमजोर ट्रेंडिंग बाजारों को फ़िल्टर करने के लिए। यह ETH/BTC जैसे बड़े मार्केट कैप altcoin BTC जोड़े पर सबसे अच्छा काम करता है।

रणनीति तर्क

यह रणनीति बाजार की प्रवृत्ति की दिशा निर्धारित करने के लिए इचिमोकू प्रणाली में रूपांतरण रेखा (टेनकन) और आधार रेखा (कीजुन) क्रॉस का उपयोग करती है। टेंकन रेखा की गणना पिछले 18 मोमबत्तियों के उच्चतम उच्च और निम्नतम निम्न के औसत के आधार पर की जाती है, जो तेजी से रूपांतरण रेखा का प्रतिनिधित्व करती है। किजून रेखा 58 मोमबत्तियों की अवधि पर आधारित है, जो मानक रूपांतरण रेखा के लिए खड़ी है।

जब TENKAN KIJUN के ऊपर पार करता है, तो यह एक तेजी का संकेत है। जब TENKAN KIJUN के नीचे पार करता है, तो यह एक मंदी का संकेत है। इसका उद्देश्य मध्यम अवधि के रुझान उलट को पकड़ना है।

इसके अतिरिक्त, ADX संकेतक का उपयोग प्रवृत्ति की ताकत को मापने के लिए किया जाता है। केवल जब ADX 20 से ऊपर होता है, जो एक मजबूत प्रवृत्ति को इंगित करता है, तो संकेत ट्रिगर किया जाएगा।

संक्षेप में, यह रणनीति TENKAN और KIJUN क्रॉस के माध्यम से मध्यम अवधि की प्रवृत्ति दिशा की पहचान करती है, और दीर्घकालिक प्रवृत्तियों को ट्रैक करने के लिए झूठे ब्रेकआउट को फ़िल्टर करने के लिए ADX का उपयोग करती है।

लाभ विश्लेषण

इस रणनीति के मुख्य लाभ इस प्रकार हैंः

  1. प्रवृत्ति की दिशा और मोड़ के बिंदुओं को निर्धारित करने के लिए परिपक्व और विश्वसनीय इचिमोकु प्रणाली का उपयोग करना।

  2. एडीएक्स का उपयोग करके कमजोर ट्रेंडिंग बाजार को फ़िल्टर करना ताकि समेकन में झटके से बचा जा सके।

  3. एक घंटे की समय सीमा बाजार शोर को फ़िल्टर करती है और केवल मध्यम से दीर्घकालिक रुझानों को पकड़ती है।

  4. ट्रेंड ट्रेडरों के लिए यह तर्क सीधा और आसान है।

  5. ठोस बैकटेस्टिंग परिणाम विशेष रूप से उच्च बाजार कैप सिक्कों जैसे ईटीएच/बीटीसी पर।

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

इस रणनीति के बारे में ध्यान देने योग्य कुछ जोखिमः

  1. ICHIMOKU पैरामीटर संवेदनशील हैं, विभिन्न जोड़े के लिए अनुकूलन की जरूरत है।

  2. ADX कुछ मामलों में देरी हो सकती है, जिससे प्रवेश चूक सकता है।

  3. अक्सर स्टॉप लॉस के साथ बाजारों में खराब प्रदर्शन करता है।

  4. प्रदर्शन विभिन्न जोड़े और समय सीमाओं में बहुत भिन्न होता है।

  5. पदों को लंबे समय तक धारण करना जोखिम भरा हो सकता है, उचित स्टॉप लॉस/टेक प्रॉफिट की आवश्यकता होती है।

अनुकूलन एडीएक्स पैरामीटर ट्यूनिंग के माध्यम से किया जा सकता है, झूठे संकेतों को कम करने के लिए एमएसीडी जैसे फ़िल्टर जोड़ना, या मजबूती के लिए पैरामीटर के गतिशील समायोजन।

अनुकूलन दिशाएँ

रणनीति में सुधार के लिए कुछ प्रमुख दिशाएंः

  1. बेहतर अनुकूलन के लिए TENKAN और KIJUN मापदंडों का गतिशील अनुकूलन

  2. ADX के साथ प्रतिस्थापन या संयोजन के लिए बेहतर रुझान संकेतकों की खोज।

  3. जोखिम/लाभ अनुपात को नियंत्रित करने के लिए स्टॉप लॉस/टेक प्रॉफिट जोड़ना।

  4. स्थिरता में सुधार के लिए पूरक संकेतकों के साथ मॉडलिंग को जोड़ें।

  5. अधिक जोड़े पर पैरामीटर ट्यूनिंग के लिए मॉड्यूलरीकरण और लचीलापन।

  6. परिमाणात्मक जोखिम प्रबंधन, उदाहरण के लिए चरम चाल के खिलाफ अधिकतम ड्रॉडाउन नियंत्रण।

निष्कर्ष

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


/*backtest
start: 2023-11-07 00:00:00
end: 2023-12-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="Odin's Kraken (TK Cross Strategy)", shorttitle="Odin's Kraken", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

src = input(close, title="Source")

// define tk in ichimoku

conversionPeriods = input(18, minval=1, title="Conversion Line Periods (Tenkan)"),
basePeriods = input(58, minval=1, title="Base Line Periods (Kijun)")

donchian(len) => avg(lowest(len), highest(len))

conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)

TK_Uptrend = crossover(conversionLine,baseLine)
TK_Downtrend = crossunder(conversionLine,baseLine)

plot(conversionLine, color=lime, title="Tenkan", linewidth=3)
plot(baseLine, color=red, title="Kijun", linewidth=3)

// define ADX

adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
th = input(title="threshold", defval=20)
dirmov(len) =>
	up = change(high)
	down = -change(low)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
    minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
	truerange = rma(tr, len)
	
	plus = fixnan(100 * rma(plusDM, len) / truerange)
	minus = fixnan(100 * rma(minusDM, len) / truerange)

	[plus, minus]

adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
	
[plus, minus] = dirmov(dilen)
sig = adx(dilen, adxlen)

// backtesting range

// From Date Inputs
fromDay = input(defval = 3, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2018, title = "From Year", minval = 1970)
 
// To Date Inputs
toDay = input(defval = 3, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 9, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2019, title = "To Year", minval = 1970)
 
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true

// open long and short

longCondition = TK_Uptrend
if (longCondition and sig > 12 and time_cond)
    strategy.entry("LONG", strategy.long)

shortCondition = TK_Downtrend
if (shortCondition and sig > 12 and time_cond)
    strategy.entry("SHORT", strategy.short)

// close trade if backtesting criteria not met

if (not time_cond)
    strategy.close_all()




अधिक