ইচিমোকু কুমো টুইস্ট কৌশল

লেখক:চাওঝাং, তারিখ: ২০২৩-১০-২৭ ১৬ঃ৩৬ঃ৫৯
ট্যাগঃ

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)


আরো