প্রোগ্রাম্যাটিক ট্রেডারদের জন্য একটি শক্তিশালী সরঞ্জামঃ গড় এবং বৈচিত্র্য গণনা করার জন্য ইনক্রিমেন্টাল আপডেট অ্যালগরিদম

লেখক:লিডিয়া, তৈরিঃ ২০২৩-১১-০৯ ১৫ঃ০০:০৫, আপডেটঃ ২০২৪-০১-০১ ১২ঃ১৮ঃ০৭

img

পরিচিতি

প্রোগ্রাম্যাটিক ট্রেডিংয়ে, প্রায়শই গড় এবং বৈচিত্র্য গণনা করা প্রয়োজন, যেমন চলমান গড় এবং অস্থিরতা সূচক গণনা করা। যখন আমাদের উচ্চ-ফ্রিকোয়েন্সি এবং দীর্ঘমেয়াদী গণনা প্রয়োজন হয়, তখন দীর্ঘ সময়ের জন্য historicalতিহাসিক ডেটা সংরক্ষণ করা প্রয়োজন, যা অপ্রয়োজনীয় এবং সংস্থান উভয়ই গ্রহণ করে। এই নিবন্ধটি ওয়েটেড গড় এবং বৈচিত্র্য গণনা করার জন্য একটি অনলাইন আপডেট অ্যালগরিদম প্রবর্তন করে, যা রিয়েল-টাইম ডেটা স্ট্রিমগুলি প্রক্রিয়াজাতকরণ এবং গতিশীলভাবে ট্রেডিং কৌশলগুলি সামঞ্জস্য করার জন্য বিশেষভাবে গুরুত্বপূর্ণ, বিশেষত উচ্চ-ফ্রিকোয়েন্সি কৌশলগুলি। নিবন্ধটি ব্যবসায়ীদের দ্রুত স্থাপন করতে এবং প্রকৃত ট্রেডিংয়ে অ্যালগরিদমটি প্রয়োগ করতে সহায়তা করার জন্য সংশ্লিষ্ট পাইথন কোড বাস্তবায়নও সরবরাহ করে।

সহজ গড় এবং বৈচিত্র্য

যদি আমরাimgnth ডেটা পয়েন্টের গড় মান উপস্থাপন করার জন্য, অনুমান করা হচ্ছে যে আমরা ইতিমধ্যে n-1 ডেটা পয়েন্ট /upload/asset/28e28ae0beba5e8a810a6.png এর গড় গণনা করেছি, এখন আমরা একটি নতুন ডেটা পয়েন্ট /upload/asset/28d4723cf4cab1cf78f50.png পাই। আমরা নতুন গড় সংখ্যা গণনা করতে চাইimgনতুন তথ্য পয়েন্ট সহ।

img

ভ্যারিয়েন্স আপডেট প্রক্রিয়াটি নিম্নলিখিত ধাপগুলিতে বিভক্ত করা যেতে পারেঃ

img

উপরের দুটি সূত্র থেকে দেখা যায় যে এই প্রক্রিয়াটি আমাদের প্রতিটি নতুন ডেটা পয়েন্ট পাওয়ার পরে নতুন গড় এবং বৈচিত্র্য আপডেট করতে দেয়imgপূর্ববর্তী ডেটা সংরক্ষণ না করে কেবলমাত্র পূর্ববর্তী ডেটার গড় এবং বৈচিত্র্য ধরে রেখে, হিসাবগুলিকে আরও দক্ষ করে তোলে। তবে সমস্যাটি হ'ল আমরা এইভাবে যা গণনা করি তা হ'ল সমস্ত নমুনার গড় এবং বৈচিত্র্য, যখন প্রকৃত কৌশলগুলিতে আমাদের একটি নির্দিষ্ট স্থির সময়কাল বিবেচনা করতে হবে। উপরের গড় আপডেটটি পর্যবেক্ষণ করা দেখায় যে নতুন গড় আপডেটের পরিমাণটি নতুন ডেটা এবং অতীতের গড়ের মধ্যে একটি অনুপাত দ্বারা গুণিত বিচ্যুতি। যদি এই অনুপাতটি স্থির হয় তবে এটি একটি এক্সপোনেন্সিয়াল ওয়েটেড গড়ের দিকে পরিচালিত করবে, যা আমরা পরবর্তী আলোচনা করব।

এক্সপোনেন্সিয়াল ওয়েটেড মিডিয়ান

এক্সপোনেন্সিয়াল ওয়েটেড মিডিয়ার সংজ্ঞা নিম্নলিখিত পুনরাবৃত্তি সম্পর্ক দ্বারা নির্ধারণ করা যেতে পারেঃ

img

তাদের মধ্যে,imgসময় t-এ এক্সপেনসিয়াল ওয়েটেড মিডিয়ার সমান।imgসময় t এ পর্যবেক্ষণ করা মান, α হল ওজন ফ্যাক্টর, এবংimgপূর্ববর্তী সময় পয়েন্টের এক্সপোনেন্সিয়াল ওয়েটেড গড়।

এক্সপোনেন্সিয়াল ওয়েটেড ভ্যারিয়েন্স

বৈচিত্র্য সম্পর্কে, আমাদের প্রতিটি সময় পয়েন্টে বর্গাকার বিচ্যুতির এক্সপোনেনশিয়াল ওজনযুক্ত গড় গণনা করতে হবে। এটি নিম্নলিখিত পুনরাবৃত্তীয় সম্পর্কের মাধ্যমে অর্জন করা যেতে পারেঃ

img

তাদের মধ্যে,imgসময় t এ এক্সপোনেন্সিয়াল ওয়েটেড ভ্যারিয়েন্স, এবংimgপূর্ববর্তী সময় পয়েন্টের এক্সপোনেন্সিয়াল ওয়েটেড ভ্যারিয়েন্স।

এক্সপোনেন্সিয়ালি ওয়েটেড গড় এবং বৈচিত্র্য পর্যবেক্ষণ করুন, তাদের ইনক্রিমেন্টাল আপডেটগুলি স্বজ্ঞাত, অতীতের মানগুলির একটি অংশ ধরে রেখে এবং নতুন পরিবর্তন যুক্ত করে। নির্দিষ্ট উদ্ভূত প্রক্রিয়াটি এই কাগজে উল্লেখ করা যেতে পারেঃhttps://fanf2.user.srcf.net/hermes/doc/antiforgery/stats.pdf

এসএমএ এবং ইএমএ

এসএমএ (যা গাণিতিক গড় হিসাবেও পরিচিত) এবং ইএমএ দুটি সাধারণ পরিসংখ্যানগত পরিমাপ, যার প্রত্যেকটির বিভিন্ন বৈশিষ্ট্য এবং ব্যবহার রয়েছে। প্রথমটি প্রতিটি পর্যবেক্ষণকে সমান ওজন দেয়, ডেটা সেটের কেন্দ্রীয় অবস্থানকে প্রতিফলিত করে। দ্বিতীয়টি একটি পুনরাবৃত্ত গণনা পদ্ধতি যা সাম্প্রতিক পর্যবেক্ষণগুলিতে আরও বেশি ওজন দেয়। বর্তমান সময়ের দূরত্বের সাথে প্রতিটি পর্যবেক্ষণের জন্য ওজন হ্রাস পায়।

  • ওজন বিতরণ: এসএমএ প্রতিটি ডেটা পয়েন্টকে একই ওজন দেয়, যখন ইএমএ সর্বশেষতম ডেটা পয়েন্টকে উচ্চতর ওজন দেয়।
  • নতুন তথ্যের প্রতি সংবেদনশীলতা: এসএমএ নতুন যোগ করা ডেটাতে যথেষ্ট সংবেদনশীল নয়, কারণ এটি সমস্ত ডেটা পয়েন্ট পুনরায় গণনা করতে জড়িত। অন্যদিকে, ইএমএ সর্বশেষ ডেটাতে পরিবর্তনগুলি আরও দ্রুত প্রতিফলিত করতে পারে।
  • কম্পিউটেশনাল জটিলতা: এসএমএর গণনা তুলনামূলকভাবে সহজ, তবে ডেটা পয়েন্টের সংখ্যা বাড়ার সাথে সাথে কম্পিউটিং ব্যয়ও বাড়ছে। ইএমএর গণনা আরও জটিল, তবে এর পুনরাবৃত্ত প্রকৃতির কারণে এটি অবিচ্ছিন্ন ডেটা স্ট্রিমগুলি আরও দক্ষতার সাথে পরিচালনা করতে পারে।

EMA এবং SMA এর মধ্যে আনুমানিক রূপান্তর পদ্ধতি

যদিও এসএমএ এবং ইএমএ ধারণাগতভাবে ভিন্ন, আমরা একটি উপযুক্ত α মান নির্বাচন করে একটি নির্দিষ্ট সংখ্যক পর্যবেক্ষণ ধারণকারী একটি এসএমএ এর কাছে EMA আনুমানিক করতে পারি। এই আনুমানিক সম্পর্কটি কার্যকর নমুনার আকার দ্বারা বর্ণনা করা যেতে পারে, যা EMA এর ওজন ফ্যাক্টর α এর একটি ফাংশন।

এসএমএ হল একটি নির্দিষ্ট সময় উইন্ডোর মধ্যে সমস্ত দামের গাণিতিক গড়। একটি সময় উইন্ডো এন এর জন্য, এসএমএর কেন্দ্রস্থল (অর্থাত্ যেখানে গড় সংখ্যাটি অবস্থিত) বিবেচনা করা যেতে পারেঃ

এসএমএ-র কেন্দ্রবিন্দুimg

ইএমএ হল একটি ধরণের ওজনযুক্ত গড় যেখানে সাম্প্রতিকতম ডেটা পয়েন্টগুলির বৃহত্তর ওজন রয়েছে। ইএমএর ওজন সময়ের সাথে সাথে হ্রাস পায়। নিম্নলিখিত সিরিজগুলিকে যোগ করে ইএমএর সেন্ট্রয়েড পাওয়া যায়ঃ

EMA এর কেন্দ্রীয়img

যখন আমরা অনুমান করি যে এসএমএ এবং ইএমএর একই সেন্ট্রয়েড আছে, আমরা পেতে পারিঃ

img

এই সমীকরণ সমাধানের জন্য, আমরা α এবং N এর মধ্যে সম্পর্ক পেতে পারি।

img

এর মানে হল যে N দিনের একটি নির্দিষ্ট SMA এর জন্য, সংশ্লিষ্ট α মানটি একটি সমতুল্য EMA গণনা করতে ব্যবহার করা যেতে পারে, যাতে তাদের একই সেন্ট্রয়েড থাকে এবং ফলাফলগুলি খুব অনুরূপ হয়।

বিভিন্ন আপডেট ফ্রিকোয়েন্সির সাথে EMA রূপান্তর

ধরুন আমাদের একটি 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 সেকেন্ডের পর মোট বিপর্যয় ফ্যাক্টরকে এক আপডেট সময়ের মধ্যে বিপর্যয় ফ্যাক্টরের সমান করে দিইঃ

img

এই সমীকরণ সমাধান, আমরা নতুন ওজন ফ্যাক্টর পেতেimg

img

এই সূত্রটি নতুন ওজন ফ্যাক্টর / আপলোড / সম্পদ / 28d2d28762e349a03c531.png এর আনুমানিক মান প্রদান করে, যা আপডেটের ফ্রিকোয়েন্সি পরিবর্তনের সময় EMA মসৃণ প্রভাব অপরিবর্তিত রাখে। উদাহরণস্বরূপঃ যখন আমরা গড় মূল্য গণনা করিimgএকটি মান 0.001 এবং প্রতি 10 সেকেন্ডে এটি আপডেট করুন, যদি এটি প্রতি সেকেন্ডে একটি আপডেটে পরিবর্তন করা হয়, সমতুল্য মানimgপ্রায় 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)

সংক্ষিপ্তসার

উচ্চ-ফ্রিকোয়েন্সি প্রোগ্রাম্যাটিক ট্রেডিংয়ে, রিয়েল-টাইম ডেটাগুলির দ্রুত প্রক্রিয়াকরণ অত্যন্ত গুরুত্বপূর্ণ। গণনা দক্ষতা উন্নত করতে এবং সংস্থান খরচ কমাতে, এই নিবন্ধটি একটি ডেটা স্ট্রিমের ওজনযুক্ত গড় এবং বৈচিত্র্য ক্রমাগত গণনা করার জন্য একটি অনলাইন আপডেট অ্যালগরিদম প্রবর্তন করে। রিয়েল-টাইম ইনক্রিমেন্টাল আপডেটগুলি বিভিন্ন পরিসংখ্যানগত ডেটা এবং সূচক গণনার জন্যও ব্যবহার করা যেতে পারে, যেমন দুটি সম্পদের দামের মধ্যে সম্পর্ক, রৈখিক ফিটিং ইত্যাদি, প্রচুর সম্ভাবনা সহ। ইনক্রিমেন্টাল আপডেট ডেটাকে একটি সংকেত সিস্টেম হিসাবে বিবেচনা করে, যা স্থির-কালীন গণনার তুলনায় চিন্তাভাবনার একটি বিবর্তন। যদি আপনার কৌশলটিতে এখনও এমন অংশগুলি অন্তর্ভুক্ত থাকে যা ঐতিহাসিক ডেটা ব্যবহার করে গণনা করে, এই পদ্ধতি অনুসারে এটি রূপান্তর করার বিষয়ে বিবেচনা করুনঃ কেবল সিস্টেমের স্থিতির অনুমান রেকর্ড করুন এবং নতুন ডেটা আসার সাথে সাথে সিস্টেমের স্থিতি আপডেট করুন; এই চক্রটি পুনরাবৃত্তি করুন


আরো