An Agent-Based Financial Platform
ATOM est une plateforme de simulation de marchés financiers écrite en Java, puissante aussi bien d'un point de vue fonctionalités (multi-agents, multi-orders, multi-assets, intra and extra days, several price fixing, etc ...) que d'un point de vue rapidité. atomPython est une version très simplifiée, écrite en Python à des fins pédagogiques. Elle ne traite notamment qu'un seul ordre (LimitOrder), ne possède qu'une fixation de prix en continu et ne permet pas de multi-day. Elle est néanmoins multi-agents et multi-assets ce qui permet de nombreuses expériences sur les marchés artificiels.
Plusieurs notebooks sont fournis afin de se familiariser avec cette plateforme
Team : P Mathieu, R Morvan, A Fleury (CRISTAL Lab, SMAC team, Lille University) , O Brandouy (Gretha, Bordeaux University)
Contact : philippe.mathieu at univ-lille.fr
A notebook to see the full range of the possibilities offered by this atom python version
Notebook d'introduction à la manipulation de cette plateforme
Notebook d'introduction à l'écriture de code avec cette plateforme
atom.py: main file, atom core
testatom.py: a simple test file to see the basis of what atom can do
Atom.ipynb: A notebook to see the full range of the possibilities offered by atom
Agents.ipynb: A notebook introduicing agents that are more "evolved" than simple ZITs
DeterministicArtificialTraders.ipynb: A notebook introduicing the three different kind of Deterministic Artificial Traders that are described in "A deterministic behaviour for realistic price dynamics
OrderExecution.pdf/tex: A short description about why it seems that there doesn't exist a total order on the set of limit orders that gives the permutation in which a sequence should be executed in order to maximize a given welfare
OrderExecution.ipynb: A notebook showing the code used to find counterexamples used in OrderExecution.pdf
DrawOrderBooks.ipynb: A notebook that generates some tikz code to draw an orderbook read in a trace file
DrawOrderBooks.ipynb should not be run before OrderExecution.ipynb, as the latter generates a trace.dat file that is read by the first notebook
binary_heap.py: A Python implementation of binary heaps used by atom.py
data_processing.py: Some functions that makes reading a trace file easier
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.