Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

A simple library for simulating markets in Python

Project description

PyMarket

Build Status

Documentation Status

PyPI version

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()

png

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pymarket, version 0.7.6
Filename, size File type Python version Upload date Hashes
Filename, size pymarket-0.7.6.tar.gz (50.6 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page