संसाधन लोड हो रहा है... लोड करना...

ICHIMOKU KUMO मोड़ रणनीति

लेखक:चाओझांग, दिनांकः 2023-10-27 16:36:59
टैगः

img

अवलोकन

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

रणनीति तर्क

यह रणनीति मुख्य रूप से तीन इचिमोकू रेखाओं का उपयोग करती है रूपांतरण रेखा, आधार रेखा, और अग्रणी स्पैन 1, साथ ही मोमबत्तियों की उच्च और निम्न कीमतों के साथ ऊपर और नीचे के बादल की सीमाओं की गणना करने के लिए। रूपांतरण रेखा पिछले 9 मोमबत्तियों पर उच्च और निम्न के मध्य बिंदु की गणना करती है, जो अल्पकालिक औसत का प्रतिनिधित्व करती है। आधार रेखा पिछले 26 मोमबत्तियों पर उच्च और निम्न के मध्य बिंदु की गणना दीर्घकालिक औसत के रूप में करती है। अग्रणी स्पैन 1 रूपांतरण और आधार रेखा रेखाओं का औसत है। अग्रणी स्पैन 2 पिछले 52 मोमबत्तियों का मध्य बिंदु मूल्य है।

खरीद संकेत तब उत्पन्न होते हैं जब अग्रणी स्पैन 1 अग्रणी स्पैन 2 से पार हो जाता है, जबकि बिक्री संकेत तब उत्पन्न होते हैं जब अग्रणी स्पैन 1 अग्रणी स्पैन 2 के नीचे पार हो जाता है। ट्रेडिंग रणनीति बस ट्रेंड परिवर्तनों को पकड़ने के लिए अल्पकालिक और मध्यम अवधि के साधनों के तेजी और मंदी के क्रॉस को ट्रैक करती है।

लाभ विश्लेषण

  • इचिमोकू क्लाउड ट्विस्ट रणनीति अल्पकालिक और मध्यमकालिक दोनों रुझानों को जोड़ती है, जो प्रभावी रूप से रुझान उलट बिंदुओं की पहचान कर सकती है।

  • औसत प्रतिगमन आधारित रणनीतियों में शोर को फ़िल्टर करने के लिए कुछ विलंब है।

  • प्रवृत्ति की ताकत को मापने के लिए बादलों का उपयोग करने से बेहतर प्रवेश और निकास की अनुमति मिलती है।

  • कोई पैरामीटर अनुकूलन की आवश्यकता नहीं है - मानक Ichimoku पैरामीटर अच्छी तरह से काम करते हैं।

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

  • इचिमोकू में काफी जटिल आंतरिक है और पैरामीटर tweaks के प्रति बहुत संवेदनशील नहीं है जिससे ओवर-ऑप्टिमाइजेशन मुश्किल हो जाता है।

  • रेंज-बाउंड बाजारों के दौरान कई झूठे संकेत हो सकते हैं।

  • अल्पकालिक और मध्यमकालिक रुझानों के बीच विभेद से रणनीति में ब्रेकडाउन हो सकता है।

  • जोखिम को नियंत्रित करने के लिए स्टॉप लॉस आवश्यक है, अन्यथा बड़े ड्रॉडाउन संभव हैं।

सुधार के अवसर

  • इष्टतम संतुलन खोजने के लिए रूपांतरण और आधार अवधि के विभिन्न संयोजनों का परीक्षण करें।

  • प्रतिकूल संरचनाओं में संकेत लेने से बचने के लिए अन्य संकेतकों के साथ फ़िल्टर जोड़ें।

  • गतिशील या ट्रेलिंग स्टॉप जैसी स्टॉप लॉस रणनीतियों को शामिल करें।

  • बाजार की स्थितियों के आधार पर स्थिति आकार को अनुकूलित करें।

  • अधिक यथार्थवादी परिणामों के लिए बैकटेस्ट में ट्रेडिंग कमीशन जोड़ें।

सारांश

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


/*backtest
start: 2022-10-20 00:00:00
end: 2023-10-26 00:00:00
period: 1d
basePeriod: 1h
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 == "Crypto Doubled"
        20
    else
        if presets == "Crypto Singled"
            10
        else
            if presets == "Standard Doubled"
                18
            else
                9

ichiBasePeriods(presets) =>
    if presets == "Crypto Doubled"
        60
    else
        if presets == "Crypto Singled"
            30
        else
            if presets == "Standard Doubled"
                52
            else
                26

ichiLaggingSpan2Periods(presets) =>
    if presets == "Crypto Doubled"
        120
    else
        if presets == "Crypto Singled"
            60
        else
            if presets == "Standard Doubled"
                104
            else
                52

ichiDisplacement(presets) =>
    if presets == "Crypto Doubled"
        30
    else
        if presets == "Crypto Singled"
            30
        else
            if presets == "Standard Doubled"
                26
            else
                26

scaling = input(title="Scaling", options=["Linear", "Log"], defval="Linear")
presets = input(title="Presets",  options=["Crypto Doubled", "Crypto Singled", "Standard Doubled", "Standard Singled"], defval="Crypto Doubled")
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)

golong = crossover(leadLine1, leadLine2)
goshort = crossunder(leadLine1, leadLine2)

strategy.entry("Buy", strategy.long, when=golong, stop=(stoploss ? high+syminfo.mintick : na))
strategy.entry("Sell", strategy.short, when=goshort, stop=(stoploss ? low-syminfo.mintick : na))

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)


अधिक