npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

market-agents

v5.0.0

Published

pool of heterogeneous robot trading agents for economic or financial simulations

Downloads

196

Readme

market-agents

Build Status Coverage Status

Provides EventEmitter Agent framework for robot trading in economic and financial simulations

Breaking Changes for v5

Module changes

v5 is ESM whereas versions 4 and earlier were commonjs.

removing babel dependencies

v5 is not compiled with Babel

Programmer's Documentation

The JSDoc documentation for market-agents is automatically generated from the source code of this module.

Installation

npm install market-agents --save

Initialization

import * as MarketAgents from 'market-agents'; // ES6
// or
const MarketAgents = require('market-agents'); // CJS
// unpack some constructors
const { Agent, ZIAgent, Pool } = MarketAgents;

Agent Event Reference

wake

Parameters: info

Emitted-By: Agent.prototype.wake

When: when Agent.wake(info) is called.

Note: this.wakeTime contains the current official agent time. The event is triggered before calculating the new wakeTime. Use this for: agent strategy (placing bids, asks, responding to others bids/asks)

pre-transfer

Parameters: myTransfers, memo

Emitted-By: Agent.prototype.transfer

When: before modifying the agent's inventory

Use this for: altering or removing transfers before they occur

post-transfer

Parameters: myTransfers, memo

Emitted-By: Agent.prototype.transfer

When: after modifying the agent's inventory

Use this for: logging transfers, taking other actions after the transfer

pre-period

Parameters: None

Emitted-By: Agent.prototype.initPeriod

When: after new period information has been copied to agent

Use this for: additional agent set up at the beginning of every period

post-period

Parameters: None

Emitted-By: Agent.prototype.endPeriod

When: after all period activities, produce and redeem, have completed

Use this for: any final agent accounting, profit capture, cleanup, etc. before ending the period

pre-redeem

Parameters: trans

Emitted-By: Agent.prototype.redeem

When: Typically at end of a period, after a redemption transfer has been calculated, but before the transfer takes place

Use this for: modifying the redemption transfer

post-redeem

Parameters: trans

Emitter-By: Agent.prototype.redeem

When: after a redemption transfer has been processed and added to the agent's inventory

Use this for: logging redemption amounts, taking other actions after a redemption

pre-produce

Parameters: trans

Emtited-By: Agent.prototype.produce

When: Typically at the end of a period, after a production transaction has been calculated, but before the transfer

Use this for: modifying the production transfer

post-produce

Parameters: trans

Emitted-By:Agent.prototype.produce

When: after a production transfer has been processed and added to the agent's inventory

Use this for: logging production amounts, taking other actions after production

Trader Events

Trader registers ziAgent.Prototype.sendBidsAndAsks as the first responder to the Agent Wake event.

Trader subclasses (e.g. ZIAgent, etc.)

inherit Agent and Trader events and behavior

Pool Events

Pool is not an EventEmitter of its own.

Instead, several Pool methods call methods on all agents in the Pool, triggering related Agent events.