четверг, 9 мая 2013 г.

Исторические данные из Bloomberg


Набросал небольшую, но полезную утилиту, которая умеет скачивать историю по различным инструментам, доступным в Bloomberg, при наличии доступа к терминалу. Исторические данные сохраняются в .csv файлы, которые потом легко импортируются в AmiBroker.



Как ей пользоваться покажу на примере. Допустим требуется проанализировать состояние российской экономики и её текущие тенденции. Исследование будет строиться на основе индикаторов доступных в Bloomberg. Найдём их, использую поиск по ключевому слову.


  1. Скачать файл BloombergDL.zip Разархивировать в папку c:\blp\
  2. Перетаскиваем список тикеров/идентификаторов индексов в файл _TICKERS.csv
  3. Запускаем BloombergDownloader.exe
  4. Нажимаем кнопку подгрузки тикеров. Даты и периодичность можно оставить по умолчанию.
  5. Жмём GetHistory для начала массовой загрузки и ждём результат. В нижнем окошке будет извещаться о состоянии процесса в таком виде:

Ticker list is loaded.

Start downloading...

RUDPRYOY Index   ( Russia GDP 2008 Const Prices Y )  done.

RUIPRNYY Index    ( Russia Industrial Production 2 )  done.

RUCPIYOY Index    ( Russia CPI YoY )  done.

RREFRATE Index     ( Russia Refinancing Rate )  done.

RUREFEG Index ( Russia Foreign Exchange and Go )  done.

RREFRANN Index    ( Russia Refinancing Rate Announ )  done.

RUUER Index      ( Russia Unemployment Rate )  done.

RUWCYTD Index     ( Russia CPI Weekly Year-to-Date )  done.

RURSRYOY Index   ( Russia Retail Sales Real YoY )  done.

RUDPGL Index   ( Russia GDP Nominal Prices )  done.

GDDBRUSS Index    ( Russia Debt as a Percentage of )  done.

RUCACAL Index      ( Russia Current Account )  done.

RUWCWOW Index   ( Russia CPI WoW Daily )  done.

RU.POLANC RUCB Index  ( Russia Policy Rates (Announced )  done.

RUCPIMOM Index   ( Russia CPI MoM )  done.

RU.GDP RUST Index     ( Russia Real GDP by Expenditure )  done.

RUMEREAL Index   ( Russia Real Monthly Wages YoY )  done.

RUZ1CANY Index    ( Russia Monthly Investment In P )  done.

RUCNCNCF Index   ( Russia Consumer Confidence Ove )  done.

RFBCMANU Index   ( Russia Business Confidence Man )  done.

RRBDODRA Index   ( Russia Central Bank Overnight )  done.

RMSNM1 Index   ( Russia Money Supply Narrow Def )  done.

ECGDRU 13 Index    ( Russia GDP Economic Forecast ( )  done.

RUMN1D Index  ( Central Bank of Russia Repo Au )  done.

RUTBAL Index   ( Russia Merchandise Trade Balan )  done.

922.046 Index ( IMF Russia Gold in Mill Fin Tr )  done.

RU.CPI RUST Index ( Russia CPI )  done.

RU.INPROD RUST Index    ( Russia Industrial Production ( )  done.

WIRARUSS Index    ( Intl Reserve Assets Excluding )  done.

RUTBEX Index   ( Russia Merchandise Trade Expor )  done.

RUGAGDRY Index  ( Russia Annual GDP 2008 Constan )  done.

RUAUTOTL Index    ( Russia Car Sales Total )  done.

RUCPBI Index     ( Russia Core CPI MoM )  done.

RUAUTTYY Index   ( Russia Car Sales YoY )  done.

RURFUSD Index ( Russia Reserve Fund USD )  done.

RRBDOREP Index    ( Russia Central Bank Overnight )  done.

RUIPBEER Index      ( Russia Manufacturing Output Be )  done.

OLE3RUSS Index     ( OECD Russia Composite Leading )  done.

RUMSM2YY Index   ( Russia Money Supply M2 YoY )  done.

RUGNGDNL Index  ( Russia Annual GDP Current Pric )  done.

RUTRBALM Index   ( Russia Trade Balance )  done.

RUDPRQOQ Index   ( Russia GDP 2008 Constant Price )  done.

ECPIRU 13 Index      ( Russia CPI Economic Forecast ( )  done.

RUPPNEWY Index   ( Russia PPI 2000=100 YoY )  done.

RUMERDIY Index    ( Russia Monthly Earnings Real D )  done.

RURSRMOM Index  ( Russia Retail Sales Real MoM )  done.

BISBRUR Index  ( Russia Real Effective Exchange )  done.

RU.BNKBAL.ASST RUCB Index   ( Russia Bank Balance Sheets Ass )  done.

RUFGGFML Index   ( Russia International Reserves )  done.

RUFIDRL Index  ( Russia Foreign Investment Dire )  done.

RU.UNEMP% RUST Index  ( Russia Unemployment Rate )  done.

RU.HPRICE.RU-MOW ACRU Index   ( Russia House Prices Moscow )  done.

RU.EXPORT RUCB Index   ( Russia Exports (Nominal/Value) )  done.

WCAURUSS Index   ( Bloomberg Russia Exchange Mark )  done.

RUCPBYTD Index    ( Russia Core Inflation Year to )  done.

RURRPRC Index ( Russia Moscow Property Prices )  done.

RU.GDPA RUST Index  ( Russia Annual Real GDP by Expe )  done.

RU.RESERV RUCB Index   ( Russia International Reserves )  done.

RUCPNL Index   ( Russia CPI 2000=100 )  done.

RUFRON Index   ( Central Bank of Russia Fixed R )  done.

OERUA046 Index     ( OECD Russia Comp Leading Indic )  done.

RU.EXDEBT RUCB Index   ( Russia External Debt )  done.

RUBUCFBA Index   ( Russia Federal Budget Cumulati )  done.

RUMSM2 Index   ( Russia Money Supply M2 )  done.

RUMSMBS Index      ( Russia Monetary Base )  done.

RUIEEGAS Index     ( Russia Export of Natural Gas i )  done.

RUCPTYTD Index    ( Russia CPI Total Year-to-Date )  done.

RU.CAPINV RUST Index    ( Russia Capital Investment )  done.

RUWFUSD Index      ( Russia Wellbeing Fund USD )  done.

RU.CPI.ELEC RUST Index  ( Russia CPI Electricity Supply )  done.

IPOPRUS Index   ( IMF Russia Population )  done.

RU.TRADE RUFC Index      ( Russia International Trade Bal )  done.

RUTBIM Index    ( Russia Merchandise Trade Impor )  done.

RU.PPI.F23O RUST Index   ( Russia Producer Prices (Output )  done.

RUCACF Index   ( Russia Balance of Payments Cap )  done.

RU.POLEFF RUCB Index    ( Russia Policy Rates (Effective )  done.

RUCPFYOY Index    ( Russia CPI Food YoY )  done.

RUFR1W Index   ( Central Bank of Russia Fixed R )  done.

RU.FGNINV.BF83 RUST Index      ( Russia Foreign Investment Fore )  done.

IGDSRUS Index  ( IMF Russia General Government )  done.

RUIPRNMM Index   ( Russia Industrial Production 2 )  done.

RUFGFTRL Index     ( Russia Foreign Exchange Reserv )  done.

RUIPBYOY Index    ( Russia Manufacturing Output Be )  done.

RU.CCONF RUST Index      ( Russia Consumer Confidence )  done.

RU.RESERV.GOLD RUCB Index  ( Russia International Reserves )  done.


  1. После того, как дождались все фалы, делаем их импорт в AmiBroker по такому формату:
# Format definition file generated automatically

# by AmiBroker's ASCII Import Wizard

$FORMAT Date_DMY, Time, Close, Open, High, Low, Volume, Aux1, Aux2, Skip, Skip, Fullname

$SKIPLINES 1

$SEPARATOR ;

$CONT 1

$GROUP 1

$AUTOADD 1

$DEBUG 1

$ALLOWNEG 1

Поля, по усмотрению, меняются местами, особенно при этом желательно задействовать Aux1 и Aux2, которые изначально предназначались для Bid и Ask. Но в данном случае их можно использоваться для каких-то своих кастомных настроек, вроде коэффициентов PX_TO_BOOK_RATIO или числа упоминаний в ленте новостей на определённый день NEWS_HEAT_PUB_DMAX. Список возможный полей можно посмотреть в терминале набрав команду FLDS. Файл формата BloombergDL.format прилагается, его необходимо скопировать в папку типа \AmiBroker\Formats\ и затем выполнить импорт скаченных .csv файлов во вложенной папке Data через пункт меню ImportASCII…

Чтобы изобразить сколько угодно графиков в одном окне воспользуемся такой AFL функцией:

function CreateAverageForWatchList( listnum )
{
   // retrive comma-separated list of symbols in watch list
   list = CategoryGetSymbols( categoryGroup, listnum );

   Average = 0; // just in case there are no watch list members

   for( i = 0; ( sym = StrExtract( list, i ) ) != ""; i++ )
   {
      f = Foreign( sym, "C" );
      if( i == 0 ) Average = f;
      else Average = Average + f;
       SetForeign(sym);
       Plot( f, FullName(), i + 11, styleOwnScale | styleThick );
   }
   return Average / i; // divide by number of components
}

Plot( CreateAverageForWatchList( 1 ), "Composite Index", colorBlack, styleLine|styleThick );


Получился, конечно, каламбур, но зато наглядный пример того, как по-быстрому можно загрузить  большой объём необходимых данных для дальнейшей обработки.



Программа распространяется как есть, as is. В дальнейшем надеюсь получится сделать более продвинутый и функциональный плагин непосредственно интегрированный в платформу AmiBroker.

Комментариев нет:

Отправить комментарий