Giter Club home page Giter Club logo

maxe's Introduction

MAXE

A message driven simulator for agent-based models, primarily developed for the simulation of various financial markets. Features, among other things

  • simulation of LOBs with customizable matching algorithm (price-time, pure pro-rata, priority pro-rata, or priority pro-rata)
  • L1, by-order and by-trade logging agents (providing both human-readable and CSV output)
  • Bouchaud's zero-intelligence agent
  • an agent for impact trading
  • a generic interface for design of custom agents
Usage: maxe [OPTIONS] [file] [params...]
  file      the simulation file to be used (default: Simulation.xml)
  params    Parameters to be passed to the simulation configuration & the
            simulation itself

Options:
  -f, --file=STRING          the simulation file to be used (default:
                             Simulation.xml)
  -i, --interactive / --no-interactive
                             runs the simulation in the interactive mode
  -r, --runs=NUM             Number of times the simulation is to be run
                             (default: 1)
  -s, --silent / --no-silent  supresses all verbose trace output, error traces
                             remain enabled

  --help                     Show this message and exit.

Installation

You can build MAXE using the CMake configuration it comes with (CMake 3.15+ required).

On Windows you need

  • cmake 3.15+
  • MSVC 15.7+
  • python on your system (tick the Python C headers options in the installation if not automatically included in your python version)

On Linux (tested with Ubuntu) you need

  • cmake 3.15+
  • GCC 9.0+ (similarly slave g++ of the same version, or manually add filesystem dependency, i.e. #include <experimental/filesystem> and compile with -lstdc++fs), or LLVM Clang 9.0+ (or LLVM 7.0+ and LLVM 8.0+ with the aforementioned experimental and stdc++fs fix)
  • python on your system (preferably with python-all or at least distutils)
  • python-dev for Python C headers

Remember that if you're using Python 3, you will need the python3 equivalents of everything (i.e. python3-all, python3-dev).

On MacOS you need

  • MacOS 10.15 Catalina or newer (for std::filesystem::path support)
  • Xcode 11.0+ (for #include <filesystem> to work, otherwise see the note for LLVM 9.0 above)
  • LLVM Clang 9.0+

To build, say that you already cloned (with --recurse-submodules! Otherwise do git submodule init && git submodule update) the repository into a directory called thesimulator (git default). Then run the following

cd thesimulator

mkdir build
cd build
cmake ../
cmake --build .

MAXE can then be run by executing the TheSimulator executable. Alternatively, CMake GUI can be used on all platforms to configure and generate makefiles (or equivalent on Windows) and then make.

Embedding a Python Script

It's pretty straightforward. See the official Python documentation on the topic for more info.

For pybind11, one needs the pointer width of the Python installation match the pointer width of the compilation output

maxe's People

Contributors

lexected avatar

Watchers

James Cloos 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.