GithubHelp home page GithubHelp logo

kyledufrane / abides-jpmc-public Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jpmorganchase/abides-jpmc-public

0.0 0.0 0.0 1.53 MB

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

Python 18.73% Shell 0.02% Jupyter Notebook 81.26%

abides-jpmc-public's Introduction

ABIDES: Agent-Based Interactive Discrete Event Simulation environment

  1. About The Project
  2. Citing ABIDES
  3. Getting Started
  4. Usage (regular)
  5. Usage (Gym)
  6. Default Available Markets Configurations
  7. Contributing
  8. License
  9. Acknowledgments

About The Project

ABIDES (Agent Based Interactive Discrete Event Simulator) is a general purpose multi-agent discrete event simulator. Agents exclusively communicate through an advanced messaging system that supports latency models.

The project is currently broken down into 3 parts: ABIDES-Core, ABIDES-Markets and ABIDES-Gym.

  • ABIDES-Core: Core general purpose simulator that be used as a base to build simulations of various systems.
  • ABIDES-Markets: Extension of ABIDES-Core to financial markets. Contains implementation of an exchange mimicking NASDAQ, stylised trading agents and configurations.
  • ABIDES-Gym: Extra layer to wrap the simulator into an OpenAI Gym environment for reinforcement learning use. 2 ready to use trading environments available. Possibility to build other financial markets environments easily.

(back to top)

Citing ABIDES

ABIDES-Gym: Gym Environments for Multi-Agent Discrete Event Simulation and Application to Financial Markets or use the following BibTeX:

@misc{amrouni2021abidesgym,
      title={ABIDES-Gym: Gym Environments for Multi-Agent Discrete Event Simulation and Application to Financial Markets}, 
      author={Selim Amrouni and Aymeric Moulin and Jared Vann and Svitlana Vyetrenko and Tucker Balch and Manuela Veloso},
      year={2021},
      eprint={2110.14771},
      archivePrefix={arXiv},
      primaryClass={cs.MA}
}

ABIDES: Towards High-Fidelity Market Simulation for AI Research or by using the following BibTeX:

@misc{byrd2019abides,
      title={ABIDES: Towards High-Fidelity Market Simulation for AI Research}, 
      author={David Byrd and Maria Hybinette and Tucker Hybinette Balch},
      year={2019},
      eprint={1904.12066},
      archivePrefix={arXiv},
      primaryClass={cs.MA}
}

(back to top)

Getting Started

Installation

  1. Download the ABIDES source code, either directly from GitHub or with git:

    git clone https://github.com/jpmorganchase/abides-jpmc-public

    Note: The latest stable version is contained within the main branch.

  2. Run the install script to install the ABIDES packages and their dependencies:

    sh install.sh
    

(back to top)

Usage (regular)

Regular ABIDES simulations can be run either directly in python or through the command line

For more examples, please refer to the Documentation

Using a Python Script:

from abides_markets.configs import rmsc04
from abides_core import abides

config_state = rmsc04.build_config(seed = 0, end_time = '10:00:00')
end_state = abides.run(config_state)

(back to top)

Using the abides Command:

The config can be loaded and the simulation run using the abides command in the terminal (from directory root):

$ abides abides-markets/abides_markets/configs/rmsc04.py --end_time "10:00:00"

The first argument is a path to a valid ABIDES configuration file.

Any further arguments are optional and can be used to overwrite any parameters in the config file.

(back to top)

Usage (Gym)

ABIDES can also be run through a Gym interface using ABIDES-Gym environments.

import gym
import abides_gym

env = gym.make(
    "markets-daily_investor-v0",
    background_config="rmsc04",
)

env.seed(0)
initial_state = env.reset()
for i in range(5):
    state, reward, done, info = env.step(0)

Default Available Markets Configurations

ABIDES currently has the following available background Market Simulation Configuration:

  • RMSC03: 1 Exchange Agent, 1 POV Market Maker Agent, 100 Value Agents, 25 Momentum Agents, 5000 Noise Agents

  • RMSC04: 1 Exchange Agent, 2 Market Maker Agents, 102 Value Agents, 12 Momentum Agents, 1000 Noise Agents

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

TODO: add information about JPMC contribution agreement

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the BSD 3-Clause "New" or "Revised" License. See LICENSE for more information.

(back to top)

Acknowledgments

ABIDES was originally developed by David Byrd and Tucker Balch: https://github.com/abides-sim/abides ABIDES is currently developed and maintained by Jared Vann (aka @jaredvann), Selim Amrouni (aka @selimamrouni), and Aymeric Moulin (@AymericCAMoulin). Important Note: We do not do technical support, nor consulting and don't answer personal questions per email.

(back to top)

abides-jpmc-public's People

Contributors

aymericcamoulin avatar jpmsrh avatar selimamrouni avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.