এই কৌশলটি ট্রেন্ডিং ইন্ডিকেটর ডিএমআই এবং মুভিং এভারেজের সংমিশ্রণ দ্বারা ট্রেন্ডিং দিকটি সনাক্ত করে এবং ক্রয় এবং বিক্রয় সংকেত প্রেরণ করে। যখন ডিএমআই দেখায় যে বিডগুলি ট্রেন্ডিং অবস্থায় প্রবেশ করেছে এবং মুভিং এভারেজ ট্রেন্ডিং দিকটি নিশ্চিত করে তখন কৌশলটি একটি ট্রেডিং সংকেত তৈরি করে।
এই কৌশলটি মূলত দুটি সূচকের উপর ভিত্তি করে তৈরি করা হয়েছেঃ
ডিএমআই এর মধ্যে ডিএমআই+ এবং ডিএমআই- রয়েছে, যা ট্রেন্ডের উপস্থিতি এবং দিকনির্দেশনা সনাক্ত করতে ব্যবহৃত হয়। যখন ডিএমআই+ ডিএমআই-এর চেয়ে বেশি হয়, তখন এটি একটি উত্থান প্রবণতা নির্দেশ করে; যখন ডিএমআই-ডিএমআই+ এর চেয়ে বেশি হয়, তখন এটি একটি পতন প্রবণতা নির্দেশ করে।
মুভিং এভারেজ, সাধারণত ১৫ থেকে ৫০ দিনের গড় বেছে নেওয়া হয় দামের প্রবণতার দিকনির্দেশের জন্য। যখন দামগুলি মুভিং এভারেজের চেয়ে বেশি (বা কম) হয়, তখন এটি একটি উত্থান (বা পতন) প্রবণতা দেখায়।
কৌশলটি প্রথমে ডিএমআই +, ডিএমআই - এবং চলমান গড় গণনা করে। ট্রেডিং সিগন্যাল তৈরি করা হয় যদি চলমান গড়টি ট্রেন্ডের দিকনির্দেশনা নিশ্চিত করে এবং একই সাথে ডিএমআই ট্রেন্ডের অবস্থা দেখায় ((ডিএমআই + ডিএমআই - বা ডিএমআই - ডিএমআই + এর চেয়ে বেশি)) ।
এই কৌশলটি একই সাথে একটি বিপরীত ইনপুট বিকল্প যুক্ত করেছে। বিপরীত সক্রিয় করার পরে, অতিরিক্ত এবং খালি সংকেতগুলি বিপরীত হবে।
ট্রেন্ডিং ইন্ডিকেটর এবং ট্রেন্ডিং ইন্ডিকেটরের সমন্বয়ে এই কৌশলটি সিগন্যালের নির্ভরযোগ্যতা বাড়িয়ে তুলতে পারে, উভয় সূচকের সুবিধাগুলি ব্যবহার করে একে অপরের পরিপূরক।
ডিএমআই এর সুবিধা হল যে এটি দ্রুত ট্রেন্ড সনাক্ত করতে পারে। এবং চলমান গড়টি কিছু শব্দকে ফিল্টার করে ট্রেন্ডের দিকনির্দেশ নিশ্চিত করতে পারে। উভয়ই ব্যবহার করা হয়, যা ট্রেন্ড তৈরির সময় প্রথম দিকে প্রবেশ করতে পারে এবং যখন প্রবণতা না থাকে তখন তরঙ্গ অনুসরণ করা এড়াতে পারে।
এছাড়াও, এই কৌশলটি বিপরীত বিকল্পের সাথে যুক্ত করা হয়েছে, যা প্রকৃত প্রয়োজনের উপর ভিত্তি করে বোল্ড বা বিপরীত ট্রেডিং নির্বাচন করতে পারে। এটি কৌশলটির নমনীয়তা বাড়ায়।
এই কৌশলটি নিম্নলিখিত ঝুঁকির সাথে জড়িতঃ
প্রবণতা পরিবর্তনের সময়, ভুল সংকেত দেখা দিতে পারে, যার ফলে ক্ষতি হতে পারে। এটি প্যারামিটারগুলি সামঞ্জস্য করতে বা ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস সেট করতে হবে।
প্রবণতা গঠনের জন্য নির্দিষ্ট সময় প্রয়োজন, এবং এই সময়ের মধ্যে কৌশলগুলি মূল্যের ঝাঁকুনির দ্বারা প্রভাবিত হতে পারে, যা ভুল সংকেত তৈরি করে। এই শব্দটি ফিল্টার করার জন্য ডিএমআই এবং চলমান গড়ের প্যারামিটার সময়কাল যথাযথভাবে সামঞ্জস্য করা যেতে পারে।
বিপরীতমুখী ট্রেডিং বিপরীতমুখী ক্ষতির বিস্তারের ঝুঁকির সম্মুখীন। বিপরীতমুখী চালু করার সময়, একক ক্ষতির অনুপাত নিয়ন্ত্রণ করা বা মুনাফার কিছু অংশ লক করার জন্য মুভিং স্টপ ব্যবহার করা প্রয়োজন।
বিভিন্ন জাত এবং বিভিন্ন সময়কালের জন্য, প্যারামিটারগুলিকে পুনরায় অনুকূলিতকরণের প্রয়োজন। প্যারামিটারগুলি সরাসরি প্রতিলিপি করা অন্য জাত বা সময়কালের জন্য কার্যকর হতে পারে না।
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে উন্নত করা যেতে পারেঃ
বিভিন্ন চলমান গড়ের সময়কালের পরামিতিগুলি পরীক্ষা করুন এবং জোড়ার প্রবণতা রূপান্তর করার জন্য সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে বের করুন।
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")