
এই কৌশলটি চ্যান্ডে ক্রল স্টপস এবং গড় প্রবণতা সূচক (এডিএক্স) সূচককে একত্রিত করে, একটি অপেক্ষাকৃত সহজ প্রবণতা ট্র্যাকিং কৌশল অর্জন করে। চ্যান্ডে ক্রল স্টপস দীর্ঘ এবং স্বল্প অবস্থানের প্রবেশের সংকেত তৈরি করতে ব্যবহৃত হয়, এডিএক্স মার্কেট পরিস্থিতিগুলিকে ফিল্টার করতে ব্যবহৃত হয় যেখানে কোনও স্পষ্ট প্রবণতা নেই, যাতে অনির্দেশিত বাজারের ঝড়ের ফলে স্টপস পুনরাবৃত্তি হয়।
এই কৌশলটি প্রথমে দীর্ঘ লাইন stop_long এবং সংক্ষিপ্ত লাইন stop_short গণনা করে। দীর্ঘ লাইনটি গত p সময়কালের সর্বোচ্চ মূল্য দ্বারা গণনা করা হয় এবং সংক্ষিপ্ত লাইনটি গত p সময়কালের সর্বনিম্ন মূল্য দ্বারা গণনা করা হয়। তারপরে দীর্ঘ এবং সংক্ষিপ্ত লাইনের সর্বোচ্চ এবং সর্বনিম্ন পয়েন্টগুলিকে বর্তমান দীর্ঘ এবং সংক্ষিপ্ত স্টপ লাইন হিসাবে ব্যবহার করে। এটি স্বল্পমেয়াদী দামের ঝাঁকুনির প্রভাবকে সরিয়ে দেয় এবং কেবলমাত্র প্রবণতা পাল্টানোর সময় স্টপ ক্ষতির কারণ হয়।
যখন বন্ধের দামের উপরে একটি সংক্ষিপ্ত লাইন stop_short অতিক্রম করে, তখন একটি মাল্টি-সিগন্যাল উৎপন্ন হয়; যখন বন্ধের দামের নীচে একটি দীর্ঘ লাইন stop_long অতিক্রম করে, তখন একটি ফাঁকা-সিগন্যাল উৎপন্ন হয়।
উপরন্তু, কৌশলটি ADX সূচককে একটি প্রবণতাকে শক্তিশালী বা দুর্বল বলে বিবেচনা করে। স্টপ সিগন্যালটি কেবলমাত্র যখন ADX এর চেয়ে বড় হয় তখনই এটি শুরু হয়। এটি সংশোধন করা ঝাঁকুনির সময় স্টপ ক্ষতির ভুল রিপোর্টগুলি ফিল্টার করতে পারে।
এই কৌশলটি প্রবণতা সূচক এবং স্টপ-অফ সূচকগুলির সুবিধাগুলি একত্রিত করে, যা সময়মতো প্রবণতা ঘুরিয়ে দেয় এবং দিকনির্দেশহীন বাজারের হুইপ সের এড়াতে পারে। চ্যান্ডে ক্রোলের স্টপ-অফের প্যারামিটার অপ্টিমাইজেশনটি ঝাঁকুনিগুলিকে মসৃণ করে তোলে, যা নিশ্চিত করে যে কেবলমাত্র প্রবণতা ঘুরিয়ে দেওয়ার সময় স্টপ-অফ হয়। এডিএক্স সূচকটি নিশ্চিত করে যে কেবলমাত্র যখন প্রবণতা স্পষ্ট হয় তখনই বাজারে প্রবেশ করা যায়, যা ঝাঁকুনির বাজার স্টপ-অফকে এড়াতে পারে।
ADX প্যারামিটারটি ভুলভাবে সেট করা থাকলে ট্রেন্ড শুরু হওয়ার সুযোগটি মিস করা যেতে পারে। ADX থ্রেশহোল্ডটি যদি খুব বেশি সেট করা হয় তবে ট্রেন্ডের শুরুতে ADX মান খুব কম হওয়ার কারণে প্রবেশের সুযোগটি মিস করা যেতে পারে।
স্টপ লস পয়েন্টের কাছাকাছি হওয়াও কৌশলগত অবস্থানের ঘন ঘন খোলা এবং বন্ধ হতে পারে। এটি লেনদেনের ব্যয় এবং স্লাইড পয়েন্টের ব্যয় বাড়িয়ে তুলতে পারে। স্টপ লস পয়েন্টগুলি যুক্তিসঙ্গতভাবে সেট করা প্রয়োজন, যা প্রবণতার একটি নির্দিষ্ট দৃষ্টিভঙ্গি দেয়।
এডিএক্স যখন একটি নির্দিষ্ট থ্রেশহোল্ড অতিক্রম করে তখন স্টপ সিগন্যাল ট্রিগার করার অনুমতি দেওয়া বিবেচনা করা যেতে পারে, যা প্রবেশের সময়টির নির্ভরযোগ্যতা বাড়িয়ে তুলতে পারে। এটি অন্যান্য প্রবণতা সূচকগুলির সাথে সংমিশ্রণ করার জন্যও বিবেচনা করা যেতে পারে, যেমন এডিএক্স মান এবং ইএমএ প্রান্তিকের সাথে সংমিশ্রণ করা।
স্টপ লাইনটি এটিআর-এর গতিশীলতা অনুসারে সামঞ্জস্য করার জন্য বিবেচনা করা যেতে পারে, বাজার ওঠানামা বাড়লে স্টপ স্পেস প্রসারিত করা যায়, অত্যধিক সংবেদনশীলতা এড়ানো যায়। অথবা এটি ম্যাকডের মতো সহায়ক সূচকগুলির সাথে মিলিত হতে পারে যা প্রবণতা শক্তিশালী বা দুর্বল মূল্যায়ন করে, গতিশীলভাবে স্টপ লাইনটি সামঞ্জস্য করে।
এই কৌশলটি চ্যান্ডে ক্রোল স্টপ এবং এডিএক্স সূচকের সুবিধাগুলিকে একত্রিত করে, একটি অপেক্ষাকৃত সহজ এবং ব্যবহারিক প্রবণতা ট্র্যাকিং কৌশল অর্জন করে। প্যারামিটার অপ্টিমাইজেশনের মাধ্যমে কৌশলটির স্থায়িত্ব এবং লাভজনকতা আরও বাড়ানো যেতে পারে। তবে সতর্কতা অবলম্বন করা উচিত যাতে স্টপগুলি অত্যধিক সংবেদনশীল এবং এডিএক্স ফিল্টারগুলি অত্যধিক শিথিল হওয়ার ঝুঁকিগুলি এড়ানো যায়।
/*backtest
start: 2022-10-30 00:00:00
end: 2023-06-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title = "Chande Kroll Stop", overlay=true)
p = input.int(10, minval=1)
x = input.int(1, minval=1)
q = input.int(9, minval=1)
first_high_stop = ta.highest(high, p) - x * ta.atr(p)
first_low_stop = ta.lowest(low, p) + x * ta.atr(p)
stop_short = ta.highest(first_high_stop, q)
stop_long = ta.lowest(first_low_stop, q)
plot(stop_long, color=color.blue)
plot(stop_short, color=color.orange)
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
ADX_sig = input.int(20, title="minimum ADX threshold for signal")
dirmov(len) =>
up = ta.change(high)
down = -ta.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 = ta.rma(ta.tr, len)
plus = fixnan(100 * ta.rma(plusDM, len) / truerange)
minus = fixnan(100 * ta.rma(minusDM, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
if ta.crossunder(close, stop_long) and sig>ADX_sig
strategy.entry("long", strategy.long)
if ta.crossover(close, stop_short) and sig>ADX_sig
strategy.entry("short", strategy.short)