এই কৌশলটি হুল মুভিং এভারেজ (এইচএমএ) এর 1 ম, 2 ম, 3 ম এবং 4 ম সময় ডেরিভেটিভ ব্যবহারের ভিত্তিতে মূলধনের সমান শতাংশ বিনিয়োগ করে। প্রবেশ পয়েন্টগুলি 2 ম, 3 ম এবং 4 ম ডেরিভেটিভগুলির প্রবণতা দ্বারা চিহ্নিত করা হয় যখন নতুন প্রবেশ পয়েন্ট বা একটি ট্রেলিং স্টপ লস শতাংশে প্রস্থান পয়েন্টগুলি তৈরি করা হয়।
কৌশলটি প্রথমে এইচএমএ গণনা করে। হুল চলন্ত গড় নিম্নলিখিত সূত্রের সাথে গণনা করা একটি ওজনযুক্ত চলমান গড়ঃ
hullma = wma(2*wma(src,sm/2)-wma(src,sm),round(sqrt(sm)))
যেখানে src হল মূল্য এবং sm হল একটি ইনপুট প্যারামিটার যা গড়ের দৈর্ঘ্য নিয়ন্ত্রণ করে।
কৌশলটি তারপরে গতি (প্রথম বংশবৃদ্ধি), ত্বরণ (দ্বিতীয় বংশবৃদ্ধি), ঝাঁকুনি (তৃতীয় বংশবৃদ্ধি) এবং জয়েন্ট (চতুর্থ বংশবৃদ্ধি) গণনা করে। এগুলি এইচএমএ এবং এর বিলম্বিত মানগুলির মধ্যে পার্থক্যকে দৈর্ঘ্য লেনে ভাগ করে গণনা করা হয়। উদাহরণস্বরূপ, গতি গণনাটি হ'লঃ
speed = (hullma-hullma[len])/len
অন্যান্য ডেরিভেটিভগুলি একইভাবে গণনা করা হয়।
কৌশলটি ত্বরণের লক্ষণ, ঝাঁকুনি এবং জংশন দেখে প্রবেশ এবং প্রস্থান নির্ধারণ করে। যদি তিনটি সূচকই ইতিবাচক হয় তবে এটি দীর্ঘ হবে। যদি তিনটি নেতিবাচক হয় তবে এটি সংক্ষিপ্ত হবে।
এছাড়াও, কৌশলটি মুনাফা লক করার জন্য স্টপ লসগুলিও অনুসরণ করবে। লং পজিশনের স্টপ লসগুলি সামঞ্জস্যযোগ্য ইনপুট শতাংশের ভিত্তিতে সেট করা হবে এবং শর্ট পজিশনের মতোই।
এই কৌশলটির একটি মূল সুবিধা হ'ল এটি একাধিক ডেরিভেটিভকে প্রবেশ এবং প্রস্থান সংকেত হিসাবে ব্যবহার করে, যা কিছু মিথ্যা সংকেত ফিল্টার করতে পারে। এন্ট্রিগুলি নির্ধারণের জন্য কেবল গতির (প্রথম ডেরিভেটিভ) উপর নির্ভর করা প্রায়শই খুব ভঙ্গুর, তবে দ্বিতীয়, তৃতীয় এবং চতুর্থ ডেরিভেটিভগুলি একত্রিত করে আরও শক্তিশালী সিস্টেম তৈরি করতে পারে।
আরেকটি সুবিধা হল যে এই কৌশলটি খুব নমনীয়। এটিতে এইচএমএ দৈর্ঘ্য, বিভিন্ন ডেরিভেটিভের দৈর্ঘ্য, স্টপ লস শতাংশ ইত্যাদি সহ একাধিক সামঞ্জস্যযোগ্য পরামিতি রয়েছে যা বিভিন্ন বাজারের জন্য অনুকূলিত করা যেতে পারে।
সামঞ্জস্যযোগ্য ট্রেলিং স্টপ ব্যবহার করাও একটি সুবিধা। এটি ট্রেন্ডিং মার্কেটে কৌশলটিকে আরও বেশি মুনাফা অর্জনে সহায়তা করতে পারে, যখন অস্থির বাজারে সময়মতো প্রস্থান করে, সর্বাধিক ড্রডাউন সীমাবদ্ধ করে।
এই কৌশলটির প্রধান ঝুঁকি হ'ল হঠাৎ ইভেন্টগুলির কারণে হিট রেট হ্রাস। যদি কোনও প্রাসঙ্গিক ফিল্টার না থাকে তবে বড় সংবাদ ইভেন্টগুলি একাধিক ডেরিভেটিভকে একই সাথে ভুল সংকেত দেওয়ার কারণ হতে পারে, যার ফলে বৃহত্তর ক্ষতি হতে পারে। কিছু নিউজ ফিল্টার বাস্তবায়ন করা যেতে পারে বা এই ঝুঁকি হ্রাস করার জন্য বিস্ফোরণ ইভেন্টগুলির পরে কৌশলটি কিছু সময়ের জন্য বিরতি দেওয়া যেতে পারে।
আরেকটি ঝুঁকি হ'ল পরামিতিগুলি সহজেই ওভারফিট হতে পারে। এইচএমএ দৈর্ঘ্য, ডেরিভেটিভ দৈর্ঘ্য ইত্যাদি সমস্ত ফলাফলকে প্রভাবিত করতে পারে। বিভিন্ন বাজারে এই পরামিতিগুলির দৃust়তা মূল্যায়ন করার জন্য এটি কঠোর ব্যাকটেস্টিংয়ের প্রয়োজন। এছাড়াও ট্রেলিং স্টপ লস শতাংশগুলি খুব বেশি হওয়া উচিত নয়, অন্যথায় ক্ষতিগুলি তুষারগোলার মতো হতে পারে।
এই কৌশলটি বিভিন্ন উপায়ে অপ্টিমাইজ করা যেতে পারেঃ
প্রধান সংবাদ ইভেন্টগুলির পরে কিছু সময়ের জন্য ট্রেডিং বন্ধ করার জন্য বিস্ফোরণ ইভেন্টগুলির উপর ভিত্তি করে ফিল্টার যুক্ত করুন, বড় ক্ষতির দিকে পরিচালিত অনুপস্থিত এন্ট্রি পয়েন্টগুলি এড়ানো
বিভিন্ন বাজারে প্যারামিটারগুলির স্থায়িত্ব পরীক্ষা করা। বিভিন্ন পণ্যগুলিতে ব্যাকটেস্ট, প্যারামিটারগুলির স্থায়িত্ব মূল্যায়নের সময়কাল
প্রবেশাধিকার লজিক উন্নত করার চেষ্টা করুন। সহজ ইতিবাচক / নেতিবাচক রায়ের পরিবর্তে প্রবণতা সনাক্ত করতে মেশিন লার্নিং মডেল প্রবর্তন করুন
স্টপ লস পদ্ধতির উন্নতি করুন। সহজ শতাংশ ট্রেলিং স্টপের পরিবর্তে অস্থিরতা বা মেশিন লার্নিং স্টপ ব্যবহার করুন
মুনাফা গ্রহণ প্রস্থান যোগ করুন। বর্তমান যুক্তি প্রধানত স্টপ উপর নির্ভর করে, অতিরিক্ত আপসাইড ট্রেইলিং বা লক্ষ্য মুনাফা প্রস্থান যোগ করতে পারে
এটি একটি মাল্টি-টাইমফ্রেম ট্রেন্ড অনুসরণকারী কৌশল যা হুল মুভিং এভারেজের একাধিক ডেরাইভেটিভগুলিকে মুনাফা লক করার জন্য ট্রেলিং স্টপগুলির সাথে প্রবেশ এবং প্রস্থান সংকেত হিসাবে ব্যবহার করে। মূল সুবিধাগুলিতে একাধিক ডেরাইভেটিভ, নমনীয় টিউনেবল পরামিতি ইত্যাদি ব্যবহার করে মিথ্যা সংকেতগুলি ফিল্টার করা অন্তর্ভুক্ত। নোট করার ঝুঁকিগুলির মধ্যে বিস্ফোরণ ইভেন্ট এবং সম্ভাব্য পরামিতি ওভারফিটিং থেকে প্রভাব অন্তর্ভুক্ত রয়েছে। কৌশলটি ফিল্টার যুক্ত করে, পরামিতির দৃust়তা উন্নত করে, প্রবেশ / প্রস্থান যুক্তি উন্নত করে এবং এটিকে আরও নির্ভরযোগ্য স্বয়ংক্রিয় ট্রেডিং সিস্টেম হিসাবে তৈরি করতে পারে।
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="Derivative Based Strategy", shorttitle="DER", currency="USD", calc_on_order_fills=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, initial_capital=1000) len = input(1, minval=1, title="Derivatives Length") sm = input(4, minval=1, title="HMA Length") longTrailPerc=input(title="Trail Long Loss %", type=float,minval=0.0,step=0.1,defval=25)*0.01 shortTrailPerc=input(title="Trail Short Loss %",type=float,minval=0.0,step=0.1,defval=25)*0.01 longStopPrice=0.0 shortStopPrice=0.0 src = input(ohlc4, title="Source") hullma = wma(2*wma(src,sm/2)-wma(src,sm),round(sqrt(sm))) speed = (hullma-hullma[len])/len accel = (speed-speed[len])/len jerk = (accel-accel[len])/len jounce = (jerk-jerk[len])/len plot(speed, color=green) plot(accel, color=purple) plot(jerk, color=red) plot(jounce, color=blue) // hline(0, linestyle=solid, color=black) if accel>0 and jerk>0 and jounce>0// and strategy.opentrades==0 strategy.entry("openlong", strategy.long) if accel<0 and jerk<0 and jounce<0// and strategy.opentrades==0 strategy.entry("openshort",strategy.short) speed_profit = (strategy.openprofit-strategy.openprofit[1])/len accel_profit = (speed_profit-speed_profit[1])/len jerk_profit = (accel_profit-accel_profit[1])/len longStopPrice:=if(strategy.position_size>0) stopValue=ohlc4*(1-longTrailPerc) max(stopValue,longStopPrice[1]) else 0 shortStopPrice:=if(strategy.position_size<0) stopValue=ohlc4*(1+shortTrailPerc) min(stopValue,shortStopPrice[1]) else 999999 if(strategy.position_size>0) strategy.exit(id="closelong",stop=longStopPrice) if(strategy.position_size<0) strategy.exit(id="closeshort",stop=shortStopPrice)