इचिमोकू कुमो ट्विस्ट गोल्ड-अब्जॉर्बिंग रणनीति एक मात्रात्मक ट्रेडिंग रणनीति है जो इचिमोकू बाजार तकनीकी संकेतक और रेंज फ़िल्टरिंग को जोड़ती है। यह बाजार के रुझानों और महत्वपूर्ण समर्थन और प्रतिरोध स्तरों को निर्धारित करने के लिए इचिमोकू संकेतक का उपयोग करता है, साथ ही साथ ट्रेडिंग संकेत उत्पन्न करने के लिए कैंडलस्टिक पैटर्न के साथ। इस बीच, रेंज फ़िल्टरिंग ट्रेडिंग आवृत्ति और जोखिम को नियंत्रित करने में मदद करती है।
रणनीति मुख्य रूप से बाजार के रुझानों का न्याय करने के लिए इचिमोकू संकेतक और कैंडलस्टिक पैटर्न पर आधारित है। इचिमोकू में रूपांतरण रेखा, आधार रेखा और बादल रेखाएं होती हैं, उनके क्रॉसओवर संबंध बाजार के रुझानों को इंगित करते हैं। बादल रेखाएं समर्थन और प्रतिरोध स्तर के रूप में भी कार्य करती हैं। रणनीति इचिमोकू रेखाओं की संवेदनशीलता को समायोजित करने के लिए विभिन्न पैरामीटर संयोजन सेट करती है। इसके अलावा, रणनीति पैटर्न की पहचान करती है और खरीद संकेत उत्पन्न करती है जब रूपांतरण रेखा आधार रेखा के ऊपर पार करती है, और नीचे पार करते समय संकेत बेचती है।
इसके अलावा, रणनीति में दिनांक सीमा फ़िल्टर सेट किए गए हैं, ताकि यह केवल निर्दिष्ट दिनांक सीमाओं के भीतर ही व्यापार करे। यह व्यापार आवृत्ति को नियंत्रित करता है। इसके अलावा, स्टॉप लॉस सेटिंग मूल्य प्रतिकूल दिशा में चलने पर नुकसान को रोककर जोखिम को कम करने में मदद करती है।
इचिमोकू मापदंडों को समायोजित करने, दिनांक सीमा को अनुकूलित करने, स्टॉप लॉस बिंदुओं को संशोधित करने जैसे तरीके जोखिमों को बेहतर और नियंत्रित कर सकते हैं।
इचिमोकू कुमो ट्विस्ट गोल्ड-अब्जॉर्बिंग रणनीति बाजार के रुझानों को निर्धारित करने के लिए इचिमोकू संकेतक, कैंडलस्टिक पैटर्न मान्यता, रेंज फ़िल्टरिंग को एकीकृत करती है। यह काफी स्पष्ट रूप से प्रवृत्ति दिशाओं को समझ सकती है। पैरामीटर ट्यूनिंग, जोखिम नियंत्रण आदि जैसे साधनों के माध्यम से, अच्छी रणनीति प्रदर्शन प्राप्त किया जा सकता है। लेकिन इचिमोकू पिछड़ने की समस्या को ध्यान में रखा जाना चाहिए, और निरंतर अनुकूलन समायोजन किया जाना चाहिए।
/*backtest start: 2023-11-20 00:00:00 end: 2023-11-27 00:00:00 period: 3m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="Ichimoku Kumo Twist Strategy (Presets)", shorttitle="Kumo Twist Strategy", overlay=true) xlowest_(src, len) => x = src for i = 1 to len - 1 v = src[i] if (na(v)) break x := min(x, v) x xlowest(src, len) => na(src[len]) ? xlowest_(src, len) : lowest(src, len) xhighest_(src, len) => x = src for i = 1 to len - 1 v = src[i] if (na(v)) break x := max(x, v) x xhighest(src, len) => na(src[len]) ? xhighest_(src, len) : highest(src, len) dropn(src, n) => na(src[n]) ? na : src ichiConversionPeriods(presets) => if presets == "Cpt 20 60 120 30" 20 else if presets == "Cpt 10 30 60 30" 10 else if presets == "Std 18 52 104 26" 18 else 9 ichiBasePeriods(presets) => if presets == "Cpt 20 60 120 30" 60 else if presets == "Cpt 10 30 60 30" 30 else if presets == "Std 18 52 104 26" 52 else 26 ichiLaggingSpan2Periods(presets) => if presets == "Cpt 20 60 120 30" 120 else if presets == "Cpt 10 30 60 30" 60 else if presets == "Std 18 52 104 26" 104 else 52 ichiDisplacement(presets) => if presets == "Cpt 20 60 120 30" 30 else if presets == "Cpt 10 30 60 30" 30 else if presets == "Std 18 52 104 26" 26 else 26 scaling = input(title="Scaling", options=["Linear", "Log"], defval="Linear") presets = input(title="Presets", options=["Cpt 20 60 120 30", "Cpt 10 30 60 30", "Std 18 52 104 26", "Std 9 26 52 26"], defval="Cpt 20 60 120 30") dropCandles = input(1, minval=0, title="Drop first N candles") showClouds = input(false, "Show Clouds") stoploss = input(true, title="Stop Loss") conversionPeriods = ichiConversionPeriods(presets) basePeriods = ichiBasePeriods(presets) laggingSpan2Periods = ichiLaggingSpan2Periods(presets) displacement = ichiDisplacement(presets) logScaling = scaling == "Log" lows = dropn(low, dropCandles) highs = dropn(high, dropCandles) lowsp = logScaling ? log(lows) : lows highsp = logScaling ? log(highs) : highs donchian(len) => avg(xlowest(lowsp, len), xhighest(highsp, len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) leadLine1 = avg(conversionLine, baseLine) leadLine2 = donchian(laggingSpan2Periods) // === BACKTEST RANGE === FromMonth = input(defval = 10, title = "From Month", minval = 1) FromDay = input(defval = 3, title = "From Day", minval = 1) FromYear = input(defval = 2017, title = "From Year", minval = 2014) ToMonth = input(defval = 1, title = "To Month", minval = 1) ToDay = input(defval = 1, title = "To Day", minval = 1) ToYear = input(defval = 9999, title = "To Year", minval = 2014) golong = crossover(leadLine1, leadLine2) goshort = crossunder(leadLine1, leadLine2) strategy.entry("Buy", strategy.long, when=(golong and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))) strategy.entry("Sell", strategy.short, when=(goshort and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))) conversionLinep = logScaling ? exp(conversionLine) : conversionLine baseLinep = logScaling ? exp(baseLine) : baseLine leadLine1p = logScaling ? exp(leadLine1) : leadLine1 leadLine2p = logScaling ? exp(leadLine2) : leadLine2 plot(showClouds ? conversionLinep : na, color=#0496ff, title="Conversion Line") plot(showClouds ? baseLinep : na, color=#991515, title="Base Line") p1 = plot(showClouds ? leadLine1p : na, offset = displacement, color=green, title="Lead 1") p2 = plot(showClouds ? leadLine2p : na, offset = displacement, color=red, title="Lead 2") fill(p1, p2, color = showClouds ? (leadLine1p > leadLine2p ? green : red) : na)