এই কৌশলটি ট্রেডিং সিগন্যালের জন্য প্রবণতা দিক চিহ্নিত করতে এবং উত্পন্ন করতে দিকনির্দেশক আন্দোলন সূচক (ডিএমআই) এবং চলমান গড়কে একত্রিত করে। এটি যখন ডিএমআই মূল্যকে একটি প্রবণতা অবস্থায় নির্দেশ করে এবং চলমান গড় প্রবণতা দিক নিশ্চিত করে তখন এটি কিনতে এবং বিক্রয় সংকেত উত্পাদন করবে।
কৌশলটি মূলত দুটি সূচকের উপর ভিত্তি করেঃ
ডিএমআই + এবং ডিএমআই - সহ ডিএমআই, একটি প্রবণতার অস্তিত্ব এবং দিক সনাক্ত করতে ব্যবহৃত হয়। যখন ডিএমআই + ডিএমআই - এর উপরে থাকে, তখন একটি আপট্রেন্ড উপস্থিত থাকে। যখন ডিএমআই - ডিএমআই + এর উপরে থাকে, তখন একটি ডাউনট্রেন্ড উপস্থিত থাকে।
চলমান গড়, সাধারণত ১৫ থেকে ৫০ দিনের মধ্যে সেট করা হয়, দামের প্রবণতা দিক নির্ধারণ করতে ব্যবহৃত হয়। যখন দাম চলমান গড়ের উপরে (নীচে) থাকে, তখন একটি আপট্রেন্ড (ডাউনট্রেন্ড) নির্দেশিত হয়।
কৌশলটি প্রথমে ডিএমআই +, ডিএমআই - এবং চলমান গড় গণনা করে। যখন ডিএমআই একটি প্রবণতা অবস্থা দেখায় (ডিএমআই + ডিএমআই- এর উপরে বা বিপরীতভাবে) এবং চলমান গড় দিকটি নিশ্চিত করে, তখন একটি ট্রেডিং সংকেত উত্পন্ন হয়। বিশেষতঃ
যখন ডিএমআই+ ডিএমআই-এর উপরে এবং দাম এমএ-এর উপরে অতিক্রম করে, তখন লম্বা হয়ে যায়।
যখন ডিএমআই- ডিএমআই+ এর উপরে এবং দাম এমএ এর নিচে অতিক্রম করে, তখন শর্ট করুন।
একটি বিপরীত ইনপুট বিকল্প অন্তর্ভুক্ত করা হয়। যখন সক্ষম করা হয়, দীর্ঘ এবং সংক্ষিপ্ত সংকেত বিপরীত হয়।
ডিএমআই এবং চলমান গড়ের মতো একটি প্রবণতা অনুসরণকারী সূচককে একত্রিত করা উভয় শক্তি ব্যবহার করে সংকেতের নির্ভরযোগ্যতা উন্নত করতে পারে।
ডিএমআই এর সুবিধা হ'ল এটি উদীয়মান প্রবণতাগুলির দ্রুত সনাক্তকরণ করে। চলমান গড় শব্দ ফিল্টার করতে এবং প্রবণতার দিকটি নিশ্চিত করতে সহায়তা করে। উভয়ই একসাথে ব্যবহার করা অ-প্রবণতা বাজারে মিথ্যা সংকেত এড়ানোর সময় পূর্ববর্তী প্রবণতা এন্ট্রিগুলিকে অনুমতি দেয়।
বিপরীত বিকল্পটি প্রবণতার সাথে বা এর বিরুদ্ধে বাণিজ্য করার জন্য নমনীয়তা যোগ করে।
এই কৌশলটির প্রধান ঝুঁকিগুলি হলঃ
ট্রেন্ড ট্রানজিশনের সময় ভুল সংকেত আসতে পারে, যার ফলে ক্ষতি হতে পারে। প্যারামিটারগুলি সামঞ্জস্য করা বা স্টপ ব্যবহার করা এই ঝুঁকি নিয়ন্ত্রণ করতে পারে।
প্রবণতা গঠনের জন্য সময় লাগে। এদিকে, দামের ওঠানামা মিথ্যা সংকেত তৈরি করতে পারে। ডিএমআই এবং এমএ সময়কাল বাড়িয়ে এই শব্দটি ফিল্টার করতে পারে।
বিপরীতমুখী ট্রেডিংতে নেতিবাচক গতিতে ক্ষতির ঝুঁকি বেশি থাকে। বিপরীতমুখী বিকল্পের সাথে, ক্ষতির আকার সীমিত করা উচিত এবং লাভ লক করতে ট্রেলিং স্টপ ব্যবহার করা উচিত।
প্যারামিটারগুলিকে বিভিন্ন পণ্য এবং সময়সীমার জন্য পুনরায় অনুকূলিত করা দরকার। প্যারামিটারগুলি সরাসরি অনুলিপি করা ভাল কাজ নাও করতে পারে।
এই কৌশলটির সম্ভাব্য অপ্টিমাইজেশানগুলির মধ্যে রয়েছেঃ
ট্রেন্ড ট্রানজিশনের জন্য সেরা ফিট খুঁজতে বিভিন্ন চলমান গড় সময়ের পরীক্ষা করা।
প্রবণতা মধ্যে সংক্ষিপ্ত বিপরীত ফিল্টার করার জন্য DMI মসৃণতা সময় পরীক্ষা।
রিভার্স অপশনের প্রভাব মূল্যায়ন করা এবং ঐতিহাসিক ব্যাকটেস্টে বেস্ট অ্যাপ্রোচ বেছে নেওয়ার জন্য ডিফল্ট ট্রেন্ড অনুসরণ করা।
হ্রাসের আকার সীমাবদ্ধ করার জন্য ট্রেইলিং স্টপ, টাইম স্টপ, বা ব্রেকআউট স্টপগুলির মতো স্টপ কৌশলগুলি অন্তর্ভুক্ত করা।
বিভিন্ন পণ্য এবং সময়সীমার মধ্যে পরামিতি কর্মক্ষমতা মূল্যায়ন এবং পরামিতি অপ্টিমাইজ করা।
RSI এর মত ফিল্টার যোগ করা হচ্ছে স্থানীয় চরম অবস্থানে মিথ্যা সংকেত এড়ানোর জন্য।
এই কৌশলটি প্রবণতা অনুসরণকারী ডিএমআই এবং চলমান গড় সূচকগুলির শক্তিগুলিকে একত্রিত করে প্রবণ বাজারে হুইপস এড়ানোর সময় প্রবণতাগুলিতে দ্রুত প্রবেশ করতে। বিপরীত বিকল্পটি নমনীয়তাও যুক্ত করে। স্থিতিশীলতার আরও উন্নতি পরামিতি অপ্টিমাইজেশন, স্টপ এবং অতিরিক্ত ফিল্টারগুলির সাথে একত্রিত হতে পারে। তবে, পরামিতিগুলিকে বিভিন্ন পণ্য এবং সময়সীমার মধ্যে প্রয়োগযোগ্যতার জন্য পুনরায় পরীক্ষা করা দরকার।
/*backtest start: 2023-08-28 00:00:00 end: 2023-09-27 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 03/03/2017 // The related article is copyrighted material from Stocks & Commodities Aug 2009 // // You can change long to short in the Input Settings // Please, use it only for learning or paper trading. Do not for real trading. //////////////////////////////////////////////////////////// strategy(title="Combining DMI And Moving Average For A EUR/USD Trading System") Length_MA = input(30, minval=1) Length_DMI = input(14, minval=1) reverse = input(false, title="Trade reverse") xMA = sma(close, Length_MA) up = change(high) down = -change(low) trur = rma(tr, Length_DMI) xPDI = fixnan(100 * rma(up > down and up > 0 ? up : 0, Length_DMI) / trur) xNDI = fixnan(100 * rma(down > up and down > 0 ? down : 0, Length_DMI) / trur) nPDI = xPDI nNDI = xNDI nMA = xMA nPDI_1 = xPDI[1] nNDI_1 = xNDI[1] nMA_1 = xMA[1] bMDILong =iff(nPDI > nNDI and nPDI_1 < nNDI_1, true, iff(nPDI < nNDI and nPDI_1 > nNDI_1, false, false)) bMDIShort = iff(nPDI > nNDI and nPDI_1 < nNDI_1, false, iff(nPDI < nNDI and nPDI_1 > nNDI_1, true, false)) bMALong = iff(close > nMA and close[1] < nMA_1, true, iff(close < nMA and close[1] > nMA_1, false, false)) bMAShort = iff(close > nMA and close[1] < nMA_1, false, iff(close < nMA and close[1] > nMA_1, true, false)) pos = iff(bMDILong and bMALong, 1, iff(bMDIShort and bMAShort, -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1 ) strategy.entry("Long", strategy.long) if (possig == -1 ) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(nPDI, color=green, title="DMI Plus") plot(nNDI, color=red, title="DMI Minus")