westonplatter / finx-tracker

Web app to track PnL for options & futures strategies.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

finx-tracker

Web app to track PnL for options & futures strategies.

This codebase aims to

  • do few things well
  • ingest trades & positions from broker
  • allow users to declare portfolio specific strategies
  • expose trades for user to link trades to strategies
  • report PnL on portfolio/strategy/grouping levels

Running

Getting started

Tracker is built in with a soft linking data dependency to finx-reports-ib. The following scripted steps assume that it's setup in a adjacent directory. Checkout the finx-reports-ib for more info on it.

NOTE - if using colima, https://smallsharpsoftwaretools.com/tutorials/use-colima-to-run-docker-containers-on-macos/

mkdir -finx 
cd finx
git clone git@github.com:westonplatter/finx-tracker.git
git clone git@github.com:westonplatter/finx-reports-ib.git
cd finx-tracker.git
docker-compose -f local.yml build
make db.migrate
# run this, cd ../finx-ib-reports && make download.annual && finx-tracker
make import.trades

Importing trades

Run this,

cp ../finx-ib-reports/data/* data
docker-compose -f local.yml run django-cli python manage.py runscript import_trades

Importing positions

Run this,

cp ../finx-reports-ib/data/* data
docker-compose -f local.yml run django-cli python manage.py runscript import_positions

Running the UI

Run this,

make docker.up.django

DB / Migrations

Run this,

docker-compose -f local.yml run django-cli python manage.py makemigrations [optional: app_name]
docker-compose -f local.yml run django-cli python manage.py migrate [optional: app_name]

Test coverage

To run django based tests,

docker-compose -f local.yml run django-cli python manage.py test

License

BSD-v3. See license file

About

Web app to track PnL for options & futures strategies.

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Python 73.9%Language:HTML 16.6%Language:Dockerfile 4.3%Language:Shell 4.0%Language:Makefile 1.0%Language:CSS 0.2%Language:JavaScript 0.0%