
এই কৌশলটি বাজারের দিকনির্দেশ এবং প্রবণতা নির্ধারণের জন্য চলমান সূচক গড় ((ADX) সূচক এবং উপরের দিকে চলাচলকারী সূচক ((DI +) ব্যবহার করে, এবং ট্রেডিং দিকনির্দেশ এবং হোল্ডিং সময় নির্ধারণের জন্য দ্রুত এবং ধীর গতির চলমান গড় ব্যবহার করে। এই কৌশলটি ট্রেন্ড ট্র্যাকিং ট্রেডিং কৌশলের অন্তর্গত। এই কৌশলটি কার্যকরভাবে সংক্ষিপ্ত মাঝারি লাইনের বিপরীত দিকটি ক্যাপচার করতে পারে, যা কম ওঠানামা এবং স্পষ্ট প্রবণতাযুক্ত বাজারে ভাল কাজ করে।
এই কৌশলটির কেন্দ্রীয় যুক্তি হল যে + ডিআই লাইনটি যখন এডিএক্সকে নীচের দিক থেকে ভেঙে দেয় তখন একটি ক্রয় সংকেত তৈরি করে এবং যখন + ডিআই লাইনটি এডিএক্সকে নীচের দিক থেকে ভেঙে দেয় তখন একটি বিক্রয় সংকেত তৈরি করে। অতএব, কৌশলটি বাজারের প্রবণতা এবং বিপরীত দিকটি বিচার করার জন্য ডিআই এবং এডিএক্স সূচকগুলির মধ্যে ক্রসগুলির উপর নির্ভর করে। একই সময়ে, দ্রুত এবং সমান্তরাল লাইনের সম্পর্কটি সামগ্রিক বাজারের প্রবণতা নির্ধারণের জন্য ব্যবহৃত হয়, কেবলমাত্র যখন দ্রুত ইএমএ ধীর ইএমএর চেয়ে বেশি হয় তখনই একটি লেনদেনের সংকেত তৈরি করা বিবেচনা করা হয়।
বিশেষ করে, নিম্নলিখিত শর্তগুলি পূরণ হলে একটি ক্রয় সংকেত দেওয়া হয়ঃ ১, দ্রুত ইএমএ ধীর ইএমএর চেয়ে বেশি ২, + ডিআই লাইনটি নীচের দিক থেকে এডিএক্স লাইনটি ভেঙে দেয় ৩. ADX ৩০ এর নিচে থ্রেশহোল্ড
নিম্নলিখিত শর্তগুলি পূরণ হলে বিক্রির সংকেত দেওয়া হয়ঃ ১। ADX ৩০ এর উপরে ২, + ডিআই লাইনটি উপরের দিক থেকে নীচে এডিএক্স লাইনের নীচে পড়ে
এই কৌশলটি স্টপ লজিক যুক্ত করে, যখন দাম স্টপ লস থেকে কম হয় তখন সমস্ত অবস্থান থেকে বেরিয়ে আসে।
এই কৌশলটি ডিআই, এডিএক্স এবং গড়রেখার সূচকগুলির সাথে মিলিত হয়, যা বাজারের প্রবণতা পাল্টাতে কার্যকরভাবে সহায়তা করে। এর নিম্নলিখিত সুবিধাগুলি রয়েছেঃ
এই কৌশলটির কিছু ঝুঁকি রয়েছে যা সম্পর্কে সতর্ক থাকা দরকারঃ
এই ঝুঁকির জন্য, ADX এবং গড় প্যারামিটার অপ্টিমাইজেশান, স্টপ লস লেভেলের সমন্বয়, অন্যান্য সূচকগুলির সাথে সংযুক্ত সংকেত নিশ্চিতকরণ ইত্যাদির মাধ্যমে উন্নতি করা যেতে পারে।
এই কৌশলটি আরও উন্নত করার সুযোগ রয়েছেঃ
ADX ক্রস ট্রেন্ডিং কৌশলটি সামগ্রিকভাবে স্থিতিশীল, ওঠানামা শুরুর আগে কার্যকরভাবে বিপরীত স্থানটি ক্যাপচার করতে সক্ষম, তবে ঝুঁকি নিয়ন্ত্রণে মনোযোগ দিতে হবে। প্যারামিটার সেটিং, কঠোর প্রবেশ এবং স্টপ লস নিয়ম ইত্যাদির মাধ্যমে আরও ভাল ঝুঁকি-সংশোধিত রিটার্ন পাওয়া যায়। এই কৌশলটি দীর্ঘ লাইন ধরে থাকা সংক্ষিপ্ত লাইন ট্রেডিং অ্যাকাউন্টের জন্য উপযুক্ত।
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
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/
// © mohanee
//@version=4
//ADX strategy
SmoothedTrueRange=0.00
SmoothedDirectionalMovementPlus=0.00
SmoothedDirectionalMovementMinus=0.00
strategy(title="ADX strategy", overlay=false,pyramiding=3, default_qty_type=strategy.fixed, default_qty_value=3, initial_capital=10000, currency=currency.USD)
len = input(11, title="ADX Length", minval=1)
threshold = input(30, title="threshold", minval=5)
fastEma=input(13, title="Fast EMA",minval=1, maxval=50)
slowEma=input(55, title="Slow EMA",minval=10, maxval=200)
stopLoss =input(8, title="Stop Loss",minval=1) //
TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0
SmoothedTrueRange:= nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/len) + TrueRange
SmoothedDirectionalMovementPlus := nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/len) + DirectionalMovementPlus
SmoothedDirectionalMovementMinus:= nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/len) + DirectionalMovementMinus
DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DX = abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100
ADX = sma(DX, len)
plot(DIPlus, color=color.green, title="DI+")
//plot(DIMinus, color=color.red, title="DI-")
plot(ADX, color=color.black, title="ADX")
hline(threshold, color=color.black, linestyle=hline.style_dashed)
fastEmaVal=ema(close,fastEma)
slowEmaVal=ema(close,slowEma)
//long condition
longCondition= ADX < threshold and crossover(DIPlus,ADX) and fastEmaVal > slowEmaVal
barcolor(longCondition ? color.yellow: na)
strategy.entry(id="ADXLE", long=true, when= longCondition and strategy.position_size<1)
barcolor(strategy.position_size>1 ? color.blue: na)
bgcolor(strategy.position_size>1 ? color.blue: na)
//Add
strategy.entry(id="ADXLE", comment="Add", long=true, when= strategy.position_size>1 and close<strategy.position_avg_price and crossover(DIPlus,ADX) )
//calculate stop Loss
stopLossVal = strategy.position_avg_price - (strategy.position_avg_price*stopLoss*0.01)
strategy.close(id="ADXLE",comment="SL Exit", when=close<stopLossVal) //close all on stop loss
//exit condition
exitCondition= ADX > threshold and crossunder(DIPlus,ADX) // and fastEmaVal > slowEmaVal
strategy.close(id="ADXLE",comment="TPExitAll", qty=strategy.position_size , when= exitCondition) //close all