
এই কৌশলটি একটি ক্রিপ্টোকারেন্সি ট্রেডিং কৌশল যা MACD সূচক এবং এলোমেলো সূচকগুলির সমন্বয় ভিত্তিক। এটি বিটকয়েনের দামের MACD সূচকগুলি গণনা করে এবং এলোমেলো সূচকগুলি প্রয়োগ করে ট্রেডিং সংকেত তৈরি করে যাতে ক্রিপ্টোকারেন্সি বাজারের প্রবণতা পরিবর্তন হয়।
এই কৌশলটি প্রথমে MACD সূচকটি গণনা করে। MACD একটি প্রবণতা-অনুসরণকারী সূচক, যা চলমান গড়ের ঘনিষ্ঠতা এবং বিচ্ছিন্নতার প্রতিনিধিত্ব করে। এটি একটি দ্রুত লাইন এবং একটি ধীর লাইন নিয়ে গঠিত, দ্রুত লাইনটি একটি স্বল্পমেয়াদী সূচকীয় চলমান গড় এবং ধীর লাইনটি একটি দীর্ঘমেয়াদী সূচকীয় চলমান গড়। যখন দ্রুত লাইনটি ধীর লাইনটি অতিক্রম করে, তখন এটি একটি গোল্ড ফর্ক সংকেত, যা বাজারকে উত্সাহী করে তোলে; যখন দ্রুত লাইনটি ধীর লাইনটি অতিক্রম করে তখন এটি একটি মৃত ফর্ক সংকেত, যা বাজারকে পিছিয়ে দেয়।
MACD সূচক গণনা করার পরে, এই কৌশলটি MACD সূচকটির উপর একটি এলোমেলো সূচক% কে প্রয়োগ করে। এলোমেলো সূচক% কে এর গণনা সূত্রটি হলঃ
%K = (বর্তমান সমাপ্তি মূল্য - N দিনের সর্বনিম্ন মূল্য) / (N দিনের সর্বোচ্চ মূল্য - N দিনের সর্বনিম্ন মূল্য) * 100
এলোমেলো সূচক শেয়ারের দামের সাম্প্রতিক পরিসীমা থেকে বেরিয়ে যাওয়ার পরিবর্তনকে প্রতিফলিত করে। %K এর মান 20-80 এর মধ্যে চলাচল শেয়ারের দামের চলাচলের প্রতিনিধিত্ব করে। যখন%K নীচে থেকে 20 লাইন অতিক্রম করে, তখন এটি কেনার সংকেত দেয়। যখন%K উপরে থেকে নীচে 80 লাইন অতিক্রম করে, তখন এটি বিক্রি করার সংকেত দেয়।
এই কৌশলটি MACD সূচক এবং এলোমেলো সূচক %K এর ট্রেডিং সিগন্যালের সমন্বয়ে ক্রিপ্টোকারেন্সি মার্কেটে লেনদেন করে। যখন এলোমেলো সূচক%K ঊর্ধ্বমুখী হয়ে ২০ অতিক্রম করে তখন এটি একটি কেনার সংকেত দেয়; যখন এলোমেলো সূচক%K ঊর্ধ্বমুখী হয়ে ৮০ অতিক্রম করে তখন এটি একটি বিক্রয় সংকেত দেয়।
এই কৌশলটি প্রবণতা বিশ্লেষণ এবং ওভার-বই ওভার-সেল সূচকগুলির সাথে মিলিত হয়, যা বাজারের গুরুত্বপূর্ণ টার্নপয়েন্টগুলিকে কার্যকরভাবে সনাক্ত করতে পারে। একা বা এলোমেলোভাবে MACD ব্যবহারের তুলনায়% K এবং MACD এর সংমিশ্রণটি সংকেতের নির্ভরযোগ্যতা বৃদ্ধি করতে এবং মিথ্যা সংকেত হ্রাস করতে পারে।
এছাড়াও, এই কৌশলটি ক্রিপ্টোকারেন্সি ট্রেডিংয়ের জন্য স্টক মার্কেটে ব্যবহৃত প্রযুক্তিগত সূচকগুলি প্রয়োগ করে, যা একটি ক্রস-মার্কেট ব্যবহার। এই সূচকটি ডিজিটাল মুদ্রার বাজারেও প্রযোজ্য, এমনকি ডিজিটাল মুদ্রার উচ্চ অস্থিরতার কারণে আরও ভাল ফলাফল পাওয়া যায়।
এই কৌশলটির সবচেয়ে বড় ঝুঁকিটি হ’ল ক্রিপ্টোকারেন্সির বাজারটি অত্যন্ত অস্থির, যা মিথ্যা সংকেত তৈরি করতে পারে যার ফলে ব্যবসায়ের ক্ষতি হয়। এছাড়াও, প্রযুক্তিগত সূচকগুলি যখন সংকেত দেয় তখন দামগুলি ইতিমধ্যে একটি নির্দিষ্ট পরিমাণে পরিবর্তিত হতে পারে, প্রবণতার প্রাথমিক পর্যায়ে পর্যাপ্তভাবে ধরা না পড়ার ঝুঁকি রয়েছে।
এই ঝুঁকিগুলি নিয়ন্ত্রণ করতে, মুনাফা লক করার জন্য মুভিং স্টপ ব্যবহার করার পরামর্শ দেওয়া হয়, যাতে ক্ষতির আরও বিস্তার না হয়। একই সাথে, বিভিন্ন চক্রের দৈর্ঘ্য ব্যবহার করে আরও সম্ভাব্য সুযোগগুলি আবিষ্কার করার জন্য প্যারামিটারগুলি যথাযথভাবে সামঞ্জস্য করা যেতে পারে।
প্রথমত, এই কৌশলটি চলমান গড়ের সাথে অস্থিরতার সূচক ব্যবহার করার চেষ্টা করতে পারে, যেমন বুলিন ব্যান্ড, অস্থিরতার প্যারামিটারগুলি সেট করে যাতে বিরতির কার্যকারিতা সনাক্ত করা যায় এবং মিথ্যা সংকেত এড়ানো যায়।
দ্বিতীয়ত, মেশিন লার্নিং মডেলগুলিকে ঐতিহাসিক তথ্যের উপর প্রশিক্ষিত করা যেতে পারে, যা একটি র্যান্ডম বন বা এলএসটিএম নিউরাল নেটওয়ার্ক মডেল তৈরি করতে পারে যা নির্দেশক সংকেতের কার্যকারিতা নির্ধারণে সহায়তা করে।
তৃতীয়ত, ক্ষতির ব্যবস্থা বাড়ানো। যখন দাম একটি নির্দিষ্ট পরিমাণের বেশি নেতিবাচক দিকে চলে যায়, তখন স্বয়ংক্রিয়ভাবে ঝুঁকি নিয়ন্ত্রণের জন্য ক্ষতির ব্যবস্থা করা হয়।
এই কৌশলটি MACD সূচক এবং এলোমেলো সূচক %K এর সাথে মিলিত হয়, উভয় সূচক একে অপরের সংকেত যাচাই করার পদ্ধতি ব্যবহার করে ক্রিপ্টোকারেন্সির ট্রেডিং কৌশল তৈরি করে। এই সংমিশ্রণ সূচক কৌশলটি সংকেতের নির্ভুলতা কিছুটা বাড়িয়ে তুলতে পারে। তবে আমাদের সতর্কতা অবলম্বন করতে হবে যে সূচকগুলির সংমিশ্রণটি অত্যধিক জটিল হতে পারে, যার ফলে শব্দ এবং লেজিং প্রভাব হতে পারে। প্যারামিটার সেট এবং ঝুঁকি নিয়ন্ত্রণ সমানভাবে গুরুত্বপূর্ণ, বিভিন্ন বাজারের পরিবেশের সাথে সামঞ্জস্য রেখে অপ্টিমাইজ করা প্রয়োজন যাতে কৌশলটি আরও ভাল পারফরম্যান্স পায়।
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Schaff Trend Cycle Strategy", 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
upper = input(75, defval=75)
lower = input(25, defval=25)
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
//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)
strategy.entry("long", strategy.long, when = long )
strategy.entry("short", strategy.short, when = short)