এই কৌশলটি ম্যাকডি অ্যাসিললেটর গঠনের জন্য দ্রুত ইএমএ এবং ধীর ইএমএ এর মধ্যে পার্থক্য গণনা করে এবং সিগন্যাল লাইন গঠনের জন্য ম্যাকডি এর ইএমএ নিজেই গণনা করে, যার ফলে একটি দ্বৈত ফিল্টারিং সিস্টেম তৈরি হয়। এটি ম্যাকডি লাইন নীচে থেকে সিগন্যাল লাইনের উপরে অতিক্রম করার সময় কিনতে সংকেত উত্পন্ন করে এবং ম্যাকডি লাইন উপরে থেকে সিগন্যাল লাইনের নীচে অতিক্রম করার সময় সংক্ষিপ্ত ও মাঝারি মেয়াদী দামের ওঠানামা থেকে মুনাফা অর্জন করে।
এই কৌশলটির মূল সূচক হ'ল এমএসিডি দোলক, যা ধীর ইএমএ (সাধারণত 26 দিনের ইএমএ) কে দ্রুত ইএমএ (সাধারণত 12 দিনের ইএমএ) থেকে বিয়োগ করে গণনা করা হয়। দ্রুত ইএমএ আরও সংবেদনশীল এবং স্বল্পমেয়াদী দামের ওঠানামা ক্যাপচার করতে পারে। ধীর ইএমএ দামের পরিবর্তনে আরও ধীর গতিতে প্রতিক্রিয়া জানায়। দুটি বিয়োগ করে একটি দোলক তৈরি করে যা স্বল্পমেয়াদী এবং মাঝারি মেয়াদী মূল্য চক্রের মধ্যে পার্থক্যকে উপস্থাপন করে। সিগন্যাল লাইন পাওয়ার জন্য ম্যাকডি দোলকের ইএমএ (সাধারণত 9 দিন) নিজেই গণনা করা হয়। যখন ম্যাকড সিগন্যালটি নীচের থেকে ম্যাক লাইনের উপরে অতিক্রম করে, এটি একটি ক্রয় সংকেত তৈরি করে যে স্বল্পমেয়াদী প্রবণনের আপলোড মম্পটম্যান্স মাঝারি মেয়াদী প্রবণনের তুলনায় শক্তিশালী। যখন ডাবল ডাবল ডাবল ডাবল ডাবল লাইন অতিক্রম করে, এটি সংকেত দেয় যে স্ব
এই কৌশলটির ইনপুট পরামিতিগুলি যথাক্রমে দ্রুত লাইনের দৈর্ঘ্য, ধীর লাইন দৈর্ঘ্য, মূল্য উত্স এবং সংকেত লাইনের মসৃণকরণ সময়ের জন্য সেট করা হয়। সর্বোত্তম পরামিতি সংমিশ্রণগুলি খুঁজে পেতে এগুলি বিভিন্ন বাজারের সাথে সামঞ্জস্য করা যেতে পারে। ব্যাকগ্রাউন্ড রঙের ব্লকটি ব্যাকটেস্টের সময়সীমা দেখায়। কৌশলটি কেবল এই সময়সীমার মধ্যে অবস্থানগুলি খোলে।
এমএসিডি সূচকটি ক্লাসিক এবং সহজেই বোঝা যায়, যা স্বল্প থেকে মাঝারি মেয়াদী বিপরীতমুখী সুযোগগুলি কার্যকরভাবে ক্যাপচার করে।
এমএসিডি সিস্টেমের দ্বৈত ইএমএ নির্মাণ একক এমএ সিস্টেমের তুলনায় ভাল মসৃণতা আছে।
তুলনামূলকভাবে আরও সামঞ্জস্যযোগ্য পরামিতিগুলি বিভিন্ন বাজারে অপ্টিমাইজেশানকে অনুমতি দেয়।
ভলিউম সূচকগুলির সাথে সংযুক্ত করা উচ্চ মানের সংকেত সনাক্ত করতে সহায়তা করে।
অস্থির বাজারগুলোতে ম্যাকডি আরও মিথ্যা সংকেত দিতে পারে।
এটি প্রবণতা নির্ধারণ করতে পারে না এবং প্রবণতা অতিক্রম করার সময় ক্ষতি হতে পারে।
সীমিত ব্যাকটেস্টের সময়সীমা বাজারের চরম পরিস্থিতিকে উপেক্ষা করতে পারে।
নির্দিষ্ট বাজারের সময়কালের জন্য অতিরিক্ত ফিটিং এড়াতে প্যারামিটার টিউনিংয়ের জন্য আরও বেশি বাজারের তথ্য প্রয়োজন।
প্রবণতা সূচক এবং স্টপ লস প্রক্রিয়া অন্তর্ভুক্ত করে ঝুঁকি নিয়ন্ত্রণ করা যেতে পারে। প্যারামিটার অপ্টিমাইজেশনের জন্য ব্যাকটেস্টের সুযোগ এবং বাজার নমুনা স্থান প্রসারিত করা যেতে পারে।
বিভিন্ন মূল্য সূত্র যেমন বন্ধ, মধ্যম, রিসেট মূল্য ইত্যাদি পরীক্ষা করুন।
আরো ঐতিহাসিক তথ্যের ভিত্তিতে সর্বোত্তম পরামিতি সেট অনুসন্ধান করুন।
সিগন্যালের গুণমান বিচার করার জন্য অন্যান্য সূচকগুলি একীভূত করুন, যেমন ভলিউম সংকেত।
উল্লেখযোগ্য প্রবণতা দ্বন্দ্ব এড়াতে প্রবণতা এবং চক্র বিশ্লেষণ অন্তর্ভুক্ত করুন।
এই কৌশলটি একটি দ্বৈত ইএমএ ফিল্টার সিস্টেম তৈরি করে স্বল্প-মধ্যমেয়াদী বিপরীতমুখী সুযোগগুলি ক্যাপচার করে। এটি একটি ক্লাসিক এবং ব্যবহারিক বাজার টাইমিং কৌশল অন্তর্গত। প্যারামিটার অপ্টিমাইজেশন, সংকেত ফিল্টারিং এবং স্টপ লস উপায়গুলির মাধ্যমে ঝুঁকিগুলি নিয়ন্ত্রণ করা যেতে পারে। শিখর কেনা এবং নীচে বিক্রি এড়াতে প্রবণতা বিশ্লেষণ সরঞ্জামগুলি অন্তর্ভুক্ত করা স্থিতিশীল মুনাফা অর্জন করতে পারে।
/*backtest start: 2022-12-19 00:00:00 end: 2023-12-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="MACD Histogram Backtest", shorttitle="MACD") // Getting inputs fast_length = input(title="Fast Length", type=input.integer, defval=12) slow_length = input(title="Slow Length", type=input.integer, defval=26) src = input(title="Source", type=input.source, defval=close) signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9) sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false) sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false) // Plot colors col_grow_above = #26A69A col_grow_below = #FFCDD2 col_fall_above = #B2DFDB col_fall_below = #EF5350 col_macd = #0094ff col_signal = #ff6a00 // Calculating fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal grow = (hist[1] < hist) fall = (hist[1] > hist) and hist >= 0 stop = (hist[1] > hist) plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 ) plot(macd, title="MACD", color=col_macd, transp=0) plot(signal, title="Signal", color=col_signal, transp=0) //Strategy Testing // Component Code Start // Example usage: // if testPeriod() // strategy.entry("LE", strategy.long) testStartYear = input(2017, "Backtest Start Year") testStartMonth = input(01, "Backtest Start Month") testStartDay = input(2, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2019, "Backtest Stop Year") testStopMonth = input(12, "Backtest Stop Month") testStopDay = input(30, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) // A switch to control background coloring of the test period testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true) testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na bgcolor(testPeriodBackgroundColor, transp=97) testPeriod() => true // Component Code Stop //Entry and Close settings if testPeriod() strategy.entry("grow", true, 10, when = grow, limit = close) strategy.close("grow", when = fall) strategy.close("grow", when = stop) //if testPeriod() // strategy.entry("fall", false, 1000, when = fall, limit = close) // strategy.close("fall", when = grow)