A simple library for simulating markets in Python
Project description
PyMarket
PyMarket is a python library designed to ease the simulation and comparison of different market mechanisms.
Marketplaces can be proposed to solve a diverse array of problems. They are used to sell ads online, bandwith spectrum, energy, etc. PyMarket provides a simple environment to try, simulate and compare different market mechanisms, a task that is inherent to the process of establishing a new market.
As an example, Local Energy Markets (LEMs) have been proposed to syncronize energy consumption with surplus of renewable generation. Several mechanisms have been proposed for such a market: from double sided auctions to p2p trading.
This library aims to provide a simple interface for such process, making results reproducible.
Getting Started
import pymarket as pm
import numpy as np
r = np.random.RandomState(1234)
mar = pm.Market()
bids = pm.datasets.uniform_bidders.generate(20, 20, 1, 1, r)
for b in bids:
mar.accept_bid(*b)
mar.plot()
Access the bids
bids = mar.bm.get_df()
bids.head()
quantity price user buying time divisible
0 0.2374 1.0234 0 True 0 True
1 0.1784 1.1770 1 True 0 True
2 0.6301 1.5789 2 True 0 True
3 0.1600 1.8008 3 True 0 True
4 0.7920 1.5478 4 True 0 True
Run a market algorithm
transactions, extra = mar.run('p2p', r=r)
transactions = transactions.get_df()
transactions.head()
bid quantity price source active
0 16 0.0000 0.0000 34 True
1 34 0.0000 0.0000 16 True
2 0 0.0000 0.0000 23 True
3 23 0.0000 0.0000 0 True
4 12 0.0786 1.3828 26 False
Documentation and Examples
Docs can be found here (click me!)
Installation
pip install pymarket
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file pymarket-0.7.6.tar.gz
.
File metadata
- Download URL: pymarket-0.7.6.tar.gz
- Upload date:
- Size: 50.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.5.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7147fe3d10170a60ef7b4a9266ded027ee1b77a929caf25f32f46189d67edcc |
|
MD5 | 0fd767815640bb8edc16cea675ba18f6 |
|
BLAKE2b-256 | b6d9519a9be70000b9498e2b3ce76fde1a863aab5d5de4e53cb5575808251501 |