Skip to content

The Allocator helps an asset manager replicate his/her strategy's allocations onto client accounts

License

Notifications You must be signed in to change notification settings

teamshadi/the-allocator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Allocator

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

Usage

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

Alternatives

Check Alternatives

Acronyms

I use the following acronyms in this document

  • EADS: External account data source
  • EPDS: External prices data source

Features

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

Installation

sudo apt-get install nodejs nodejs-legacy npm git mercurial
sudo npm install -g bower
make install

Server-side

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

License

Licensed under the WTFPL. Check LICENSE for the full license text.

Publishing to gh-pages

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

Dev notes

  • Serve pages with php -S localhost:6543 -t www instead of just opening the file with firefox www/index.html to avoid the restricted URI error when trying to get /the-allocator-config.json
  • build docker image: docker build -t shadiakiki1986/the-allocator .

About

The Allocator helps an asset manager replicate his/her strategy's allocations onto client accounts

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages