Skip to content

Simulating Heterogeneous Agents with Finance

Notifications You must be signed in to change notification settings

wjt5121/SHARKFin

 
 

Repository files navigation

SHARKFin

Simulating Heterogeneous Agents Research Toolkit) with Finance

Development Installation

SHARKFin depends on Python 3.9 or above.

To check out the code, clone the repository.

git clone [email protected]:sbenthall/SHARKFin.git
cd SHARKFin

You may wish to create and enter a virtual environment.

Then, install the required packages and then the SHARKFin package in development mode:

pip install -r requirements.txt
pip install -e .

Run the automated tests:

python -m pytest sharkfin

Configuration

TBD

Native Python Market Installation

SHARKFin comes with a simple native Python market class, the MockMarket.

The MockMarket has a dividend value that follows a lognormal random walk, and a constant price-to-dividend ratio.

AMMPS Installation

AMMPS is currently closed-source so an ammps binary needs to be acquired.

Running with AMMPS

To run a local simulation:

  1. Start a rabbitMQ server. This is most easily accomplished using the publically available image on dockerhub.
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
  1. Start AMMPS. These instructions assume you have the binary available. In ammps_sharkfin_container, the binaries are in ammps_sharkfin_container/container_contents/ammps_bin Run from ammps_sharkfin_container with:
dotnet container_contents/ammps_bin/amm.engine.dll RunConfFromFile testconfigs/testconf.xlsx working 0 --rabbitMQ-host localhost --rabbitMQ-queue rpc_queue -t true

Refer to AMMPS documentation for parameters and instructions on how to generate the Excel config files.

  1. Run SHARKFin
python simulate/run_any_simulation.py --simulation Attention OUTPUT_PREFIX

NetLogo Installation

For instructions for running with a NetLogo based market, see pnl_market/README.md.

About

Simulating Heterogeneous Agents with Finance

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 64.1%
  • NetLogo 29.5%
  • Python 6.4%