কৌশল অনুসরণ করে শ্যাফ ট্রেন্ড চক্রের গতি

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

img

সারসংক্ষেপ

এই কৌশলটি স্টক আরএসআই এর ওভারবয় এবং ওভারসোল্ড নীতিগুলির সাথে একত্রিত হয়ে স্কাফ ট্রেন্ড সাইকেল সূচকের উপর ভিত্তি করে গতির মেট্রিকগুলি ব্যবহার করে প্রবণতা নির্ধারণ এবং অনুসরণ করার জন্য। যখন দাম ওভারসোল্ড অঞ্চলের বাইরে ওভারসোল্ড অঞ্চলে ভেঙে যায় তখন এটি দীর্ঘ হয় এবং যখন দাম ওভারসোল্ড অঞ্চলে ওভারসোল্ড অঞ্চলে ভেঙে যায় তখন এটি সংক্ষিপ্ত হয়। কৌশলটি দামের প্রবণতার পরিবর্তনগুলি ক্যাপচার করে গতিশীলভাবে অবস্থানগুলি সামঞ্জস্য করে।

কৌশলগত যুক্তি

    1. এমএসিডি গণনা করুন, যেখানে ডিফল্ট ফাস্ট দৈর্ঘ্য 23 এবং ধীর দৈর্ঘ্য 50। দামের গতি বিচার করতে এমএসিডি স্বল্প ও দীর্ঘমেয়াদী চলমান গড়ের মধ্যে পার্থক্য প্রতিফলিত করে।
    1. ম্যাকডি-তে স্টক আরএসআই প্রয়োগ করুন, যেখানে ডিফল্ট চক্রের দৈর্ঘ্য 10 হয়, যা ম্যাকডি গতির মেট্রিকের অতিরিক্ত ক্রয় / অতিরিক্ত বিক্রয় স্তরগুলি প্রতিফলিত করে।
    1. K এর ওজনযুক্ত চলমান গড়টি D ফর্মের জন্য নিন, যেখানে ডিফল্ট 1st %D দৈর্ঘ্য 3 হয়, K থেকে শব্দ অপসারণ করতে।
    1. স্টোক আরএসআই আবার ডি তে প্রয়োগ করুন প্রাথমিক এসটিসি মান গঠনের জন্য, যেখানে ডিফল্ট 2nd %D দৈর্ঘ্য 3 হয়, সুনির্দিষ্ট ওভারকোপড / ওভারসোল্ড সংকেত তৈরি করতে।
    1. প্রাথমিক এসটিসির ওজনযুক্ত চলমান গড়টি গ্রহণ করুন 0 থেকে 100 পর্যন্ত চূড়ান্ত এসটিসি মান পেতে। 75 এর উপরে এসটিসি বেশি কেনা হয়, 25 এর নীচে বেশি বিক্রি হয়।
    1. এসটিসি ২৫ এর উপরে গেলে লং, আর এসটিসি ৭৫ এর নিচে গেলে শর্ট।

সুবিধা

    1. স্টক আরএসআই-কে একত্রিত করে এসটিসি'র নকশা স্পষ্টভাবে ওভারকুপ/ওভারসোল্ড অঞ্চলগুলি চিহ্নিত করে, শক্তিশালী ট্রেন্ড সংকেত গঠন করে।
    1. ডাবল স্টোক আরএসআই ফিল্টারিং কার্যকরভাবে মিথ্যা ব্রেকআউট দূর করে।
    1. এসটিসি এর মানসম্মত 0-100 পরিসীমা সহজ সরল যান্ত্রিক ট্রেডিং সংকেত দেয়।
    1. ব্যাকটেস্টটি স্পষ্ট এবং স্বজ্ঞাত সংকেত ক্যাপচারের জন্য ভিজ্যুয়াল ব্রেকআউট চিহ্ন এবং পাঠ্য পপআপ সতর্কতা বাস্তবায়ন করে।
    1. অপ্টিমাইজড ডিফল্ট প্যারামিটারগুলি অত্যধিক সংবেদনশীল সংকেত এবং অপ্রয়োজনীয় ট্রেডগুলি এড়ায়।

ঝুঁকি

    1. এসটিসি প্যারামিটার সংবেদনশীল। বিভিন্ন মুদ্রা এবং সময়সীমার বাজারের বৈশিষ্ট্য অনুসারে প্যারামিটার টিউনিং প্রয়োজন।
    1. ব্রেকআউট কৌশলগুলি ফাঁদে পড়তে পারে, ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ প্রয়োজন।
    1. নিম্ন তরলতার ভুয়া ব্রেকআউট খারাপ সংকেত তৈরি করতে পারে, ভলিউম ফিল্টার প্রয়োজন।
    1. এসটিসি এককভাবে বিপরীতমুখী হওয়ার ঝুঁকি রয়েছে। অন্যান্য ফ্যাক্টর ব্যবহার করে নিশ্চিতকরণ প্রয়োজন।
    1. খারাপ সংকেত এড়ানোর জন্য মূল সমর্থন/প্রতিরোধ স্তরগুলি পর্যবেক্ষণ করা উচিত।

উন্নতির সুযোগ

    1. বিভিন্ন সময়কাল এবং মুদ্রার জন্য MACD পরামিতি অপ্টিমাইজ করুন।
    1. স্টোক আরএসআই কে এবং ডি মানগুলিকে এসটিসি বক্ররেখা মসৃণ করার জন্য পরিমার্জন করুন।
    1. কম লিকুইডিটি ভুয়া breakouts এড়াতে ভলিউম ফিল্টার যোগ করুন।
    1. সিগন্যাল নিশ্চিত করার জন্য অতিরিক্ত সূচক অন্তর্ভুক্ত করুন, উদাহরণস্বরূপ, বোলিংজার ব্যান্ড।
    1. স্টপ মেকানিজম যোগ করুন যেমন মুভিং/এটিআর স্টপ।
    1. এন্ট্রি সামঞ্জস্য করুন, উদাহরণস্বরূপ ট্রেন্ড নিশ্চিতকরণের জন্য ব্রেকআউটের পর পলব্যাক এন্ট্রি করুন।

সিদ্ধান্ত

শ্যাফ ট্রেন্ড সাইকেল কৌশলটি স্বল্পমেয়াদী মূল্য প্রবণতা পরিবর্তনগুলি নির্ধারণের জন্য গতির মেট্রিকগুলির মাধ্যমে ওভারকুপেড / ওভারসোল্ড সনাক্ত করে। যদিও এটি সহজ এবং সামঞ্জস্যযোগ্য, এটি ফাঁদগুলির ঝুঁকি রাখে। দৃ strong় প্রবণতার জন্য নিশ্চিতকরণ এবং থামার সহায়তা অপ্টিমাইজেশন।


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

//@version=3
// Copyright (c) 2018-present, Alex Orekhov (everget)
// Schaff Trend Cycle script may be freely distributed under the MIT license.
strategy("Schaff Trend Cycle", shorttitle="STC Backtest", overlay=true)

fastLength = input(title="MACD Fast Length",  defval=23)
slowLength = input(title="MACD Slow Length",  defval=50)
cycleLength = input(title="Cycle Length",  defval=10)
d1Length = input(title="1st %D Length",  defval=3)
d2Length = input(title="2nd %D Length",  defval=3)
src = input(title="Source",  defval=close)
highlightBreakouts = input(title="Highlight Breakouts ?", type=bool, defval=true)

macd = ema(src, fastLength) - ema(src, slowLength)

k = nz(fixnan(stoch(macd, macd, macd, cycleLength)))

d = ema(k, d1Length)

kd = nz(fixnan(stoch(d, d, d, cycleLength)))

stc = ema(kd, d2Length)
stc := 	stc > 100 ? 100 : stc < 0 ? 0 : stc

//stcColor = not highlightBreakouts ? (stc > stc[1] ? green : red) : #ff3013
//stcPlot = plot(stc, title="STC", color=stcColor, transp=0)

upper = input(75, defval=75)
lower = input(25, defval=25)

transparent = color(white, 100)

upperLevel = plot(upper, title="Upper", color=gray)
// hline(50, title="Middle", linestyle=dotted)
lowerLevel = plot(lower, title="Lower", color=gray)

fill(upperLevel, lowerLevel, color=#f9cb9c, transp=90)

upperFillColor = stc > upper and highlightBreakouts ? green : transparent
lowerFillColor = stc < lower and highlightBreakouts ? red : transparent

//fill(upperLevel, stcPlot, color=upperFillColor, transp=80)
//fill(lowerLevel, stcPlot, color=lowerFillColor, transp=80)

long =  crossover(stc, lower) ? lower : na
short = crossunder(stc, upper) ? upper : na

long_filt = long and not short
short_filt = short and not long

prev = 0
prev := long_filt ? 1 : short_filt ? -1 : prev[1]

long_final = long_filt and prev[1] == -1
short_final = short_filt and prev[1] == 1

strategy.entry("long", strategy.long, when = long )
strategy.entry("short", strategy.short, when = short)

plotshape(crossover(stc, lower) ? lower : na, title="Crossover", location=location.absolute, style=shape.circle, size=size.tiny, color=green, transp=0)
plotshape(crossunder(stc, upper) ? upper : na, title="Crossunder", location=location.absolute, style=shape.circle, size=size.tiny, color=red, transp=0)

alertcondition(long_final, "Long", message="Long")
alertcondition(short_final,"Short", message="Short")

plotshape(long_final, style=shape.arrowup, text="Long", color=green, location=location.belowbar)
plotshape(short_final, style=shape.arrowdown, text="Short", color=red, location=location.abovebar)


আরো