събота, октомври 20, 2007

Портфейл от взаимни фондове в Google

Вложителите в български взаимни фондове неминуемо се сблъскват с въпроса как се развиват парите им. И докато повечето управляващи дружества предлагат някакъв портфолио трекинг, винаги има какво още да се желае.

Някои дружества предпочитат да използват емисионната стойност, вместо тази на обратно изкупуване, за изчисляване на текущата стойност на вложенията. В резултат сумата е малко по-голяма от тази, която биха изплатили, ако позицията се ликвидира днес. Но аз искам сумата сега.

Дори и така, въвеждането на пароли си е досада, а обикалянето на всички управляващи дружества е вече прекалено.

Това, което искам, е да имам на БПЛ (Бързо-Просто-Лесно) разположение информация за целия си портфейл, на едно място. Като един хоби-инвеститор, достатъчно ми е да знам колко съм вложил, колко струват вложенията ми в момента и колко е печалбата. С други думи, искам следния модел:


Минимум входни данни са:


  • стойността на закупуване (колко пари са вложени)

  • цената на закупуване (емисионна стойност на един дял при покупка)


За простота ще приемем, че доходността е разликата между текущата стойност и вложената сума, разделена на вложената сума, в проценти. Така, ако 1000 лв. са станали 1100, доходността е (1100-1000)/1000 = 10 %.

Самите формули едва ли са интрига, затова няма да се спирам на тях. Само ще спомена, че свикналите да боравят с области (рейнджове, ranges), ще ги открият в таба с формулите.

Всъщност големият проблем е откъде да вземем данните, и как да ги импортираме.

Инвестор.бг предлага страница със актуални стойности за много взаимни фондове. А Google Docs - възможност за импортиране. Това, което трябва да направим, е да импортираме страницата от инвестор.бг, да намерим интересуващите ни цени, и да ги поставим в съответната клетка.

Сега лошите новини. Засега, табличната структура на споменатата страница се оказва твърде сложна за директно импортиране с importHtml, така че се налага да прибегнем до по-универсалното, но и по-сложно importXML. importXML позволява по-прецизно изсмукване на подходящи данни, но прецизирането се извършва с заявка на XPath - езикът за адресиране на части от XML документи (за да бъдем максимално честни, интернет страниците не са точно XML документи, но приличат достатъчно за да бъде XPath приложим). Това, в прости случаи, може да е наистина просто: например, ако файловете в диска се запишат като XML документ, файлът C:\cheffo\projects\blog\potfoglio.doc би се адресирал с нещо като /c/cheffo/projects/blog/portfoglio.doc. За по-сложните случаи човек най-добре да се консултира със специалист.

За да бъдат нещата по-лоши, оказва се че Google не се погажда добре с кирилицата на инвестор.бг, така че идеята за заявка на XPath, която търси обратното изкупуване по името на фонда засега е неосъществима. Като временна мярка, можем да ползваме началото на публично предлагане, което за мен върши чудесна работа. Наистина, има фондове, които са започнали публично предлагане заедно, и за тях предлаганият XPath е необходимо да се пооправи.

Самият XPath изглежда така: //table[@id='table_data']/tr//div[text()='11.07.2007']/../../td[4] и означава следното: "в таблицата с id table_data намери текст 11.07.2007; две нива над него, в четвъртия td се намира търсената стойност. В клетка G2 попълвам следната формула: =(importXML("http://kompanii.investor.bg/?cat=155",concat("//table[@id='table_data']/tr//div[text()='",concat(H2,"']/../../td[4]")))).

Сега - на работа. Като пример ще допуснем, че сме взели дялове за по 1000 лева от първите три фонда по азбучен ред. Разбира се, това не е съвет за покупка или продажба.. Попълвам стойностите за цена на покупка за петък, 19 октомври 2007 и готово:



Така създаденият портфейл ще бъде преизчисляван на всеки няколко часа, автомагически. В случая на взаимни фондове, това е напълно достатъчно.

Споделил съм и изглед към готовия портфейл.

Няма коментари: