এই কৌশলটি ADX সূচকটির গতিশীল পরিবর্তনগুলিকে সময়মত প্রবণতা অনুসরণ করার জন্য বাজারের প্রবণতার প্রাথমিক পরিবর্তনগুলি ক্যাপচার করার জন্য ট্র্যাক করে। যখন ADX নিম্ন স্তর থেকে দ্রুত বৃদ্ধি পায়, এটি একটি প্রবণতা গঠনের সংকেত দেয় যা প্রবেশের জন্য একটি দুর্দান্ত সুযোগ উপস্থাপন করে। চলমান গড়ের সহায়তায়, এটি কার্যকরভাবে মিথ্যা সংকেতগুলি ফিল্টার করতে পারে।
এই কৌশলটির মূল বিষয় হল ADX সূচকের গতিশীল পরিবর্তনের উপর ভিত্তি করে প্রবণতা বিকাশের বিচার করা। কম ADX প্রবণতার ছোটখাট ওঠানামা বোঝায়। যখন ADX নিম্ন স্তর থেকে দ্রুত বৃদ্ধি পায়, তখন এটি একটি প্রবণতা গঠনের সংকেত দেয়। কৌশলটি ADX এর তীব্র বৃদ্ধি পর্যবেক্ষণ করে প্রবণতা উত্থানকে ক্যাপচার করে।
বিশেষ করে, এন্ট্রি সিগন্যাল নিম্নলিখিত কারণগুলির সমন্বয়ে গঠিতঃ
যখন উপরের সমস্ত শর্ত পূরণ করা হয়, তখন এটি দীর্ঘ সময়ের জন্য একটি আপট্রেন্ড গঠনের সংকেত দেয়। যখন দাম চলমান গড়ের নীচে পড়ে, অবস্থান বন্ধ করুন। দুটি চলমান গড় প্রবণতা আরও সঠিকভাবে বিচার করতে ব্যবহৃত হয়।
স্টপ লস লজিক একই রকম। যখন এডিএক্স দ্রুত কমে যায় তখন শর্ট করুন এবং যখন মূল্য চলমান গড়ের উপরে উঠে যায় তখন অবস্থান বন্ধ করুন।
এখানে সবচেয়ে বড় সুবিধা হল উদীয়মান প্রবণতা সময়মত ধরা। পরম এডিএক্স মানগুলি দেখার প্রচলিত পদ্ধতিতে প্রায়শই একটি প্রবণতা কল করার জন্য 20 বা 25 এর উপরে নিশ্চিতকরণের প্রয়োজন হয়, এইভাবে সর্বোত্তম প্রবেশের সময়টি মিস করে। এই কৌশলটি এডিএক্সের দ্রুত উত্থান ট্র্যাক করে প্রবণতার প্রাথমিক বিকাশকে ধরে রাখে।
উপরন্তু, চলমান গড়গুলি কার্যকরভাবে মিথ্যা সংকেতগুলি ফিল্টার করতে সহায়তা করে, কৌশলটির স্থিতিশীলতা বাড়ায়।
সবচেয়ে বড় ঝুঁকি আসে ADX এর পিছনে থাকা প্রকৃতি থেকে। পিছনে হ্রাস করার জন্য দ্রুত উত্থান ধরার সত্ত্বেও, এখনও কিছু বিলম্ব রয়েছে। এটি কিছু দ্রুত বিপরীত বাজারে হারাতে পারে।
এছাড়াও, এডিএক্স প্রবণতা পুরোপুরি বিচার করে না এবং অনিবার্যভাবে সময়ে সময়ে তাদের ভুল নির্ণয় করে। চলমান গড়গুলি কিছু শব্দ ফিল্টার করে তবে আরও অপ্টিমাইজেশনের প্রয়োজন।
এই কৌশলটি অপ্টিমাইজ করার জন্য এখনও প্রচুর জায়গা রয়েছে, মূলত প্রবণতা ক্যাপচার করার ক্ষেত্রে ADX এর নির্ভুলতা বাড়ানো। মেশিন লার্নিংয়ের মতো পদ্ধতিগুলি অন্বেষণ করা যেতে পারে, ADX পরিবর্তনের উপর ভিত্তি করে সম্ভাব্যতা বিতরণ পূর্বাভাস দেওয়ার জন্য প্রশিক্ষণ মডেলগুলি। প্যারামিটার টিউনিং, অতিরিক্ত সূচক ইত্যাদির মতো অন্যান্য দিকগুলিও পরীক্ষা করা যেতে পারে।
এই গতিশীল উত্থিত এডিএক্স ট্রেন্ড অনুসরণকারী কৌশলটি তীব্র এডিএক্স উত্থানগুলি সনাক্ত করে দ্রুত ট্রেন্ড শিফটগুলি ক্যাপচার করে, এইভাবে সময়মতো প্রবণতা অনুসরণ করে। সবচেয়ে বড় সুবিধা হ'ল এটি সময়মত তত্পরতা, কার্যকরভাবে প্রারম্ভিক প্রবণতা বিকাশকে দখল করে। এদিকে, ভুল মূল্যায়নের কিছু ঝুঁকি রয়েছে যা ক্রমাগত অপ্টিমাইজেশন এবং পরীক্ষার প্রয়োজন।
/*backtest start: 2023-12-03 00:00:00 end: 2023-12-10 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © dhilipthegreat //@version=4 //Rising ADX strategy strategy(title="Rising ADX strategy", overlay=false) adxlen = input(14, title="ADX Length", minval=1) threshold = input(10, title="threshold", minval=5) hline(threshold, color=color.black, linestyle=hline.style_dashed) atype = input(2,minval=1,maxval=7,title="1=SMA, 2=EMA, 3=WMA, 4=HullMA") malen=input(20, title="Moving average 1 ",minval=1, maxval=50) avg = atype == 1 ? sma(close,malen) : atype == 2 ? ema(close,malen) : atype == 3 ? wma(close,malen) : atype == 4 ? hma(close,malen) : na atype2 = input(2,minval=1,maxval=7,title="1=SMA, 2=EMA, 3=WMA, 4=HullMA") malen2=input(20, title="Moving average 2",minval=1, maxval=200) avg2 = atype2 == 1 ? sma(close,malen2) : atype2 == 2 ? ema(close,malen2) : atype2 == 3 ? wma(close,malen2) : atype2 == 4 ? hma(close,malen2) : na //ADX&DI dilen = 14 dirmov(len,_high,_low,_tr) => up = change(_high) down = -change(_low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) truerange = rma(_tr, len) plus = fixnan(100 * rma(plusDM, len) / truerange) minus = fixnan(100 * rma(minusDM, len) / truerange) [plus, minus] adx(dilen, adxlen,_high,_low,_tr) => [plus, minus] = dirmov(dilen,_high,_low,_tr) sum = plus + minus adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) [plus, minus] = dirmov(dilen,high,low,tr) sig = adx(dilen, adxlen,high,low,tr) prev_sig = adx(dilen, adxlen,high[1],low[1],tr) plot(sig ? sig : na, color = rising(sig, 1) ? color.lime : falling(sig, 1) ? color.orange : color.purple, title="ADX",linewidth=2) ////// longCondition= sig > threshold and rising(sig, 1) and falling(prev_sig, 1) and close > avg and close > avg2 barcolor(longCondition ? color.yellow: na) Long_side = input(true, "Long side") if Long_side strategy.entry(id="Long", long=true, when= longCondition and strategy.position_size<1) exitCondition= (rising(prev_sig, 1) and falling(sig, 1)) or close < avg and close < avg2 strategy.close(id="Long",comment="L exit", qty=strategy.position_size , when= exitCondition) //close all shortCondition= sig > threshold and rising(sig, 1) and falling(prev_sig, 1) and close < avg and close < avg2 barcolor(shortCondition ? color.gray: na) Short_side = input(true, "Short side") if Short_side strategy.entry(id="Short", long=false, when= shortCondition and strategy.position_size<1) sell_exitCondition= (rising(prev_sig, 1) and falling(sig, 1)) or close > avg and close > avg2 strategy.close(id="Short",comment="S exit", qty=strategy.position_size , when= sell_exitCondition) //close all barcolor(strategy.position_size>1 ? color.lime: na) bgcolor(strategy.position_size>1 ? color.lime: na) barcolor(strategy.position_size<0 ? color.orange: na) bgcolor(strategy.position_size<0 ? color.orange: na)