কম্পিউটার

RedisTimeSeries-এ আপনার আর্থিক আবেদন তৈরি করুন

ব্যাপকভাবে বলতে গেলে, বিশ্বে দুই ধরনের বিনিয়োগকারী রয়েছে। মৌলিক বিনিয়োগকারী একটি কোম্পানিতে বিনিয়োগ করবেন কিনা সিদ্ধান্ত নেওয়ার সময় মৌলিক মেট্রিক্স, যেমন একটি কোম্পানির ব্যবসায়িক মডেল, রাজস্ব, উপার্জন, নগদ প্রবাহ, বর্তমান মূল্যায়ন, ঝুঁকি এবং বৃদ্ধির সম্ভাবনাগুলি দেখুন৷ ওয়ারেন বাফেট তার মৌলিক গবেষণার মাধ্যমে অবমূল্যায়িত কোম্পানি খুঁজে বের করে বিখ্যাত এবং বিশ্বের অন্যতম ধনী ব্যক্তি হয়ে ওঠেন।

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

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

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

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

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

RedisTimeSeries মডিউল লক্ষাধিক ইভেন্ট, নমুনা এবং মূল্যের ডেটা ইনজেস্ট এবং জিজ্ঞাসা করতে পারে। RedisTimeSeries IoT থেকে স্বাস্থ্যসেবা থেকে অর্থব্যবস্থা পর্যন্ত ব্যবহারের ক্ষেত্রে প্রবণতা চিহ্নিত করতে সাহায্য করার জন্য সময় এবং মানগুলির সম্পর্কিত জোড়া সঞ্চয় করার জন্য সবচেয়ে উপযুক্ত। RedisTimeSeries আপনাকে সহজে ডেটা বিশ্লেষণ করতে এবং সিদ্ধান্ত নিতে সাহায্য করার জন্য গড়, যোগফল, সর্বনিম্ন, সর্বোচ্চ, মানক বিচ্যুতি, পরিসর ইত্যাদির মত সমষ্টি প্রদান করে।

RedisTimeSeries-এর সাথে স্টকের দাম ট্র্যাক করা

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

সঠিক বা ভুলভাবে, অনেক লোক ডাউ জোন্স ইন্ডাস্ট্রিয়াল এভারেজ (ডিজেআইএ) কে মার্কিন অর্থনীতির জন্য বেলওয়েদার বলে মনে করে। আমি ডিজেআইএ-তে সমস্ত 30টি স্টকের একটি প্রযুক্তিগত নির্দেশক ট্র্যাক করতে চাই এবং স্টকের দাম এবং ট্রেডিং ভলিউম। আমি Dow-কম্পোনেন্ট Goldman Sachs-এর স্টক মূল্য এবং সেই স্টকের প্রযুক্তিগত সূচকগুলির মধ্যে একটি ট্র্যাক করে জিনিসগুলি শুরু করি। আমার প্রিয় প্রযুক্তিগত সূচকগুলির মধ্যে একটি হল আপেক্ষিক শক্তি সূচক (RSI)। RSI হল একটি মোমেন্টাম ইন্ডিকেটর যা একটি স্টক পরিমাপ করতে ব্যবহৃত হয় যা অতিরিক্ত কেনা বা অতিবিক্রীত অঞ্চল হতে পারে। যখন RSI 30 এর কাছাকাছি বা নীচে চলে যায়, তখন একটি স্টক অতিবিক্রীত বলে বিবেচিত হতে পারে এবং একটি কেনার সুযোগ উপস্থাপন করতে পারে। একইভাবে, যখন RSI 70 এর উপরে চলে যায়, তখন এটি অতিরিক্ত কেনা অঞ্চলে প্রবেশ করতে পারে এবং বিক্রি করার জন্য একটি ভাল সময়ের ইঙ্গিত দিতে পারে।

গোল্ডম্যান শ্যাক্স গ্রুপের আপেক্ষিক শক্তি সূচক

RedisTimeSeries-এ আপনার আর্থিক আবেদন তৈরি করুন

ট্রেডিংয়ের সময়, RSI, অন্য যেকোনো প্রযুক্তিগত সূচকের মতোই পরিবর্তিত হয় কারণ গোল্ডম্যান শ্যাশের শেয়ারের চাহিদা এবং সরবরাহের উপর ভিত্তি করে বাণিজ্য সম্পাদিত হয়। আমরা RedisTimeSeries মডিউলটি ব্যবহার করতে পারি বেশ কিছু গুরুত্বপূর্ণ প্রশ্নের উত্তর দিতে: 

  • প্রতিটি নির্দিষ্ট সময়ের ব্যবধানের জন্য প্রযুক্তিগত নির্দেশকের সর্বনিম্ন এবং সর্বোচ্চ মান কত?
    • এটি আপনাকে একটি ট্রেডের জন্য দ্রুত এন্ট্রি বা এক্সিট পয়েন্ট খুঁজে পেতে অনুমতি দেবে।
  • একটি নির্দিষ্ট সময়ের ব্যবধানে স্টকের মূল্যের পরিসীমা এবং মানক বিচ্যুতি কী?
    • পরিসীমা এবং আদর্শ বিচ্যুতি হল অন্তর্নিহিত স্টক মূল্যের অস্থিরতার সূচক।
  • এই স্টকের ব্যবসার জন্য লাভজনক প্রবেশ এবং প্রস্থান মূল্য কি হতে পারে?
  • একটি নির্দিষ্ট সময়ের ব্যবধানে সমস্ত স্টক জুড়ে একটি প্রযুক্তিগত নির্দেশকের মান কী?

আমরা একটি নির্দিষ্ট সময়ের মধ্যে সর্বনিম্ন এবং সর্বাধিক RSI মান এবং স্টক মূল্যগুলি প্রোগ্রাম্যাটিকভাবে সনাক্ত করতে RedisTimeSeries প্রশ্নগুলি ব্যবহার করতে পারি। উদাহরণস্বরূপ, যদি আমি ট্রেডিং দিনের প্রতিটি 15-মিনিট সময়ের মধ্যে সর্বনিম্ন এবং সর্বোচ্চ RSI নম্বরগুলি খুঁজে পেতে চাই? যখন RSI 30 এর কাছাকাছি বা কাছাকাছি থাকে, তখন আমি কেনা বা বিক্রির আগে অন্যান্য প্রযুক্তিগত সূচক বিশ্লেষণ করতে একটি সতর্কতা তৈরি করতে, একটি ট্রেড করতে বা অন্য জটিল ট্রেডিং ওয়ার্কফ্লো শুরু করতে চাই। আপনি যা করতে চান তা সহজেই একটি RedisTimeSeries ডাটাবেসে মডেল করা যেতে পারে।

স্টকের দাম এবং প্রযুক্তিগত সূচকগুলির জন্য ডেটা মডেল 

RedisTimeSeries-এর সাথে হ্যান্ডস-অন অভিজ্ঞতা পাওয়ার সবচেয়ে সহজ উপায় হল RedisTimeSeries-এর জন্য ডকার ইমেজ চালানো।

ডকার ইমেজ টানতে এবং চালাতে নিম্নলিখিত কমান্ডটি চালান:

ডকার রান -p 6379:6379 -it --rm redis/redistimeseries

Redis টিম RedisTimeSeries মডিউলের জন্য প্রতিটি সময় সিরিজে একটি একক মেট্রিক রাখার জন্য একটি ইচ্ছাকৃত ডিজাইনের সিদ্ধান্ত নিয়েছে। ডেটা মডেলের এই সরলতা ডেটা সন্নিবেশ এবং পুনরুদ্ধারকে অতি দ্রুত করে তোলে। আপনি আপনার বিদ্যমান অ্যাপ্লিকেশন ভাঙার বিষয়ে চিন্তা না করে প্রয়োজন অনুযায়ী নতুন সময় সিরিজ যোগ করতে পারেন। এর মানে আপনি ডাটাবেস স্কিমা বা আপনার অ্যাপ্লিকেশন ভাঙার বিষয়ে চিন্তা না করেই সহজে নতুন ডেটা উত্স যোগ করতে পারেন।

একবার আপনার RedisTimeSeries কন্টেইনার চালু হয়ে গেলে আপনি নিম্নোক্তভাবে পাইথন ব্যবহার করে সার্ভারের সাথে সংযোগ করতে পারেন (নিশ্চিত করুন যে আপনার সঠিক আইপি ঠিকানা বা হোস্টনাম আছে):

redistimeseries.client থেকে আমদানি ক্লায়েন্ট rts =Client(host='127.0.0.1', port=6379)

প্রতিটি সময় সিরিজে একটি একক মেট্রিক ধারণ করার নকশা নীতির সাথে, আমরা প্রতিটি DJIA স্টকের জন্য ইন্ট্রাডে স্টক মূল্য এবং RSI তার নিজস্ব সময় সিরিজে সংরক্ষণ করতে পারি। নীচে, আমি Goldman Sachs Group, Inc. (NYSE:GS) এর জন্য একটি টাইম সিরিজ তৈরি করেছি। আমি Goldman Sachs 'DAILYRSI:GS' এর জন্য ইন্ট্রাডে RSI নাম দিয়েছি এবং আমি প্রতিটি টাইম সিরিজে বিভিন্ন লেবেল প্রয়োগ করেছি—একটি টাইম সিরিজ লেবেল করা আপনাকে একটি লেবেল ব্যবহার করে সমস্ত কী জুড়ে প্রশ্ন করতে দেয়৷

rts.create('DAILYRSI:GS',             labels={ 'SYMBOL':'GS'                  , 'DESC':'RELATIVE_STRENGTH_INDEX'                  , 'INDEX' :'DJIA'                  , 'টাইমফ্রেম':'1_DAY' IND                  , ':'RSI'                     , 'COMPANYNAME':'GOLDMAN_SACHS_GROUP'})

এখানে, আমি Goldman Sachs-এর ইন্ট্রাডে স্টক মূল্যের জন্য একটি টাইম সিরিজ তৈরি করেছি যার নাম 'INTRADAYPRICES:GS' :

rts.create('INTRADAYPRICES:GS',             labels={ 'SYMBOL':'GS'                  , 'DESC':'SHARE_PRICE'                   , 'INDEX' :'DJIA'                  , 'মূল্য':'INTRADAY'                   , 'কম্পানি নাম ':'GOLDMAN_SACHS_GROUP'})

এরপর, আমি নির্দিষ্ট 15-মিনিটের সময়সীমার মধ্যে RSI ডেটাতে বিভিন্ন সমষ্টি তৈরি করেছি। (আমাদের ট্রেডিং প্রয়োজন অনুসারে আমরা দীর্ঘ বা কম সময়ের ফ্রেমে সমষ্টি তৈরি করতে পারতাম।) এই সমষ্টিগুলি আমাদের RSI-এর জন্য প্রথম, শেষ, সর্বনিম্ন, সর্বোচ্চ এবং পরিসরের মানগুলি দেখতে দেবে। একটি সমষ্টি তৈরি করতে, আমরা প্রথমে একত্রিতকরণ সঞ্চয় করার জন্য একটি টাইম সিরিজ তৈরি করি এবং তারপরে সমষ্টিগত মান দিয়ে টাইম সিরিজ পপুলেট করার জন্য একটি নিয়ম তৈরি করি। এই ক্ষেত্রে, আমরা 'DAILYRSI15MINRNG:GS' নামে একটি টাইম সিরিজ তৈরি করেছি RSI-এর জন্য 15-মিনিট সময়ের মধ্যে পরিসীমা সংরক্ষণ করতে। 'createrule' কাঁচা ডেটাতে একটি রেঞ্জ ফাংশন প্রয়োগ করে ('DAILYRSI:GS' ) প্রতিটি 15-মিনিটের সময়সীমার মধ্যে এবং এটিকে ‘DAILYRSI15MINRNG:GS’-এ একত্রিত করে .

rts.create('DAILYRSI15MINRNG:GS',              labels={ 'SYMBOL':'GS'                  , 'DESC':'RELATIVE_STRENGTH_INDEX'                    , 'INDEX' :'DJIA'                    , 'টাইমফ্রেম':'15_EGURMIN, 15 ':'RANGE'                    , 'ইন্ডিকেটর':'RSI'                    , 'কম্পানি নাম':'GOLDMAN_SACHS_GROUP'}) rts.createrule('DAILYRSI:GS', 'DAILYRSI15MINRNG:GS', 'range', 900)

এখানে, আমি ট্রেডিং ডে চলাকালীন প্রতিটি 15-মিনিটের ব্যবধানে Goldman Sachs-এর স্টক মূল্যের পরিসীমা এবং মানক বিচ্যুতি গণনা করার জন্য কয়েকটি নিয়ম তৈরি করেছি:

rts.create('INTRADAYPRICES15MINRNG:GS'          , labels={ 'SYMBOL':'GS'                    , 'DESC':'SHARE_PRICE'                  , 'INDEX' :'DJIA'                  , 'মূল্য':'RANGE'                                    ':'RANGE'                   , 'DURATION':'15_MINUTES'                    , 'কম্পানিনাম':'GOLDMAN_SACHS_GROUP'})rts.createrule('INTRADAYPRICES:GS'              ,'INTRADAYPRICES15MINRNG:GS'              ,'রেঞ্জ', .9 তৈরি করুন) INTRADAYPRICES15MINSTDP:GS'          , লেবেল={ 'প্রতীক':'GS'                    , 'DESC':'SHARE_PRICE'  , 'INDEX' :'DJIA'                                   , 'মূল্য':'STDDEV'                   , 'অগ্রেগেশন',                      'এগ্রিগেশন':':'15_MINUTES'                   , 'COMPANYNAME':'GOLDMAN_SACHS_GROUP'})rts.createrule( 'INTRADAYPRICES:GS'              , 'INTRADAYPRICES15MINSTDP:GS'              , 'std.p', 900)

আপনি একইভাবে ডাও জোন্স ইন্ডাস্ট্রিয়াল এভারেজ (DJIA)  এর সমস্ত 30টি স্টকের জন্য টাইম সিরিজ তৈরি করতে পারেন।

ডেটা ইনজেশন পদ্ধতি  

RedisTimeSeries-এ ডেটা ইনজেস্ট করার দুটি উপায় আছে। TS.ADD কমান্ড আপনাকে একটি টাইম সিরিজে প্রতিটি স্টক মূল্য বা প্রযুক্তিগত নির্দেশক যোগ করতে দেয়। কিন্তু যেহেতু আর্থিক বাজার থেকে ডেটা প্রায় অবিচ্ছিন্নভাবে তৈরি হয় এবং আপনাকে RedisTimeSeries-এ একাধিক নমুনা যোগ করতে হবে, তাই TS.MADD ব্যবহার করা ভাল পদ্ধতি MADD ফাংশন একটি আর্গুমেন্ট হিসাবে tuples একটি তালিকা নেয়. প্রতিটি টিপল টাইম-সিরিজ কী, টাইমস্ট্যাম্প এবং মানটির নাম নেয়:

RedisTimeSeries-এ আপনার আর্থিক আবেদন তৈরি করুন

আপনি একটি টাইম-সিরিজ কী-তে ডেটা সন্নিবেশ করতে নিম্নলিখিত পাইথন কমান্ড ব্যবহার করতে পারেন:

rts.madd()

RedisTimeSeries কোয়েরি করা হচ্ছে 

RedisTimeSeries-এর বেশিরভাগ জিনিসের মতো, ডাটাবেস অনুসন্ধান করা সহজ। একটি স্টক মূল্য বা একটি প্রযুক্তিগত সূচকের জন্য পরিসীমা এবং মান বিচ্যুতি হল অস্থিরতার একটি ইঙ্গিত৷ নিম্নলিখিত ক্যোয়ারীটি আপনাকে প্রতি 15-মিনিটের ব্যবধানে গোল্ডম্যান শ্যাক্সের স্টক মূল্যের জন্য মূল্য পরিসীমা এবং মানক বিচ্যুতি দেখতে দেবে:

rts.range( 'INTRADAYPRICES15MINRNG:GS'         , from_time =1603704600          , to_time   =1603713600)

পরিসীমা সমষ্টির এই প্রশ্নটি আপনাকে নিম্নলিখিত ফলাফল সেট দেয়:

[(1603704600, 1.75999999999999), (1603705500, 0.775000000000006), (1603706400, 0.730000000000018), (1603707300, 0.449999999999989), (1603708200, 0.370000000000005), (1603709100, 1.01000000000002), (1603710000, 0.490000000000009), (1603710900, 0.89500000000001 ), (1603711800, 0.629999999999995), (1603712700, 0.490000000000009), (1603713600, 0.27000000000001)]
এই প্রশ্নের ফলাফল দেখায়, 26 অক্টোবর, 2020 ET (পূর্ণসংখ্যা টাইমস্ট্যাম্প =1603704600) ট্রেডিং দিনের শুরুতে গোল্ডম্যান শ্যাক্সের স্টকটি উদ্বায়ী ছিল, $1.75 এর রেঞ্জের সাথে ট্রেড করা হয়েছিল। এখন এটিকে পরবর্তী 15 মিনিটের সাথে তুলনা করুন, যা 26 অক্টোবর সকাল 9:45 এ শুরু হয় (পূর্ণসংখ্যার টাইমস্ট্যাম্প =1603705500), যেখানে অস্থিরতা $0.77 এর রেঞ্জের সাথে কমে গেছে। পরবর্তী 15-মিনিটের ব্যবধানে গোল্ডম্যান শ্যাক্সের স্টকের দামের পরিধি কমতে থাকে এবং উদ্বায়ীতা শুরুর 15-মিনিটের ব্যবধানে পৌঁছে যাওয়া স্তরে ফিরে আসেনি।

RedisTimeSeries থেকে এই ডেটা সহজেই ড্যাশবোর্ড এবং চার্টে ভিজ্যুয়ালাইজ করা যেতে পারে। নীচের চার্টগুলি 15 মিনিটের ব্যবধানে Goldman Sachs-এর মূল্য পরিসীমা দেখায়:

RedisTimeSeries-এ আপনার আর্থিক আবেদন তৈরি করুন

নীচের চার্টটি একটি লাইন চার্ট বিন্যাসে একই ডেটা দেখায়, এটি নির্দেশ করে যে গোল্ডম্যান শ্যাক্স যে মূল্যের পরিসরে লেনদেন করে তা দিনভর এগিয়ে যাওয়ার সাথে সাথে আরও কঠোর হয়ে যায় (এই চার্টটি x-অক্ষে পূর্ণসংখ্যা টাইমস্ট্যাম্প দেখায়):

RedisTimeSeries-এ আপনার আর্থিক আবেদন তৈরি করুন

আপনি একত্রিতকরণ ফাংশন হিসাবে অস্থিরতার আরেকটি পরিমাপ-মান বিচ্যুতি-এর সাথে একই ধরনের প্রশ্ন করতে পারেন:

rts.range( 'INTRADAYPRICES15MINSTDP:GS'         , from_time =1603704600          , to_time   =1603713600)
[(1603704600, 0.54657783830434), (1603705500, 0.23201149395202), (1603706400, 0.196072381345986), (1603707300, 0.160267138157647), (1603708200, 0.116990621700049), (1603709100, 0.28043101744222), (1603710000, 0.144379900126934), (1603710900, 0.327611558618967 ), (1603711800, 0.163118915546951), (1603712700, 0.151417199675549), (1603713600, 0.0963889432843203) 

এটি অনেক কৌতূহলী সম্ভাবনা উন্মুক্ত করে। বলুন আপনি Goldman Sachs-এর স্টকের দাম জানতে চেয়েছিলেন যখন ইন্ট্রাডে RSI মান 30 থেকে 40 এর মধ্যে হয়। আপনি RSI-এর জন্য টাইম সিরিজ এবং স্টক মূল্যের টাইম সিরিজকে একটি ট্রেডের জন্য লাভজনক এন্ট্রি পয়েন্ট সনাক্ত করতে প্রশ্ন করতে পারেন।

এখানে, আমি 1605260100 (13 নভেম্বর, 2020-এ সকাল 9:35 ET) এবং 1605260940 (সেদিন সকাল 9:49 ET) এর মধ্যে একটি সময় ফ্রেমে Goldman Sachs-এর জন্য RSI মান জিজ্ঞাসা করছি।

dailyGSRSIValue =rts.range('DAILYRSI:GS'                      , from_time =1605260100                            , to_time   =1605260940)

ক্যোয়ারী দেখায় যে RSI মান ছিল 34.2996427544861 1605260820 (a.m. 9:47 ET)।

[(1605260100, 75.0305441024708), (1605260160, 81.6673948350152), (1605260220, 83.8852225932517), (1605260280, 85.9469082344746), (1605260340, 94.3803586011592), (1605260400, 92.2412262502652), (1605260460, 85.6867329371465), (1605260520, 87.9557361513823 ), (1605260580, 89.9407873066781), (1605260640, 57.1512452602676), (1605260700, 50.5638232111769), (1605260760, 35.2804436894564), (1605260820, 34.2996427544861), (1605260880, 54.5486275202972), (1605260940, 64.7593307385219)]

এখন আমি RSI ক্যোয়ারির জন্য ব্যবহৃত একই ব্যবধানের জন্য Goldman Sachs-এর ইন্ট্রা-ডে মূল্যগুলি জিজ্ঞাসা করতে পারি, অথবা RSI মান 34.29 এ থাকাকালীন প্রতিফলিত করার জন্য প্রোগ্রাম্যাটিকভাবে ক্যোয়ারী পরিবর্তন করতে পারি। এখানে RSI কোয়েরির মতো একই টাইম ফ্রেম ব্যবহার করে একটি উদাহরণ দেওয়া হল।

dailyGSPprice =rts.range('INTRADAYPRICES:GS'                         , from_time =1605260100                         , to_time   =1605260940)

কোয়েরিটি নির্দিষ্ট পরিসরের জন্য Goldman Sachs-এর স্টক মূল্য ফেরত দেয়:1605260820 এ (13 নভেম্বর, 2020-এ সকাল 9:47 ইটি) ​​মূল্য ছিল $217.18।

 [(1605260100, 216.57), (1605260160, 216.73), (1605260220, 217.08), (1605260280, 217.17), (16050, 2170, 2170, 21700, 2170, 2170, 2170, 2170, 2170, 21700, 2170, 2170, 2170, 2170, 2170, 2170, 21700, 21700, 2170 ,.80, 2170 ,. ), (1605260580, 218.11), (1605260640, 218.02), (1605260700, 217.72), (1605260760, 217.22) 

RedisTimeSeries একযোগে একাধিক টাইম সিরিজ জুড়ে প্রশ্ন করার একটি শক্তিশালী উপায় অফার করে। TS.MGET কমান্ড আপনাকে ফিল্টার ব্যবহার করে একাধিক টাইম সিরিজ জুড়ে প্রশ্ন করতে দেয়। আমরা ইতিমধ্যে বিভিন্ন সময় সিরিজ তৈরি করেছি এবং তাদের সাথে লেবেল সংযুক্ত করেছি। এখন সেই লেবেলগুলি টাইম সিরিজ জুড়ে অনুসন্ধানের জন্য ফিল্টার হিসাবে কাজ করতে পারে৷

নিম্নলিখিত পাইথন কোডটি কয়েকটি লেবেলের উপর ভিত্তি করে দুটি ফিল্টার প্রয়োগ করে:“DESC” এবং “TIMEFRAME”। প্যারামিটার “with_labels=False” প্রতিটি মানের জন্য লেবেল ছাড়া ফলাফল সেট ফেরত দেওয়ার অনুমতি দেয়:

allRSIValues ​​=rts.mget(filters=['DESC=RELATIVE_STRENGTH_INDEX','TIMEFRAME=1_DAY'], with_labels=False)

এই ক্যোয়ারীটি এখানে দেখানো ফলাফলের অনুরূপ একটি ফলাফল উপস্থাপন করবে, যা বেশ কয়েকটি স্টক জুড়ে শেষ RSI মান প্রদান করে:

[{'DAILYRSI:BA':[{}, 1605261060, 62.2048922111768]}, {'DAILYRSI:CAT':[{}, 1605261060, 68.3834400302226, 68.383440030226}, 62.20489211768]} , 59.2107333830133]}, {'DAILYRSI:CSCO':[{}, 1605261060, 52.7011052724688]}, {'DAILYRSI:CVX':[{}, 16052610, 16052610, 8326}, 8926}, OWDA, 8326} 1605261060, 73.597680480764]}, {'DAILYRSI:GS':[{}, 1605283140, 41.182852552541]}, {'DAILYRSI:IBM':[{2852552541]}, {'DAILYRSI:IBM':[{2016}, 56}, 650}, [56},56}] , 1605261060, 77.7760292843745]}, {'DAILYRSI:KO':[{}, 1605261060, 26.8638381005608]}, {'DAILYRSI:MMM':[MRM', {74}16}, [MR526}, MR56}, [536}]} ( {}, 1605261060, 47.3877762365391]}]

যদি আমি “with_labels=True” সেট করতাম , তাহলে ফলাফলে প্রতিটি টাইম সিরিজের সমস্ত লেবেল অন্তর্ভুক্ত করা হবে, যেমনটি এখানে দেখানো হয়েছে:

[{'DAILYRSI:BA':[{'SYMBOL':'BA', 'DESC':'RELATIVE_STRENGTH_INDEX', 'INDEX':'DJIA', 'TIMEFRAME':'1_DAY', 'INDICATOR':' RSI', 'COMPANYNAME':'BOEING'}, 1605261060, 62.2048922111768]}, {'DAILYRSI:CAT':[{'SYMBOL':'CAT', 'DESC':'RELATIVE_STRENGTH_INDEX':'RELATIVE_STRENGTH_INDEX', ' , 'TIMEFRAME':'1_DAY', 'INDICATOR':'RSI', 'COMPANYNAME':'CATERPILLAR'}, 1605261060, 68.3834400302296]}, {'DAILYRSI:CRM':[{'SYMCR', ':' DESC':'RELATIVE_STRENGTH_INDEX', 'INDEX':'DJIA', 'TIMEFRAME':'1_DAY', 'INDICATOR':'RSI', 'COMPANYNAME':'SALESFORCE'}, 1605261060, 59.210733> 

উপসংহার 

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

আপনি এখানে গিটহাবে এই ব্লগ পোস্টের নমুনা কোড খুঁজে পেতে পারেন। এবং আপনি এখানে RedisTimeSeries সম্পর্কে আরও জানতে পারেন।


  1. চারটি নতুন প্রশিক্ষণ কোর্সের সাথে RedisConf 2021-এ আপনার Redis দক্ষতা তৈরি করুন

  2. কিভাবে রেডিস ব্যবহার করে আপনার লগ বিশ্লেষণকে শক্তিশালী করতে একটি অ্যাপ্লিকেশন তৈরি করবেন

  3. RedisTimeSeries 1.6 শেষ!

  4. কিভাবে আপনার পিসিতে iOS অ্যাপস চালাবেন?