{ "info": { "author": "Jean-Charles Bagneris", "author_email": "jcbagneris@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Topic :: Scientific/Engineering" ], "description": "==============================================\r\nFMS, An agent-based Financial Market Simulator\r\n==============================================\r\n\r\nFMS is (c) 2008-2012 Jean-Charles Bagneris. See LICENSE for redistribution\r\ninformation and usual disclaimer.\r\n\r\nThanks for downloading FMS !\r\n\r\nWhat is FMS ?\r\n=============\r\n\r\nFMS is an agent-based financial market simulator. The intended audience is\r\nfinancial markets researchers and experimentators, looking to simulate various\r\nagents behaviours on different types of markets through the resulting\r\ntransactions on a fictitious asset. Agents, markets and the environment (the\r\n\"world\") are Python classes, derived from abstract ones provided with FMS.\r\n\r\nAs the resulting output (the transactions) is in comma separated values format,\r\nit is easy to use it as an input for whichever processing needed (produce\r\ngraphics, import in spreadsheet, crunch in various statistical procedures, ...)\r\n\r\nFMS is a command line application, configured through very simple flat files. As\r\nyou may write your own agents, markets, engines and world classes, it is as\r\ncustomizable as it could be. But you do not have to be a programmer to use it:\r\nFMS is provided with a comprehensive set of classes ready to use, and there is\r\nmore to come.\r\n\r\nIf you program your own classes, remember these may be of interest for others:\r\nfeel free to drop me an email and to contribute (see `How could I contribute ?`_\r\nbelow).\r\n\r\nWhat FMS is not\r\n===============\r\n\r\nFMS is a simulation tool intended for research only. Thus, FMS is NOT (and will\r\nnot be in the foreseeable future):\r\n\r\n- a game,\r\n- a portfolio management simulation or helper,\r\n- a learning tool intended for classroom use [1]_,\r\n- a shiny GUI application, providing with coloured graphics and multiple drop\r\n down menus, smileys and icons,\r\n- a coffee-machine.\r\n\r\n.. [1] Although FMS intention is not primarily pedagogical, it *might* be useful \r\n in classroom environment with PhD students, for an example.\r\n\r\nRationale and history\r\n=====================\r\n\r\nFMS was primarily developed for my own research projects. The idea came from many\r\nother agent based simulation programs, but the design was especially inspired by\r\nJulien Derveeuw thesis (in french) : Derveeuw J., Simulation multi-agents de\r\nmarch\u00e9s financiers, Universit\u00e9 des Sciences et Technologies de Lille, 2008 (see\r\nhttp://cisco.univ-lille1.fr/papers/ for more information). \r\n\r\nFMS is slightly different than Derveeuw's platform in some ways, mainly because\r\nFMS can simulate a multi-stages market, e.g. with a pre-opening period where\r\norders accumulate, then a fixing, then a continuous order driven market,\r\nstarting with the remaining orders after fixing. In addition, FMS is fully\r\nopen-source (as far as I know, Derveeuw's platform is freely usable, but sources\r\nare not available) and written in Python_, which (in my opinion) is easier to\r\nlearn than Java for researcher whose primary concern is finance, not computer\r\nprogramming.\r\n\r\n.. _Python: http://www.python.org/\r\n\r\nInstall or uninstall FMS\r\n========================\r\n\r\nSee INSTALL file.\r\n\r\nQuick start\r\n===========\r\n\r\nTo use FMS, you first need to install it on your system (obviously). Follow the\r\nINSTALL file instruction, and do not forget to run the tests once you are done.\r\n\r\nThen, you should describe an experiment for FMS to run. Experiments are\r\ndescribed in config file in the YAML_ format, which is hopefully rather easy to\r\nread and write. A minimal configuration file should contain three items with\r\ntheir required parameters: world, engines/markets, agents.\r\n\r\n.. _YAML: http://www.yaml.org/\r\n\r\nWorld\r\n-----\r\n\r\nThis is a \"global environment\" class, providing agents with so called exogenous\r\ninformation on request. Such information might typically be the level of\r\ninterest rates, or energy price, for an example. A NullWorld class is provided\r\nwith FMS, it does not provide any special information.\r\n\r\nEngines/markets\r\n---------------\r\n\r\nThe engines/markets tuples describe what you would simply call \"the market\" in\r\nthe real world. Engines are the \"traffic controlers\" : they give speak to the\r\nagents in a (simulated) synchronous or asynchronous manner, choosing which\r\nagents speak and when at will. For an example, FMS provides with an\r\nAsynchronousRandWReplace engine class, which is asynchronous (market clearing is\r\nrequired as soon as an agent spoke) and chooses agents randomly, with\r\nreplacement. Markets basically are responsible for recording the orders, and\r\ndoing the clearing (for an example, auction style \"fixing\" clearing once in a\r\nwhile, or continuous book based clearing). FMS provides with two basic market\r\nclasses, ContinuousOrderDriven and HighestQtyFixing.\r\n\r\nAgents\r\n------\r\n\r\nAgents act when the engines give them speak. Acting is either do nothing, or\r\nplace an order. Order should at least have a direction (buy or sell) but may in\r\naddition specify price and/or quantity. A ZeroIntelligenceTrader class is\r\nprovided: this agent takes fully random decisions.\r\n\r\nPutting it all together\r\n-----------------------\r\n\r\nOnce you have chosen or written your world, engines/markets and agents classes,\r\nyou describe those and their parameters in the experiment configuration file.\r\nExamples are provided in the docs/examples directory. The yaml syntax is\r\navailable on http://www.yaml.org/. Try with one of the example configuration\r\nfiles in ``docs/examples`` to begin with.\r\n\r\nChoose one of the examples, cd to the config file directory and run::\r\n\r\n\tstartfms.py -v check \r\n\r\nThe ``check`` command is some sort of dry-run : it will perform anything except\r\nrunning the experiment itself. Thus, it will try to find, import and instanciate\r\nall the classes in your config file, which is probably the best way to check it.\r\nThe -v option is the verbose one, hopefully outputting clever error messages if\r\nsomething went wrong. If it went ok, then run::\r\n\r\n\tstartfms.py -v run \r\n\r\nThis will really run the experiment, outputting transaction data either on the\r\nconsole or in a comma separated value file, depending on your configuration\r\nfile.\r\n\r\nWhat now ?\r\n==========\r\n\r\nIf you read all this, then you certainly have a good reason to use FMS. If the\r\nworld, engines, markets and agent classes included in FMS do not meet your\r\nneeds, then you may either write yours, or even (politely) require us to write\r\nit for you. Of course, your problem has to be interesting enough for us to do\r\nthis, and the resulting classes would be part of FMS next release. By the way,\r\nif you write yourself an interesting class for FMS, please submit it for\r\ninclusion (you would of course be credited for your work).\r\n\r\nHow could I contribute ?\r\n========================\r\n\r\nReport bugs, write new classes, translate documentation, write documentation and\r\nadditional example, request new features, watch or fork `the project`_, use FMS and\r\nlet people know you use it. Think of other ways to contribute. Thank you :)\r\n\r\n.. _the project: http://github.com/jcbagneris/fms/", "description_content_type": null, "docs_url": "https://pythonhosted.org/fms/", "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/jcbagneris/fms", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "fms", "package_url": "https://pypi.org/project/fms/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/fms/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/jcbagneris/fms" }, "release_url": "https://pypi.org/project/fms/0.1.9/", "requires_dist": null, "requires_python": null, "summary": "A Financial Market Simulator", "version": "0.1.9" }, "last_serial": 709747, "releases": { "0.1.8": [ { "comment_text": "", "digests": { "md5": "d95a7b03bfd8c4966e317535285d6bb5", "sha256": "fc8b823db3e8086800d22a2abdad1062c5d508d34b52ad0d3a6678d4ecbc8d49" }, "downloads": -1, "filename": "fms-0.1.8-py2.6.egg", "has_sig": false, "md5_digest": "d95a7b03bfd8c4966e317535285d6bb5", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 61731, "upload_time": "2011-06-07T12:53:36", "url": "https://files.pythonhosted.org/packages/af/13/c2369e34282b6a0e0b6381a6c337f68f495338eacc4249e3742f1d5d9cb7/fms-0.1.8-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "3bbb77c8467d6cb789bebf72c4040bc9", "sha256": "8d5758260df4acf470e52d33dbcd5cf96b7387ff6db3e3348481d9546b7401ff" }, "downloads": -1, "filename": "fms-0.1.8.tar.gz", "has_sig": false, "md5_digest": "3bbb77c8467d6cb789bebf72c4040bc9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 198748, "upload_time": "2011-06-07T12:53:22", "url": "https://files.pythonhosted.org/packages/71/97/5bae702b337a39818676cf961593acd961c27091a2ec1c2d74bc1e26ad7c/fms-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "c3cfc9c6e2589cfa506af2502e46006d", "sha256": "d3730d33a7e34f88ad1345d95500264a3756949fee87d475ee69418bd19b5689" }, "downloads": -1, "filename": "fms-0.1.9-py2.7.egg", "has_sig": false, "md5_digest": "c3cfc9c6e2589cfa506af2502e46006d", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 62758, "upload_time": "2012-03-01T08:26:00", "url": "https://files.pythonhosted.org/packages/56/5f/26cb20e43fd92213cf126deeeeeb0bf9bad65bebdaeedefd7be0e2826227/fms-0.1.9-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "e38ec520907ea8dd799923c27fb3ab9b", "sha256": "ba23da7dd811f28e601ba03bee46576f6e2b53501fad19d510617591d8c2c3d7" }, "downloads": -1, "filename": "fms-0.1.9.tar.gz", "has_sig": false, "md5_digest": "e38ec520907ea8dd799923c27fb3ab9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 181894, "upload_time": "2012-03-01T08:25:44", "url": "https://files.pythonhosted.org/packages/d4/d6/6f76d0345350e66384348a954952e90165bfdc42905c0ebba4bc149dce7d/fms-0.1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c3cfc9c6e2589cfa506af2502e46006d", "sha256": "d3730d33a7e34f88ad1345d95500264a3756949fee87d475ee69418bd19b5689" }, "downloads": -1, "filename": "fms-0.1.9-py2.7.egg", "has_sig": false, "md5_digest": "c3cfc9c6e2589cfa506af2502e46006d", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 62758, "upload_time": "2012-03-01T08:26:00", "url": "https://files.pythonhosted.org/packages/56/5f/26cb20e43fd92213cf126deeeeeb0bf9bad65bebdaeedefd7be0e2826227/fms-0.1.9-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "e38ec520907ea8dd799923c27fb3ab9b", "sha256": "ba23da7dd811f28e601ba03bee46576f6e2b53501fad19d510617591d8c2c3d7" }, "downloads": -1, "filename": "fms-0.1.9.tar.gz", "has_sig": false, "md5_digest": "e38ec520907ea8dd799923c27fb3ab9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 181894, "upload_time": "2012-03-01T08:25:44", "url": "https://files.pythonhosted.org/packages/d4/d6/6f76d0345350e66384348a954952e90165bfdc42905c0ebba4bc149dce7d/fms-0.1.9.tar.gz" } ] }