প্রোগ্রাম্যাটিক ট্রেডিংয়ে, প্রায়শই গড় এবং বৈচিত্র্য গণনা করা প্রয়োজন, যেমন চলমান গড় এবং অস্থিরতা সূচক গণনা করা। যখন আমাদের উচ্চ-ফ্রিকোয়েন্সি এবং দীর্ঘমেয়াদী গণনা প্রয়োজন হয়, তখন দীর্ঘ সময়ের জন্য historicalতিহাসিক ডেটা সংরক্ষণ করা প্রয়োজন, যা অপ্রয়োজনীয় এবং সংস্থান উভয়ই গ্রহণ করে। এই নিবন্ধটি ওয়েটেড গড় এবং বৈচিত্র্য গণনা করার জন্য একটি অনলাইন আপডেট অ্যালগরিদম প্রবর্তন করে, যা রিয়েল-টাইম ডেটা স্ট্রিমগুলি প্রক্রিয়াজাতকরণ এবং গতিশীলভাবে ট্রেডিং কৌশলগুলি সামঞ্জস্য করার জন্য বিশেষভাবে গুরুত্বপূর্ণ, বিশেষত উচ্চ-ফ্রিকোয়েন্সি কৌশলগুলি। নিবন্ধটি ব্যবসায়ীদের দ্রুত স্থাপন করতে এবং প্রকৃত ট্রেডিংয়ে অ্যালগরিদমটি প্রয়োগ করতে সহায়তা করার জন্য সংশ্লিষ্ট পাইথন কোড বাস্তবায়নও সরবরাহ করে।
যদি আমরাnth ডেটা পয়েন্টের গড় মান উপস্থাপন করার জন্য, অনুমান করা হচ্ছে যে আমরা ইতিমধ্যে n-1 ডেটা পয়েন্ট /upload/asset/28e28ae0beba5e8a810a6.png এর গড় গণনা করেছি, এখন আমরা একটি নতুন ডেটা পয়েন্ট /upload/asset/28d4723cf4cab1cf78f50.png পাই। আমরা নতুন গড় সংখ্যা গণনা করতে চাইনতুন তথ্য পয়েন্ট সহ।
ভ্যারিয়েন্স আপডেট প্রক্রিয়াটি নিম্নলিখিত ধাপগুলিতে বিভক্ত করা যেতে পারেঃ
উপরের দুটি সূত্র থেকে দেখা যায় যে এই প্রক্রিয়াটি আমাদের প্রতিটি নতুন ডেটা পয়েন্ট পাওয়ার পরে নতুন গড় এবং বৈচিত্র্য আপডেট করতে দেয়পূর্ববর্তী ডেটা সংরক্ষণ না করে কেবলমাত্র পূর্ববর্তী ডেটার গড় এবং বৈচিত্র্য ধরে রেখে, হিসাবগুলিকে আরও দক্ষ করে তোলে। তবে সমস্যাটি হ'ল আমরা এইভাবে যা গণনা করি তা হ'ল সমস্ত নমুনার গড় এবং বৈচিত্র্য, যখন প্রকৃত কৌশলগুলিতে আমাদের একটি নির্দিষ্ট স্থির সময়কাল বিবেচনা করতে হবে। উপরের গড় আপডেটটি পর্যবেক্ষণ করা দেখায় যে নতুন গড় আপডেটের পরিমাণটি নতুন ডেটা এবং অতীতের গড়ের মধ্যে একটি অনুপাত দ্বারা গুণিত বিচ্যুতি। যদি এই অনুপাতটি স্থির হয় তবে এটি একটি এক্সপোনেন্সিয়াল ওয়েটেড গড়ের দিকে পরিচালিত করবে, যা আমরা পরবর্তী আলোচনা করব।
এক্সপোনেন্সিয়াল ওয়েটেড মিডিয়ার সংজ্ঞা নিম্নলিখিত পুনরাবৃত্তি সম্পর্ক দ্বারা নির্ধারণ করা যেতে পারেঃ
তাদের মধ্যে,সময় t-এ এক্সপেনসিয়াল ওয়েটেড মিডিয়ার সমান।সময় t এ পর্যবেক্ষণ করা মান, α হল ওজন ফ্যাক্টর, এবংপূর্ববর্তী সময় পয়েন্টের এক্সপোনেন্সিয়াল ওয়েটেড গড়।
বৈচিত্র্য সম্পর্কে, আমাদের প্রতিটি সময় পয়েন্টে বর্গাকার বিচ্যুতির এক্সপোনেনশিয়াল ওজনযুক্ত গড় গণনা করতে হবে। এটি নিম্নলিখিত পুনরাবৃত্তীয় সম্পর্কের মাধ্যমে অর্জন করা যেতে পারেঃ
তাদের মধ্যে,সময় t এ এক্সপোনেন্সিয়াল ওয়েটেড ভ্যারিয়েন্স, এবংপূর্ববর্তী সময় পয়েন্টের এক্সপোনেন্সিয়াল ওয়েটেড ভ্যারিয়েন্স।
এক্সপোনেন্সিয়ালি ওয়েটেড গড় এবং বৈচিত্র্য পর্যবেক্ষণ করুন, তাদের ইনক্রিমেন্টাল আপডেটগুলি স্বজ্ঞাত, অতীতের মানগুলির একটি অংশ ধরে রেখে এবং নতুন পরিবর্তন যুক্ত করে। নির্দিষ্ট উদ্ভূত প্রক্রিয়াটি এই কাগজে উল্লেখ করা যেতে পারেঃhttps://fanf2.user.srcf.net/hermes/doc/antiforgery/stats.pdf
এসএমএ (যা গাণিতিক গড় হিসাবেও পরিচিত) এবং ইএমএ দুটি সাধারণ পরিসংখ্যানগত পরিমাপ, যার প্রত্যেকটির বিভিন্ন বৈশিষ্ট্য এবং ব্যবহার রয়েছে। প্রথমটি প্রতিটি পর্যবেক্ষণকে সমান ওজন দেয়, ডেটা সেটের কেন্দ্রীয় অবস্থানকে প্রতিফলিত করে। দ্বিতীয়টি একটি পুনরাবৃত্ত গণনা পদ্ধতি যা সাম্প্রতিক পর্যবেক্ষণগুলিতে আরও বেশি ওজন দেয়। বর্তমান সময়ের দূরত্বের সাথে প্রতিটি পর্যবেক্ষণের জন্য ওজন হ্রাস পায়।
যদিও এসএমএ এবং ইএমএ ধারণাগতভাবে ভিন্ন, আমরা একটি উপযুক্ত α মান নির্বাচন করে একটি নির্দিষ্ট সংখ্যক পর্যবেক্ষণ ধারণকারী একটি এসএমএ এর কাছে EMA আনুমানিক করতে পারি। এই আনুমানিক সম্পর্কটি কার্যকর নমুনার আকার দ্বারা বর্ণনা করা যেতে পারে, যা EMA এর ওজন ফ্যাক্টর α এর একটি ফাংশন।
এসএমএ হল একটি নির্দিষ্ট সময় উইন্ডোর মধ্যে সমস্ত দামের গাণিতিক গড়। একটি সময় উইন্ডো এন এর জন্য, এসএমএর কেন্দ্রস্থল (অর্থাত্ যেখানে গড় সংখ্যাটি অবস্থিত) বিবেচনা করা যেতে পারেঃ
এসএমএ-র কেন্দ্রবিন্দু
ইএমএ হল একটি ধরণের ওজনযুক্ত গড় যেখানে সাম্প্রতিকতম ডেটা পয়েন্টগুলির বৃহত্তর ওজন রয়েছে। ইএমএর ওজন সময়ের সাথে সাথে হ্রাস পায়। নিম্নলিখিত সিরিজগুলিকে যোগ করে ইএমএর সেন্ট্রয়েড পাওয়া যায়ঃ
EMA এর কেন্দ্রীয়
যখন আমরা অনুমান করি যে এসএমএ এবং ইএমএর একই সেন্ট্রয়েড আছে, আমরা পেতে পারিঃ
এই সমীকরণ সমাধানের জন্য, আমরা α এবং N এর মধ্যে সম্পর্ক পেতে পারি।
এর মানে হল যে N দিনের একটি নির্দিষ্ট SMA এর জন্য, সংশ্লিষ্ট α মানটি একটি
ধরুন আমাদের একটি EMA আছে যা প্রতি সেকেন্ডে আপডেট হয়, যার ওজন ফ্যাক্টর /upload/asset/28da19ef219cae323a32f.png। এর অর্থ হল যে প্রতি সেকেন্ডে, নতুন ডেটা পয়েন্টটি EMA-তে যোগ করা হবে যার ওজন /upload/asset/28da19ef219cae323a32f.png, যখন পুরানো ডেটা পয়েন্টগুলির প্রভাব /upload/asset/28cfb008ac438a12e1127.png দ্বারা গুণিত হবে।
যদি আমরা আপডেটের ফ্রিকোয়েন্সি পরিবর্তন করি, যেমন প্রতি f সেকেন্ডে একবার আপডেট করা, আমরা একটি নতুন ওজন ফ্যাক্টর / আপলোড / সম্পদ / 28d2d28762e349a03c531.png খুঁজে পেতে চাই, যাতে f সেকেন্ডের মধ্যে ডেটা পয়েন্টগুলির সামগ্রিক প্রভাব একই হয় যখন প্রতি সেকেন্ডে আপডেট করা হয়।
f সেকেন্ডের মধ্যে, যদি কোনও আপডেট করা না হয়, পুরানো ডেটা পয়েন্টগুলির প্রভাব ক্রমাগত f বার হ্রাস পাবে, প্রতিটি সময় / আপলোড/অ্যাসেট/28e50eb9c37d5626d6691.png দ্বারা গুণিত। অতএব, f সেকেন্ডের পরে মোট ক্ষয়কারী ফ্যাক্টর / আপলোড/অ্যাসেট/28e296f97d8c8344a2ee6.png।
যাতে প্রতি f সেকেন্ডে আপডেট হওয়া EMA-এর বিপর্যয় প্রভাব একই রকম হয়, যেমন একটি আপডেট সময়ের মধ্যে প্রতি সেকেন্ডে আপডেট হওয়া EMA-এর, আমরা f সেকেন্ডের পর মোট বিপর্যয় ফ্যাক্টরকে এক আপডেট সময়ের মধ্যে বিপর্যয় ফ্যাক্টরের সমান করে দিইঃ
এই সমীকরণ সমাধান, আমরা নতুন ওজন ফ্যাক্টর পেতে
এই সূত্রটি নতুন ওজন ফ্যাক্টর / আপলোড / সম্পদ / 28d2d28762e349a03c531.png এর আনুমানিক মান প্রদান করে, যা আপডেটের ফ্রিকোয়েন্সি পরিবর্তনের সময় EMA মসৃণ প্রভাব অপরিবর্তিত রাখে। উদাহরণস্বরূপঃ যখন আমরা গড় মূল্য গণনা করিএকটি মান 0.001 এবং প্রতি 10 সেকেন্ডে এটি আপডেট করুন, যদি এটি প্রতি সেকেন্ডে একটি আপডেটে পরিবর্তন করা হয়, সমতুল্য মানপ্রায় 0.01 হবে।
class ExponentialWeightedStats:
def __init__(self, alpha):
self.alpha = alpha
self.mu = 0
self.S = 0
self.initialized = False
def update(self, x):
if not self.initialized:
self.mu = x
self.S = 0
self.initialized = True
else:
temp = x - self.mu
new_mu = self.mu + self.alpha * temp
self.S = self.alpha * self.S + (1 - self.alpha) * temp * (x - self.mu)
self.mu = new_mu
@property
def mean(self):
return self.mu
@property
def variance(self):
return self.S
# Usage example
alpha = 0.05 # Weight factor
stats = ExponentialWeightedStats(alpha)
data_stream = [] # Data stream
for data_point in data_stream:
stats.update(data_point)
উচ্চ-ফ্রিকোয়েন্সি প্রোগ্রাম্যাটিক ট্রেডিংয়ে, রিয়েল-টাইম ডেটাগুলির দ্রুত প্রক্রিয়াকরণ অত্যন্ত গুরুত্বপূর্ণ। গণনা দক্ষতা উন্নত করতে এবং সংস্থান খরচ কমাতে, এই নিবন্ধটি একটি ডেটা স্ট্রিমের ওজনযুক্ত গড় এবং বৈচিত্র্য ক্রমাগত গণনা করার জন্য একটি অনলাইন আপডেট অ্যালগরিদম প্রবর্তন করে। রিয়েল-টাইম ইনক্রিমেন্টাল আপডেটগুলি বিভিন্ন পরিসংখ্যানগত ডেটা এবং সূচক গণনার জন্যও ব্যবহার করা যেতে পারে, যেমন দুটি সম্পদের দামের মধ্যে সম্পর্ক, রৈখিক ফিটিং ইত্যাদি, প্রচুর সম্ভাবনা সহ। ইনক্রিমেন্টাল আপডেট ডেটাকে একটি সংকেত সিস্টেম হিসাবে বিবেচনা করে, যা স্থির-কালীন গণনার তুলনায় চিন্তাভাবনার একটি বিবর্তন। যদি আপনার কৌশলটিতে এখনও এমন অংশগুলি অন্তর্ভুক্ত থাকে যা ঐতিহাসিক ডেটা ব্যবহার করে গণনা করে, এই পদ্ধতি অনুসারে এটি রূপান্তর করার বিষয়ে বিবেচনা করুনঃ কেবল সিস্টেমের স্থিতির অনুমান রেকর্ড করুন এবং নতুন ডেটা আসার সাথে সাথে সিস্টেমের স্থিতি আপডেট করুন; এই চক্রটি পুনরাবৃত্তি করুন