দ্বিপদী চলমান গড় (বিএমএ) একটি নতুন ধরণের চলমান গড় সূচক। এটি গড় মূল্য গণনা করতে দ্বিপদী সহগগুলির অর্ধেক ব্যবহার করে, অনন্য গণনার পদ্ধতি, ভাল মসৃণতা এবং শক্তিশালী ব্যবহারিকতা বৈশিষ্ট্যযুক্ত।
এই কৌশলটি ট্রেন্ড অনুসরণকারী কৌশলটির অন্তর্গত MACD এর মতো ট্রেডিং সংকেত তৈরি করতে দ্রুত BMA এবং ধীর BMA একত্রিত করে। এটি একাধিক সময়সীমার জন্য প্রয়োগ করা যেতে পারে এবং মাঝারি থেকে দীর্ঘমেয়াদী অপারেশনগুলির জন্য উপযুক্ত।
দ্বিপদী চলমান গড় প্রবণতা কৌশল
বিনোমিয়াল মুভিং এভারেজ (বিএমএ) গণনা করুন। ব্যবহারকারীর সেট সময়ের অনুযায়ী, এটি বিনোমিয়াল সহগগুলি গণনা করে এবং তাদের অর্ধেককে গড় মূল্যের ওজন হিসাবে নেয়। উদাহরণস্বরূপ, 5 সময়ের সাথে, এটি 9 টি বিনোমিয়াল সহগ গণনা করে এবং তাদের অর্ধেককে ওজনযুক্ত গড় হিসাবে নেয়। এটি সাম্প্রতিক মোমবাতিগুলিতে আরও ওজন এবং আরও ভাল মসৃণতা দেয়।
দ্রুত বিএমএ পিরিয়ড এবং ধীর বিএমএ পিরিয়ড সেট করুন। দ্রুত বিএমএ দামের পরিবর্তনের প্রতি বেশি সংবেদনশীল যখন ধীর বিএমএ আরও স্থিতিশীল। তাদের ক্রসওভার ট্রেডিং সংকেত তৈরি করে।
যখন দ্রুত বিএমএ ধীর বিএমএর উপরে যায়, তখন লং পজিশন খোলা হয়। যখন দ্রুত বিএমএ ধীর বিএমএর নীচে পড়ে, তখন শর্ট পজিশন খোলা হয়। বিপরীত সংকেত উপস্থিত না হওয়া পর্যন্ত অবস্থানটি ধরে রাখুন।
এই কৌশলটির সবচেয়ে বড় সুবিধা হল বিএমএর উদ্ভাবনী গণনা। এটি উন্নত মসৃণতা এবং ব্যবহারিকতার সাথে চলমান গড়ের শক্তি বাড়ায়। ইএমএ এবং এসএমএর তুলনায়, বিএমএ আরও ঐতিহাসিক তথ্য ধরে রেখে সাম্প্রতিক মোমবাতিগুলিতে আরও ওজন দেয়। এটি এটিকে প্রবণতা আরও ভালভাবে ক্যাপচার করতে এবং কম মিথ্যা সংকেত তৈরি করতে দেয়।
এছাড়াও, দ্রুত এবং ধীর বিএমএ কম্বো চলমান গড়ের সুবিধাগুলি পুরোপুরি ব্যবহার করে। এটি প্রচুর গোলমাল ফিল্টার করে এবং কেবল প্রবণতা পাল্টা পয়েন্টগুলিতে সংকেত উত্পাদন করে। কৌশলটি নিজেই বোঝা এবং বাস্তবায়ন করা সহজ, মাঝারি থেকে দীর্ঘমেয়াদী ব্যবসায়ের জন্য উপযুক্ত।
এই কৌশলটির প্রধান ঝুঁকিগুলির মধ্যে রয়েছেঃ
সমস্ত প্রবণতা অনুসরণকারী কৌশলগুলির মতো, প্রবণতা বিপরীত হলে এটি ক্ষতির দিকে পরিচালিত করতে পারে। সমাধানগুলি স্টপ লস সেট করা বা বিএমএকে আরও সংবেদনশীল করার জন্য পরামিতিগুলি অনুকূল করা।
ভুল বিএমএ পরামিতি সেটআপ কৌশল কর্মক্ষমতাও প্রভাবিত করে। অত্যধিক সংবেদনশীল দ্রুত বিএমএ মিথ্যা সংকেত তৈরি করতে পারে যখন পিছিয়ে থাকা ধীর বিএমএ ট্রেন্ড সুযোগগুলি মিস করতে পারে। সর্বোত্তম পরামিতি সংমিশ্রণ খুঁজে পেতে বিস্তৃত পরীক্ষার প্রয়োজন।
কৌশলটি ডিফল্টরূপে পূর্ণ অবস্থান ব্যবহার করে। ট্রেড প্রতি ক্ষতি সীমাবদ্ধ করার জন্য ঝুঁকি পছন্দ অনুযায়ী অবস্থান আকার যোগ করা যেতে পারে।
মূল অপ্টিমাইজেশান দিকগুলি হল BMA নিজেই এবং প্যারামিটার সমন্বয় পরীক্ষা করা।
পিরিয়ড সেটিংঃ সর্বোত্তম সমন্বয় খুঁজে পেতে বিভিন্ন দ্রুত বিএমএ এবং ধীর বিএমএ সময় পরীক্ষা করুন। সাধারণত দ্রুত সময় 10-30 এর মধ্যে, ধীর সময় 20-60 এর মধ্যে।
বিএমএ ওজনঃ বিএমএ
অযৌক্তিক সংকেত এড়ানোর জন্য ব্রেকআউট এবং ভলিউম বাড়ার মতো ফিল্টার শর্ত যুক্ত করা যেতে পারে।
স্টপ লস মেকানিজম এবং পজিশনের আকারও পরীক্ষা করা যেতে পারে যাতে ঝুঁকিগুলি আরও ভালভাবে নিয়ন্ত্রণ করা যায়।
এই কৌশলটি প্রথমত অনন্য দ্বিপদী চলমান গড় সূচক প্রস্তাব করে। এটি চলমান গড় গণনা উন্নত করে এবং কৌশলটির সামগ্রিক উপযোগিতা এবং স্থিতিশীলতা উন্নত করে। দ্রুত এবং ধীর বিএমএর মধ্যে ক্রসওভারগুলি সহজ তবে কার্যকর ট্রেডিং সংকেত উত্পন্ন করে। প্যারামিটার মসৃণতা এবং ঝুঁকি নিয়ন্ত্রণে আরও অপ্টিমাইজেশনের জন্য জায়গা রয়েছে। এটি একটি খুব প্রতিশ্রুতিবদ্ধ প্রবণতা অনুসরণকারী কৌশল।
/*backtest start: 2022-12-07 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/ // © HosseinDaftary //@version=4 strategy("Binomial Moving Average","BMA", overlay=true, margin_long=100, margin_short=100 ,max_bars_back=96) //Binomial Moving Average:This type of moving average that is made by myself and i did not see anywhere before uses the half of binomial cofficients for //averaging the prices for example if the period be 5 then we use the 9 degree binomial cofficients(that yields 10 cofficients) and use half of them. //we use 126/256 for last bar,84/256,36/256,9/256 and finally use 1/256 for 5th bar. Seemingly this MA works better than EMA. fa_ma=input(title='Fast MA',defval=10) sl_ma=input(title='Slow MA',defval=30) fac(n)=> fact=1 for i= 1 to n fact:=fact*i fact cof= array.new_float(sl_ma) hn_ma(price,length)=> sum=1.0 sum1=0.0 array.set(cof,length-1,1) for i=2 to length array.set(cof,length-i,fac(2*length-1)/(fac(i-1)*fac(2*length-i))) sum:=sum+array.get(cof,length-i) for i=0 to length-1 array.set(cof,i,array.get(cof,i)/sum) sum1:=sum1+array.get(cof,i)*price[i] sum1 hn1=plot(hn_ma(close,sl_ma) , color=#00ff00) hn2=plot(hn_ma(close,fa_ma) ,color=#ff0000) fill(hn1,hn2,color=hn_ma(close,fa_ma)>hn_ma(close,sl_ma)?color.green:color.red) longCondition = crossover(hn_ma(close, fa_ma), hn_ma(close, sl_ma)) if (longCondition) strategy.entry("Long", strategy.long) shortCondition = crossunder(hn_ma(close, fa_ma), hn_ma(close, sl_ma)) if (shortCondition) strategy.entry("Short", strategy.short)