এমএসিডি ভিত্তিক যৌগিক পরিমাণগত ট্রেডিং কৌশল

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

img

সারসংক্ষেপ

এটি এমএসিডি সূচকের উপর ভিত্তি করে একটি যৌগিক পরিমাণগত ট্রেডিং কৌশল। এটি সূচকগুলির সংমিশ্রণের মাধ্যমে ট্রেডিং সংকেত তৈরি করতে এমএসিডি এবং কেডিজে এর মতো একাধিক সূচককে একত্রিত করে।

কৌশল নীতি

এই কৌশলটির মূল সূচকটি হল এমএসিডি। এমএসিডি হ'ল চলমান গড়ের রূপান্তর বৈষম্য, যা একটি প্রবণতা অনুসরণকারী সূচক। এটি একটি দ্রুত চলমান গড় (ইএমএ) এবং একটি ধীর চলমান গড় (ইএমএ) নিয়ে গঠিত। ডিফল্ট পরামিতিগুলি দ্রুত রেখার জন্য 12 এবং ধীর রেখার জন্য 26। কৌশলটি দুটি ইএমএ লাইনের মধ্যে পার্থক্য গণনা করে, যাকে ডিআইএফ বলা হয়। তারপরে ডিআইএফ সূচকটি পেতে ডিআইএফ-তে 9 দিনের ইএমএ গণনা করা হয়। যখন ডিআইএফ ডিইএর উপরে অতিক্রম করে, তখন একটি ক্রয় সংকেত উত্পন্ন হয়। যখন নীচে অতিক্রম করে, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।

কৌশলটি কেডিজে সূচককেও অন্তর্ভুক্ত করে। কেডিজে সূচকটিতে কে মান, ডি মান এবং জে মান অন্তর্ভুক্ত রয়েছে। তাদের মধ্যে, কে মানটি এলোমেলো মানকে বোঝায়, ডি মানটি কে মানের চলমান গড় এবং জে মানটি নির্ধারক মানকে বোঝায়। কেডিজে সূচক বাজারে ওভারকোপড এবং ওভারসোল্ড স্তরগুলি প্রতিফলিত করে। যখন জে মান 100 এর চেয়ে বড় হয়, এটি ওভারকোপড শর্তগুলি উপস্থাপন করে। যখন 10 এর চেয়ে কম হয়, এটি ওভারসোল্ড শর্তগুলি উপস্থাপন করে। কৌশলটি বাজারের পালা পয়েন্টগুলিতে ভুল সংকেত উত্পাদন এড়াতে কেডিজে সূচককে একত্রিত করে।

কৌশলটির সুবিধা

কৌশলটি এমএসিডি এবং কেডিজে এর মতো একাধিক সূচককে একত্রিত করে, যা কার্যকরভাবে বাজারের গোলমাল ফিল্টার করতে এবং প্রবণতার দিকনির্দেশগুলি সনাক্ত করতে পারে। এমএসিডি সূচক স্বল্পমেয়াদী মূল্য পরিবর্তনগুলি সময়মতো ক্যাপচার করতে পারে, যখন কেডিজে সূচক মাঝারি এবং দীর্ঘমেয়াদী প্রবণতা নিশ্চিত করতে পারে। দুটির সংমিশ্রণ তত্পরতা এবং স্থিতিশীলতার সাধনায় ভারসাম্য বজায় রাখতে পারে।

এছাড়াও, কৌশলটিতে একটি সময়সীমা নির্বাচনকারী অন্তর্ভুক্ত রয়েছে, যা কৌশল কার্যকারিতা মূল্যায়নে আরও নমনীয়তা প্রদান করে।

ঝুঁকি এবং সমাধান

  • যখন বাজার দীর্ঘ সময়ের জন্য ওঠানামা করে, তখন MACD এর একাধিক মিথ্যা সংকেত থাকবে। এই মুহুর্তে, আমরা কিছু শব্দ ফিল্টার করার জন্য EMA লাইনের পরামিতিগুলি সঠিকভাবে সামঞ্জস্য করতে পারি।

  • ভুল KDJ পরামিতি সেটিংস ফলাফল প্রভাবিত করবে. আমরা একাধিক পরামিতি গ্রুপ পরীক্ষা এবং একটি আরো স্থিতিশীল পরামিতি সমন্বয় নির্বাচন করতে পারেন.

  • ব্যাকটেস্টের সময়সীমার অনুপযুক্ত নির্বাচন কৌশলটির লাভজনকতাকে অতিরঞ্জিত বা কম মূল্যায়ন করবে। পরীক্ষার জন্য প্রতিনিধিত্বমূলক সময়সীমা বেছে নেওয়া উচিত।

অপ্টিমাইজেশান নির্দেশাবলী

কৌশলটি নিম্নলিখিত দিকগুলিতে অপ্টিমাইজ করা যেতে পারেঃ

  1. একটি স্টপ লস মেকানিজম যোগ করুন। যখন মূল্য স্টপ লস লাইন ট্রিগার করে, এটি স্টপ লস উদ্দেশ্যে একটি অবস্থান প্রস্থান বাধ্য করবে।

  2. সিগন্যালের নির্ভুলতা উন্নত করতে আরও সূচক ফিল্টার অন্তর্ভুক্ত করুন, যেমন আরএসআই এবং বলিংজার ব্যান্ডের মতো সূচকগুলি একত্রিত করুন।

  3. সূচক পরামিতি অপ্টিমাইজ করুন. সর্বোত্তম সেটিংস খুঁজে পেতে EMA এবং KDJ পরামিতিগুলির সমন্বয় পরিবর্তন করুন।

  4. স্বয়ংক্রিয়ভাবে অপ্টিমাইজ করার জন্য মেশিন লার্নিং কৌশল ব্যবহার করুন। প্যারামিটার প্রশিক্ষণ এবং অপ্টিমাইজেশান জন্য নিউরাল নেটওয়ার্ক ব্যবহার করুন।

সিদ্ধান্ত

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


/*backtest
start: 2022-12-06 00:00:00
end: 2023-12-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="New Renaissance", shorttitle="New Renaissance", overlay=true,initial_capital=10000)

source = close

fastlength=input(12, minval=1)
slowlength=input(26,minval=1)
signallength=input(9,minval=1)

// === Defining the MACD oscillator
fastMA=ema(source,fastlength)
slowMA=ema(source,slowlength)
MACD=fastMA-slowMA
signal=sma(MACD,signallength)
delta=MACD-signal

// === Buy and Sell Signals ===
buy=crossover(MACD, signal)
sell=crossunder(MACD, signal)

// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2018, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 12,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 31,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2020, title = "Thru Year",       type = input.integer, minval = 1970)

// === INPUT SHOW PLOT ===
showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

// === FUNCTION EXAMPLE ===
start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"

// === EXECUTION ===
strategy.entry("L", strategy.long, when = window() and buy)    // enter long when "within window of time" AND crossover
strategy.close("L", when = window() and sell)                   // exit long when "within window of time" AND crossunder      

আরো