آشنایی با زبان پرس و جو بلومبرگ (BQL)

ساخت وبلاگ

با انجام محاسبات سفارشی در ابر بلومبرگ از طریق اکسل ، داده ها را ذخیره کنید

زبان Query Bloomberg (BQL) یک API جدید است که بر اساس داده های نرمال و تنظیم شده است و به شما امکان می دهد محاسبات سفارشی را در ابر بلومبرگ انجام دهید. تجزیه و تحلیل های فشرده داده که قبلاً نیاز به بارگیری هزاران نقطه داده و به دنبال آن دستکاری گسترده در اکسل داشتند ، اکنون فقط به یک فرمول نیاز دارند ، بنابراین به دانشگاه ها کمک می کند تا از داده های کمتری استفاده کنند.

  • چرا از BQL استفاده می کنیم؟
  • کمی مقایسه بین راه قدیمی و جدید
  • نوشتن درخواست BQL
  • نوشتن درخواست bql. query
  • پشتیبانی

چرا از BQL استفاده می کنیم؟

محققان ممکن است با بارگیری داده ها به صورت عمده در اکسل با استفاده از فرمول هایی مانند BDP ، BDH و BDS برای نقطه داده ، تاریخچه داده ها و مجموعه داده ها آشنا باشند. شما ممکن است این فرمول ها را با استفاده از منوهای سازنده Function یا با تایپ کردن آنها به طور کامل ایجاد کرده باشید. این فرمول ها با بارگیری مجموعه کامل داده ها در صفحه گسترده خود ، برای یک یا چند مورد اوراق بهادار (تیکس) ، برای یک یا چند اوراق بهادار (تیک) ، برای یک یا چند اوراق بهادار (تیک) دسترسی مستقیم دارند.

بارگیری داده های زیادی به صورت عمده می تواند مشکل باشد که تمام آنچه شما واقعاً نیاز دارید نتیجه محاسبه است ، مانند میانگین قیمت برای هر بخش از FTSE 100 در طی 50 روز گذشته.(در این مثال ، شما باید برای هر 101 اوراق بهادار قیمت برای هر روز و کد بخش بارگیری کنید ، که وقتی فقط به یک بخش نیاز دارید ، به 5151 نقطه داده اضافه می کند). ممکن است شما از محدوده بارگیری روزانه یا ماهانه فراتر بروید ، به این معنی که بلومبرگ تا اولین روز از ماه تقویم بعدی در اکسل برای آن رایانه شخصی قابل استفاده نیست. محدودیت های بارگیری بر همه کاربران آن رایانه تأثیر می گذارد.

زبان پرس و جو بلومبرگ (BQL) دسترسی به سهام ، بودجه ، درآمد ثابت ، اقتصاد و اوراق بهادار را ارائه می دهد. BQL راه حل هایی برای استفاده کارآمدتر و استفاده ایمن تر از داده ها به سه روش خاص دارد:

  • BQL می تواند زمینه ها را برای ساخت زمینه های سفارشی ادغام کند.
  • BQL می تواند تعداد تیک های مورد نیاز برای استفاده را کاهش دهد (به عنوان مثال ، بخش های مطالعه به جای هر عضو).
  • BQL توابع را برای جمع آوری یا گروه های گروهی (مانند میانگین یا جمع) ارائه می دهد.

ممکن است از عملکرد BQL Builder در اکسل استفاده کنید یا فرمول ها را تایپ کنید. در این پست فرمول ها را تایپ خواهیم کرد تا نحوه عملکرد آنها را بهتر توضیح دهیم. در عمل ، شما ممکن است ترجیح دهید از BQL Builder استفاده کنید.

کمی مقایسه بین راه قدیمی و جدید

در ساده ترین آن ، یک تابع BQL می تواند مشابه عملکرد BDP (نقطه داده) باشد. ما با یک مثال کوتاه از آخرین قیمت Apple Inc (مورد PX_LAST) شروع می کنیم. توابع به یک امنیت (تیک) و سپس مورد داده نیاز دارند.

  • با استفاده از BDP = BDP ("AAPL US Equity" ، "PX_LAST")
  • با استفاده از BQL = BQL ("AAPL US Equity" ، "PX_LAST")

با BDP ، اگر می خواهید یک مورد داده دوم ، حجم قیمت (تعداد کل سهام معامله شده در آن روز) دریافت کنید ، باید یک فرمول جدید را در یک سلول جدید بنویسید. با BQL ، می توانید لیست موارد داده را در یک فرمول با کاما گسترش دهید. این به شما مجموعه ای از داده ها می دهد.

  • با استفاده از BDP = BDP ("AAPL US Equity" ، "PX_LAST") و = BDP ("AAPL US Equity" ، "Volume")
  • با استفاده از BQL = BQL ("AAPL US Equity" ، "PX_LAST ، PX_VOLUME")

لطفاً توجه داشته باشید: برای BDP ، حجم امروز مقدار را می دهد و px_volume مقدار نزدیک دیروز را می دهد. برای BQL ، مورد px_volume امروز مقدار را ارائه می دهد.

اگر می خواهید نسبت درصد آخرین قیمت و حجم قیمت را بررسی کنید ، چه می کنید؟BQL به شما امکان می دهد محاسبه ای را در سرور Bloomberg انجام داده و نتیجه را بارگیری کنید.

  • با استفاده از BDP فرمول دیگری را در سلول دیگری مانند = B6*100/B7 بنویسید
  • با استفاده از BQL = BQL ("AAPL US Equity" ، "px_last*100/px_volume")

BQL به جای بارگیری بسیاری ، فقط یک مقدار نتیجه را بارگیری می کند.

گزینه های "Override" وجود دارد که می توانید برای موارد داده مانند ارز استفاده کنید. این موارد بیش از حد بین موارد داده متفاوت است ، می توانید در مورد آنها در ترمینال با عملکرد FLDS بخوانید. برای BDP ، شما فقط می توانید در انتهای فرمول ، برای کلیه موارد داده ، Overrides اعمال کنید. برای BQL ، می توانید با استفاده از براکت ها ، موارد اضافی را نیز در مورد داده های فردی اعمال کنید:

  • = BQL ("Appl Us Equity" ، "px_last (ارز = یورو)*100/px_volume")

نوشتن درخواست BQL

دو فرمول اکسل وجود دارد که می توانید برای درخواست های BQL استفاده کنید: BQL و BQL. Query. فرمول BQL دارای فرمت ساده تر است ، دو بخش دارد:

  • می خواهید از چه کسی بدانید؟
  • چه چیزی می خواهید در مورد آنها بدانید؟

ما این موضوع را در بالا با جستجوی آخرین قیمت شرکت اپل مشاهده کرده ایم. قسمت "چه کسی" یک یا چند اوراق بهادار (تیک) است. قسمت "چه" موارد داده است.

درخواست با یک امنیت

قسمت "چه" می تواند بسیار طولانی شود. غالباً ایده خوبی است که از چیزی ساده ساخته شوید. در این مثال ، ما با آخرین قیمت IBM Corp. شروع می کنیم ، سپس توابع را یک بار اضافه می کنیم:

  • = BQL ("IBM US Equity" ، "PX_LAST")

برای به دست آوردن طیف وسیعی از تاریخ ها ، آخرین قیمت از 30 روز پیش تا امروز ، یک پارامتر را به مورد داده اضافه کنید. پارامترهای نوشته شده در پرانتز برای مورد داده در سمت چپ اعمال می شود. پارامتر خرما به شما امکان می دهد یک یا چند تاریخ را انتخاب کنید ، عملکرد دامنه تاریخ های نسبی مانن د-30d را برای "30 روز پیش" می پذیرد:

  • = BQL ("IBM Us Equity" ، "PX_LAST (تاریخ = دامنه (-30d ، 0d))")

این مجموعه ای از داده های آخرین قیمت را به ما می دهد ، اما شامل روزهای غیر ترادینگ با NA است. ما می توانیم با بسته بندی مورد داده در عملکرد Dropna ، این سلول ها را حذف کنیم:

  • = BQL ("IBM US Equity" ، "Dropna (PX_LAST (تاریخ = دامنه (-30d ، 0d)))")

ما می توانیم یک تابع کل را برای محاسبه یک شکل واحد از مجموعه ای از تاریخ اعمال کنیم. عملکرد AVG میانگین (میانگین) را محاسبه می کند.

  • = BQL ("IBM US Equity" ، "AVG (dropna (px_last (تاریخ = دامنه (-30d ، 0d))))")

ما می توانیم با استفاده از عملکرد Zscore به جای میانگین ، هر نقطه قیمت را در محدوده (نمره Z) قرار دهیم:

  • = BQL ("IBM US Equity" ، "Zscore (dropna (px_last (تاریخ = دامنه (-30d ، 0d))))")

سرانجام ، ما می توانیم با استفاده از آخرین عملکرد ، آخرین نمره Z را در محدوده بدست آوریم:

  • = BQL ("IBM US Equity" ، "Last (Zscore (dropna (px_last (dates = range) (-30d ، 0d))))")

درخواست با بیش از یک امنیت

تاکنون از عملکرد BQL فقط با یک امنیت استفاده کرده ایم. عملکرد BQL همچنین می تواند با اوراق بهادار متعدد کار کند ، از جمله:

  • لیستی از تیک (جدا شده توسط کاما) ،
  • نتایج یک غربالگری ،
  • کل جهان ، فیلتر شده به زیر مجموعه.

اگر پرس و جو شما از عملکرد اعضا برای دسترسی به کل جهان استفاده می کند ، ضروری است که هنگام آزمایش و ساخت با یک زیر مجموعه کوچک شروع کنید.

در این مثال ، ما از جهان اعضا استفاده می کنیم تا داده های قیمت را برای همه اعضای شاخص S& P 500 ("شاخص SPX") درخواست کنیم.(فیلتر بعداً خواهد آمد.) ما در 30 روز گذشته از قیمت بالاترین از میانگین استفاده خواهیم کرد.

  • = BQL ("اعضا (" شاخص SPX ")" ، "Last (Zscore (dropna (px_last (dates = range (-30d)))))")

این مجموعه ای از داده ها را به ما می دهد ، یک ورودی برای هر عضو. ما می توانیم عملکرد اعضا را در یک فیلتر ببندیم تا نتایج فقط به اعضایی که یک شرط را برآورده می کنند ، مانند بیشتر از 2: محدود شود:

  • =BQL("filter( who , what>2) "،" چه ")
  • یا ، به طور کامل نوشته شده است:
  • =BQL("filter(members('SPX Index'), LAST(ZSCORE(DROPNA(PX_LAST(dates=range(-30d,0d)))))>2) "،" آخرین (Zscore (dropna (px_last (تاریخ = دامنه (-30d ، 0d))))) ")

نوشتن فرمول های اکسل این طولانی نوشتن و خواندن دشوار است و اکسل 255 کاراکتر در هر سلول دارد. ما به روش بهتری در زیر خواهیم پرداخت.

نوشتن درخواست bql. query

می توانید با فرمول BQL. Query یک پرس و جو طولانی تر یا پیچیده تر بسازید. اگر قبلاً از SQL استفاده کرده اید ممکن است آشنا به نظر برسد. فرمول BQL. Query حداکثر سه قسمت دارد:

  • LET: برخی از متغیرها را برای استفاده در زیر تعریف کنید (اختیاری)
  • دریافت: چه چیزی می خواهید بدانید؟
  • برای: می خواهید از چه کسی بدانید؟

می توانید متغیر را در قسمت اول اختیاری پرس و جو تعریف کنید. این باعث می شود چندین بار همان کد کد را تایپ کنید ، طول پرس و جو را کاهش داده و از اشتباهات جلوگیری کنید.

یک درخواست BQL را به یک درخواست bql. query تبدیل کنید

ما مثال قبلی خود را به یک درخواست bql. query تبدیل می کنیم ، یک متغیر را معرفی می کنیم و درخواست را کوتاه تر می کنیم.

درخواست BQL برای بسیاری از افراد آسان تر است زیرا به نظر می رسد شبیه به درخواست سنتی BDS ، BDH یا BDP است. تمام درخواست های BQL به درخواست های BQL. Query در پشت صحنه تبدیل می شوند. می توانید با افزودن یک پارامتر به پایان درخواست ، پرس و جو تبدیل شده را مشاهده کنید (به عنوان یک استدلال سوم):

  • = bql ("چه کسی" ، "چه" ، "showQuery = true")
  • یا ، به طور کامل نوشته شده است:
  • =BQL("filter(members('SPX Index'), LAST(ZSCORE(DROPNA(PX_LAST(dates=range(-30d,0d)))))>2) "،" آخرین (Zscore (dropna (px_last (dates = range) (-30d ، 0d))))) "،" showQuery = true ")

با این کار پرس و جو به جای داده ها نمایش داده می شود. دو بخش دریافت می شود و برای:

  • دریافت (چه) برای (چه کسی)
  • get(LAST(ZSCORE(DROPNA(PX_LAST(dates=range(-30d,0d))))) for (filter(members('SPX Index'), LAST(ZSCORE(DROPNA(PX_LAST(dates=range(-30d,0d)))))>2))

ما می توانیم این متن پرس و جو را کپی کرده و آن را در یک سلول خالی جدید بچسبانیم.(از عملکرد "مقادیر خمیر" در اکسل استفاده کنید.) ما می توانیم با تعویض بیت مکرر با یک متغیر ، پرس و جو را تمیز کنیم. متغیرها با یک نماد هش شروع می شوند و با یک رنگ به پایان می رسند. ما اکنون سه بخش داریم ، دریافت می کنیم ، برای:

  • let(#myvar=LAST(ZSCORE(DROPNA(PX_LAST(dates=range(-30d,0d)))));) get(#myvar) for(filter(members('SPX Index'), #myvar>2))

توجه کنید که هیچ کاما بین قطعات اجازه ، دریافت ، و هیچ نقل قول وجود ندارد. ما می توانیم با فشار دادن ALT + Enter ، برای اهداف زیبایی شناسی ، خط بین قطعات را اضافه کنیم. شما باید کل پرس و جو را در یک سلول نگه دارید (مگر اینکه بتوانید از عملکرد Concatenate استفاده کنید).

اگر پرس و جو جدید در سلول A3 باشد ، می توانیم عملکرد BQL. Query را به شرح زیر بنامیم:

  • = BQL. Query ("کل Query") OR = BQL. Query (Cell-Ref)
  • = bql. query (a3)

با هر متغیر در یک ستون ، یک آرایه از داده ها دریافت خواهید کرد.

پشتیبانی

صفحات راهنما برای BQL را می توان در ترمینال بلومبرگ با تایپ BQLX و سپس کلید Enter یافت. آنها صفحه "شروع" ، "مرجع فرمول اکسل" و صفحات برای هر جهان مانند سهام و بودجه را ارائه می دهند.

صفحات منابع شامل پیوندهایی به آموزش های ویدئویی ، برگه های واقعیت ، آموزش و جداول مرجع عملکرد است.

گزینه های باینری...
ما را در سایت گزینه های باینری دنبال می کنید

برچسب : نویسنده : هایده حائری بازدید : <-PostHit-> تاريخ : يکشنبه 29 مرداد 1402 ساعت: 11:53