Overview

General Information

jMarkets is a java-based web application which implements continuous double-sided electronic markets and supports multiple concurrent markets. A market session can be configured intuitively by going through a set of html forms and initialized simply by a click of button from a java-enabled browser. A client can connect to the jMarkets server and participate in a running market session from any java-enabled (1.5.x or higher) browser. The software is packaged as a WAR file which can be easily deployed under any J2EE compliant web application container.
arch.png

Market Features

General

  • Continuous and Call Market Support: Supports both continuous and call market formats. A session can contain one or more trading periods in either format.
  • Different levels of Order Information Control: Supports both open and closed book markets. In an open-book market session, traders see all orders, whereas in a close-book session, the traders only see their own order.
  • Choices of Payoff and Bankruptcy Function: Provides a simple API for developing new payoff and bankruptcy functions, thus allowing for easy customization of types of markets that the system can support.
  • Transaction Management: Leverages both JDBC built-in and its own transaction management APIs to guard various market transactions.
  • Backlog Cooling: If the number of orders waiting to be processed by the server exceeds a certain limit, the server stops accepting new orders so it can "cool down" and process all waiting orders. This prevents the server from being overwhelmed by sudden rushes of orders.
  • Multiple Concurrent Market Sessions: Supports multiple concurrent market sessions.
  • Flexible Market Role Assignment: A trader can be a buyer, a seller or both in a period. A trader can have different roles in different markets in the same period.
  • Constraint Regulated Trading: An offer can only be submitted to the server if it satisfies both the short-sale constraint and bankruptcy cutoff rules specified for that trader. A message will be displayed if a trader tries to submit an offer that violates one or more of the rules.
  • Cash Carry Over: A client's cash balance can be either carried over from one trading period to the next or realized at the end of the period by adding the amount to the client's accumulative payoff for the experiment.
  • Asset Carry Over: A client's holdings of different assets in a period can be carried over either directly or as dividend from one trading period to the next. Alternatively, the holdings can be realized at the end of the period by converting to cash and subsequently adding to the client's accumulative payoff for the experiment.

Market Monitor and Configuration

admin-2.png

  • Real-Time Experiment Monitoring: The experimenter interface provides real-time updates on subject connectivity and market activities, including price movement, during an experiment.
  • Choice of Experiment to Monitor: The experimenter interface allows the experimenter to choose an experiment from a list of his/her own running market sessions to monitor.
  • Experiment Output: Experimenter can download a csv-based experiment report, which includes all trading activities in a market session, by choosing from a list of previously run experiments.
  • Web-Based Experiment Configuration: Experiments are configured through a set of easy-to-use web forms, which allows experimenters to configure securities, initial holdings, and every other aspect of the experiment. The configurations can then be saved in XML and loaded into the system later, so that experiments do not need to be re-created each time they are run.

Trader Interface

trader-1.png

  • Two Subject/Trader Interfaces: The system supports two point-and-click client interfaces. Simplicity and convenience is emphasized throughout the design of the client GUI. No typing is required for submitting, updating or canceling an offer.
  • Client Side Real-Time Market Updates: The color of a price-level cell will flicker and change or an arrow will appear on either side of the market bar, depending on which trading GUI one chooses, to reflect trading activities in real time. Security and cash holdings will be updated automatically on a client GUI.
  • Client Re-authentication: A client can re-join a running session at any time by logging in again and his holdings and standing offers will be restored.
  • Client Orderbook: The client screen displays a table showing all the standing orders submitted by this client on each security in the current period.
  • Client Transaction Table: The client screen displays a table showing the transactions with which this client was involved in the current period.
  • Client Earnings Table: The client screen displays a table showing how much the client has earned in each period on each security, including the total payoffs.
  • Real-Time Price Chart: A price chart on the client interface displays price movements of each security over real-time.
  • Best Price Buttons: Best buy/sell buttons for each security allow traders to quickly hop to the best offers on either side of the market, so that they don't have to waste time scrolling around trying to find where all the action is taking place.
  • Past Order and Transaction Caching: Both order and transaction panels can keep history from past trading periods if instructed to do so.

System Features

  • Database Agnostic: jMarkets has its own object-relational component for the persistence layer which allows for plug-in of vendor neutral relational databases for the backend storage. This allows users to leverage existing resources without having to purchase new database hardware and software.
  • Platform Neutral: jMarkets can be deployed on any host as long as it supports JRE 1.5.x or higher.