এই কৌশলটি একটি অভিযোজিত প্রবণতা ট্র্যাকিং স্টপ লস কৌশল বাস্তবায়নের জন্য ATR সূচক এবং বিভিন্ন ধরণের চলমান গড়ের সাথে মিলিত উইল্ডার অস্থিরতা ট্রেলিং স্টপ পদ্ধতি ব্যবহার করে।
এই কৌশলটির মূলটি হ'ল ওয়াইল্ডার অস্থিরতা ট্রেলিং স্টপ অ্যালগরিদম। এটি প্রথমে এটিআর সূচক গণনা করে এবং ইনপুট এটিআর দৈর্ঘ্য এবং গুণক অনুসারে গতিশীলভাবে স্টপ লস লাইন প্লট করে। এটি বন্ধ, উচ্চ এবং নিম্ন দামের মধ্যে নির্বাচিত মূল্য বিকল্পের উপর ভিত্তি করে স্টপ লস লাইনের সর্বোচ্চ উচ্চ এবং সর্বনিম্ন নিম্ন ট্র্যাক করে। যখন দাম স্টপ লস লাইনটি ভঙ্গ করে তখন এটি ট্রেডিং সংকেত প্রেরণ করে।
কোডটিতে, f_ma ফাংশনটি RMA, EMA, SMA এবং Hull MA সহ বিভিন্ন চলমান গড় বাস্তবায়ন করে। এটিআর সূচকটি ভোল্টেবিলিটি ভিত্তিক ট্রেইলিং স্টপ লাইন তৈরি করতে ব্যবহারকারীর সংজ্ঞায়িত গুণক দ্বারা গণনা এবং গুণিত হয়। এই লাইনের সর্বোচ্চ এবং সর্বনিম্ন স্তরগুলি সর্বোচ্চ এবং সর্বনিম্ন ফাংশন ব্যবহার করে ট্র্যাক করা হয়। যখন মূল্য এই ট্রেইলিং স্টপ লাইনে প্রবেশ করে তখন ট্রেডগুলি নেওয়া হয়।
এটিআর সূচক, বিভিন্ন চলমান গড় এবং সামঞ্জস্যযোগ্য পরামিতিগুলি নমনীয়ভাবে ব্যবহার করে, এই কৌশলটি একটি অত্যন্ত অভিযোজিত প্রবণতা ট্র্যাকিং স্টপ লস সিস্টেম উপলব্ধি করে। এটি কার্যকরভাবে প্রবণতা ট্র্যাক করতে পারে এবং বাজারে বড় pullbacks ঘটে যখন ক্ষতি বন্ধ করতে পারে।
এই কৌশলটি ওয়াইল্ডার ভোলাটিলিটি ট্রেলিং স্টপ অ্যালগরিদম ব্যবহার করে, যা একটি পরিপক্ক এবং নির্ভরযোগ্য ট্রেন্ড ট্র্যাকিং স্টপ লস পদ্ধতি।
কৌশলটি স্টপ লস লাইনটি গতিশীলভাবে গণনা করতে ATR সূচক ব্যবহার করে, স্টপ লস পয়েন্টগুলি এড়ানো। ATR কার্যকরভাবে বাজারের অস্থিরতা এবং ঝুঁকি স্তরগুলি প্রতিফলিত করতে পারে।
RMA, EMA, SMA এবং Hull MA সহ বিভিন্ন চলমান গড়ের বাস্তবায়ন কৌশলটির অভিযোজনযোগ্যতা বাড়ায়।
এটিআর দৈর্ঘ্য, গুণক পরামিতিগুলিকে সামঞ্জস্য করে, বিভিন্ন বাজারের জন্য অনুকূলিত পরামিতিগুলি পাওয়া যায়, কৌশল কার্যকারিতা উন্নত করে।
উচ্চ, নিম্ন, বন্ধ দামের মতো বিভিন্ন মূল্য বিকল্পের ব্যবহার বিভিন্ন পণ্য জুড়ে অপ্টিমাইজেশানকে অনুমতি দেয়।
সংক্ষেপে, এটি একটি নির্ভরযোগ্য, অভিযোজিত এবং সহজেই অনুকূলিত ট্রেন্ড ট্র্যাকিং স্টপ লস কৌশল।
কৌশলটি পরামিতি অপ্টিমাইজেশনের উপর নির্ভর করে। বিভিন্ন বাজার এবং পণ্যগুলির জন্য পরীক্ষার মাধ্যমে উপযুক্ত এটিআর এবং গুণক পরামিতিগুলি খুঁজে পাওয়া দরকার, অন্যথায় স্টপ লস প্রভাব আদর্শ নাও হতে পারে।
রেঞ্জিং মার্কেটে, এটিআর স্টপ লস লাইন ঘন ঘন অযৌক্তিক স্টপ আউটকে ট্রিগার করতে পারে। এটিকে অনুকূল করার জন্য ট্রেন্ড ফিল্টারিং সূচকগুলি চালু করা দরকার।
যদি স্টপ লস লাইনটি খুব প্রশস্ত হয় তবে ক্ষতির সুযোগগুলি মিস করা হবে। যদি খুব সংকীর্ণ হয় তবে ব্যবসায়ের ফ্রিকোয়েন্সি এবং স্লিপিংয়ের ব্যয় বাড়বে। সাবধানে পরীক্ষার মাধ্যমে একটি ভারসাম্যপূর্ণ পয়েন্ট খুঁজে পাওয়া দরকার।
অনেকগুলি চলমান গড় বিকল্প কর্মক্ষমতা বিচ্যুতির দিকে পরিচালিত করতে পারে। প্রতিটি পণ্যের জন্য একটি প্রধান চলমান গড় নির্বাচন করা উচিত, অন্যগুলি শুধুমাত্র রেফারেন্সের জন্য ব্যবহৃত হয়।
এই কৌশলটি প্রবণতা ট্র্যাকিংয়ের উপর দৃষ্টি নিবদ্ধ করে এবং সরাসরি মুনাফা লক্ষ্য করে না। এটি অন্যান্য প্রবেশ / প্রস্থান কৌশল বা মুনাফা গ্রহণের কৌশলগুলির সাথে একত্রিত করা দরকার।
অনুপযুক্ত পরামিতিগুলির সাথে, কৌশলটি অত্যধিক ট্রেডিং বা অত্যধিক আকারের হোল্ডিং সময় প্রদর্শন করতে পারে। এটি অপ্টিমাইজেশনের মাধ্যমে মোকাবেলা করা দরকার।
ট্রেন্ড সনাক্তকরণ সূচক চালু করা যেতে পারে যাতে বাজারের বিভিন্ন অংশে হুইপস এড়ানো যায়।
বিপরীতমুখী প্রবণতা এবং বিপরীতমুখী প্রবণতা পরিবর্তনের সময় দ্রুত স্টপ আউট এবং বিপরীতমুখী করার জন্য বিপরীতমুখী সূচকগুলি পরীক্ষা করা যেতে পারে।
ATR সময়ের প্যারামিটারটি পণ্যের বৈশিষ্ট্যগুলির সাথে সম্পর্কিত হতে পারে, যাতে বিভিন্ন পণ্য বিভিন্ন ATR সময়কাল ব্যবহার করে।
যখন ভলিউম উল্লেখযোগ্যভাবে হ্রাস পায় তখন স্টপ লস লাইনটি দ্রুততর করার জন্য ভলিউম সূচকগুলি ব্যবহার করা যেতে পারে।
স্টপ লস শতাংশ বাড়ানো যেতে পারে, কিন্তু স্বাভাবিক রিট্র্যাকশনে স্টপ আউট এড়ানোর জন্য খুব কম নয়।
অন্যান্য সূচকগুলি গতিবেগ পরিমাপ করতে এবং গতিবেগ দুর্বল হলে স্টপগুলি শিথিল করতে প্যারামিটারগুলি অনুকূল করতে ব্যবহার করা যেতে পারে।
ওয়াইল্ডার ভোলটাইলিটি ট্রেলিং স্টপ ধারণার উপর ভিত্তি করে, এই কৌশলটি একটি অত্যন্ত অভিযোজিত ট্রেন্ড ট্র্যাকিং স্টপ লস সিস্টেম ডিজাইন করতে এটিআর সূচক ব্যবহার করে। প্যারামিটার অপ্টিমাইজেশনের মাধ্যমে এটি বিভিন্ন ট্রেডিং পণ্যগুলিতে ফিট করা যেতে পারে এবং এটি একটি নির্ভরযোগ্য এবং ব্যবহারিক স্টপ লস পদ্ধতি। তবে এটি আরও শক্তিশালী করার জন্য ট্রেন্ড ফিল্টার এবং ভলিউম উপাদানগুলির মতো আরও উন্নতি করে ঝুঁকিগুলি পরিচালনা করা দরকার। স্টপ লস কৌশলগুলির উপযোগিতা সর্বাধিক করার জন্য এটি অন্যান্য কৌশলগুলির সাথে একত্রিত করা দরকার।
/*backtest start: 2023-10-09 00:00:00 end: 2023-10-16 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // Wilder's Volatility Trailing Stop Strategy with various MA's // by SparkyFlary //For Educational Purposes //Results can differ on different markets and can fail at any time. Profit is not guaranteed. strategy(title="Wilder's Volatility Trailing Stop Strategy with various MA's", shorttitle="Trailing Stop Strategy", overlay=true) AtrMult = input(3.0, title="ATR multiplier") ATRlength = input(7, title="ATR length") ATRavgType = input("RMA", title="ATR moving average type", options=["RMA", "EMA", "SMA", "HULL"]) sicType = input("close", title="significant close type for trail calculation", options=["close", "high-low"]) //function for choosing moving averages f_ma(type, src, len) => float result = 0 if type == "RMA" // Wilder's moving averaege or Running moving average result := rma(src, len) if type == "EMA" // Exponential moving average result := ema(src, len) if type == "SMA" // Simple moving average result := sma(src, len) if type == "HULL" // Hull moving average result := wma(2 * wma(src, len / 2) - wma(src, len), round(sqrt(len))) result ATR = f_ma(ATRavgType, tr, ATRlength) upperTrail = lowest(sicType=="close"?close:low, ATRlength) + AtrMult * ATR lowerTrail = highest(sicType=="close"?close:high, ATRlength) - AtrMult * ATR float TS = 0 TS := close < TS[1] ? upperTrail[1] : close > TS[1] ? lowerTrail[1] : TS //plot plot(TS, title="trailing stop", color=close<TS?color.red:color.green) //Strategy buy = crossover(close, TS) //sell = close < TS short = crossunder(close, TS) //cover = close > TS strategy.entry(id="enter long", long=true, when=buy) //strategy.close(id="enter long", comment="exit long", when=sell) strategy.entry(id="enter short", long=false, when=short) //strategy.close(id="enter short", comment="exit short", when=cover)