The Allocator helps an asset manager replicate his/her strategy's allocations onto client accounts
It is published at http://shadiakiki1986.github.io/the-allocator/
For app help, check the repository's wiki
A dockerfile is included in the repository for hosting in-house.
It is on docker hub with docker pull shadiakiki1986/the-allocator
Below I describe two main usages: vanilla and with custom config.
The config file is for the backend (details below).
It has references to the backend URL such as http://the-allocator-backend/getServer.php
To run against a sample backend, check the-allocator-backend-sample
To run with docker
- vanilla:
docker run --rm -p 6543:80 shadiakiki1986/the-allocator
- With custom config file:
docker run --rm -p 6543:80 -v $(pwd)/path/to/the-allocator-config.json:/usr/share/nginx/html/the-allocator-config.json shadiakiki1986/the-allocator
To run with docker-compose
- vanilla
allocator:
image: shadiakiki1986/the-allocator
- with custom config file for the backend (details below), using
docker-compose
: check the-allocator-backend-sample
Check Alternatives
I use the following acronyms in this document
- EADS: External account data source
- EPDS: External prices data source
The following list of features is as of ''2015-10-11''
- add accounts manually or linked to EADS
- gets "average cost" for a security for the "performance" field
- add securities for allocation
- prices
- automatic price update for securities from EADS
- or fetching prices for specified date from EPDS
- shows "try again" if EADS or EPDS unavailable
- or can fetch "latest" prices from EPDS
- Management of prices by deleting old/new prices when more than 1 price is available for a security
- single-button select of security price dates (latest or other available date) .. also can automatically set to last available before this date
- lists trades required for meeting allocation
- add multiple strategies for different accounts
- app data
- save locally and to server
- app versioning and data versioning
- UI alert when server fails to save to server
- saving to server requires submitting the current data version, which should match with the current data version on the server, and which fails if not
- Can set performances for strategies and accounts
- Account performance is time-weighted return
- Editing a security has "Test ISIN from EPDS"
- Partial redemption / subscription
- Trades default view, pooled by security/sign (buy or sell), single account
- Incorporating currencies of securities into total funds
- as of today (2015-10-10), for accounts from EADS, FX rates come straight from EADS and are treated like the number of shares
- each security in its own currency
- returned price from EPDS now includes quoted currency
- alert if mismatching currencies between allocations from EADS and prices from EPDS or inconsistency in any of these two
- only server interaction for EPDS prices and EADS positions
- can set a "manual" class for a security that is not overridden by the EADS refresh (which overrides the "original" class)
- Check server-side below for a list of features that are server-side and which can be configured in the app
- automatic config loaded if the app finds
/the-allocator-config.json
on the server (only works when app is installed on local server, and not githubpages used) - Strategy performances take into account the inception/current dates and correct the "SI" performance using the "annualized" performances entered
- Redemption / Subscription trades will also include rebalancing to save on trading costs
sudo apt-get install nodejs nodejs-legacy npm git mercurial
sudo npm install -g bower
make install
The app can fetch/submit data to external sources accepting the corresponding data structures. The external sources are API end-points installed on a server. They can augment the app's features with the following:
- saving the app data to the server to be shared with other users of the app
- Note that this API end-point requires the data as well as the parent data version
- fetching account data from an EADS (check Acronyms section at top)
- fetching prices from an EPDS (check Acronyms section at top)
- exporting the server-saved data to excel
I will write more on the API end-points data format later
Licensed under the WTFPL. Check LICENSE for the full license text.
First checkout of remote branch locally
git checkout -b gh-pages origin/gh-pages
Copying files from master to gh-pages
make publish
If there were any "new" files that were added, a "git add" is needed in "gh-pages" branch followed by a commit and push
Finally, return to master branch
git checkout master
- Serve pages with
php -S localhost:6543 -t www
instead of just opening the file withfirefox www/index.html
to avoid therestricted URI
error when trying to get/the-allocator-config.json
- build docker image:
docker build -t shadiakiki1986/the-allocator .