এই কৌশলটি টফডের এমএসিডি ডিএমএ সূচক ভিত্তিতে ট্রেডিং সংকেত তৈরি করে। এমএসিডি ডিএমএ সূচক শূন্য-বিকল্প প্রক্রিয়াকরণের সাথে ডিএমএ দ্রুত লাইন এবং ডিএমএ ধীর লাইনের মধ্যে পার্থক্য গণনা করে, কার্যকরভাবে নিয়মিত এমএসিডি এর বিলম্বিত ইস্যু দূর করে।
ট্রেডিং নিয়মগুলি হলঃ শূন্য-বঞ্চিত এমএসিডি 0 লাইনের উপরে অতিক্রম করলে লম্বা যান এবং এমএসিডি 0 লাইনের নীচে অতিক্রম করলে শর্ট যান। মার্কেট সেন্টিমেন্ট নির্ধারণের জন্য এমএসিডি 0-লাইন ক্রসওভার ব্যবহার করা হয়।
এই শূন্য বিলম্বের এমএসিডি কৌশলটির সুবিধা হ'ল এটি প্রবণতা পরিবর্তনগুলিকে আরও সংবেদনশীলভাবে ক্যাপচার করতে পারে। ইএমএর পরিবর্তে ডিইএমএ ব্যবহার করে মিথ্যা ব্রেকআউটগুলিও ফিল্টার করে। তবে, এমএসিডি নিজেই জটিল মূল্য ক্রিয়াকলাপের উপর সীমিত বিচার করার ক্ষমতা রাখে, কিছু মিথ্যা সংকেতের ঝুঁকি নিয়ে। স্থিতিশীলতা উন্নত করতে প্রবণতা ফিল্টার প্রয়োজন।
সংক্ষেপে, শূন্য বিলম্ব MACD DEMA ব্রেকআউট কৌশল শক্তিশালী প্রবণতা সরানোর উপর খুব ভাল কাজ করে, দ্রুত সুযোগগুলি ধরতে। তবে এটি পরিসীমা-বদ্ধ সময়কালে নিম্ন-পারফর্ম করে, সতর্কতার সাথে ব্যবহারের প্রয়োজন। কেবলমাত্র ক্রমাগত অপ্টিমাইজেশান এবং কঠোর ঝুঁকি নিয়ন্ত্রণের মাধ্যমে এই কৌশলটি দীর্ঘমেয়াদে সফলভাবে প্রয়োগ করা যেতে পারে।
/*backtest start: 2023-01-01 00:00:00 end: 2023-09-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // strategy(title="Patron04 MACD DEMA Strategy",default_qty_type = strategy.percent_of_equity,default_qty_value = 3500, overlay=true) testStartYear = input(2000, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2100, "Backtest Stop Year") testStopMonth = input(12, "Backtest Stop Month") testStopDay = input(31, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) testPeriod() => time >= testPeriodStart and time <= testPeriodStop ? true : false sma = input(12,title='DEMA Courte') lma = input(26,title='DEMA Longue') tsp = input(9,title='Signal') dolignes = input(true,title="Lignes") MMEslowa = ema(close,lma) MMEslowb = ema(MMEslowa,lma) DEMAslow = ((2 * MMEslowa) - MMEslowb ) MMEfasta = ema(close,sma) MMEfastb = ema(MMEfasta,sma) DEMAfast = ((2 * MMEfasta) - MMEfastb) LigneMACDZeroLag = (DEMAfast - DEMAslow) MMEsignala = ema(LigneMACDZeroLag, tsp) MMEsignalb = ema(MMEsignala, tsp) Lignesignal = ((2 * MMEsignala) - MMEsignalb ) MACDZeroLag = (LigneMACDZeroLag - Lignesignal) long = LigneMACDZeroLag > 0 short = LigneMACDZeroLag < 0 if testPeriod() strategy.entry("Long", strategy.long,when=long) strategy.entry("Short", strategy.short,when=short)