Open source software platform for trading venues

Related tags

java finance trading exchange
Overview

Parity

Parity is an open source software platform for trading venues. It can be used to run a financial marketplace, develop algorithmic trading agents, or research market microstructure.

Parity requires Java Runtime Environment (JRE) 8 or newer.

Download

See the latest release on GitHub.

Modules

Parity contains the following applications:

  • Parity Trading System is a server application for running a financial exchange.

  • Parity FIX Gateway is a server application that adds Financial Information Exchange (FIX) support to the trading system.

  • Parity Terminal Client is a simple console application for entering orders into the trading system.

  • Parity Stock Ticker is a simple console application that displays the best prices and latest trades in the trading system.

  • Parity Trade Reporter is a simple console application that displays all occurred trades in the trading system.

See the Wiki for additional applications.

Parity contains the following libraries:

Parity contains the following test applications:

Build

Build Parity with Maven:

mvn package

Links

For more information on Parity:

License

Copyright 2014 Parity authors.

Released under the Apache License, Version 2.0. See LICENSE.txt for details.

Issues
  • FIX API

    FIX API

    Market participants should be able to enter orders using the FIX protocol.

    enhancement 
    opened by jvirtanen 16
  • Matching engine performance tests using JMH

    Matching engine performance tests using JMH

    This adds microbenchmarks for the matching engine using JMH.

    To run it, type:

    mvn install

    and then:

    java -jar parity-perf-test/target/microbenchmarks.jar

    Signed-off-by: Pekka Enberg [email protected]

    opened by penberg 11
  • REST API

    REST API

    Market participants should be able to enter orders using HTTP.

    enhancement 
    opened by jvirtanen 9
  • Do not depend on Foundation

    Do not depend on Foundation

    One of Parity's dependencies is Foundation. It would be nice if Parity didn't have this dependency.

    enhancement help wanted 
    opened by jvirtanen 9
  • Market Maker ID in Book

    Market Maker ID in Book

    Can you add market maker to the book.

    enhancement 
    opened by sirinath 9
  • Foreign exchange instruments

    Foreign exchange instruments

    The data type for prices in PMD, PMR and POE is a 32-bit unsigned integer with a six-digit integral part and a four-digit fractional part. This accuracy is not enough for foreign exchange instruments, including Bitcoin-related instruments.

    To accommodate foreign exchange instruments, the number of digits in the fractional part should be made configurable. Furthermore, the data type for prices could be changed to a 64-bit unsigned integer.

    enhancement 
    opened by jvirtanen 8
  • Network protocols

    Network protocols

    An exchange needs an order entry protocol and a market data protocol. Most marketplaces have proprietary binary protocols.

    Following the example, we could have an order entry protocol that is simplified from NASDAQ OUCH and a market data protocol that is simplified from NASDAQ ITCH. Furthermore, we could use SoupBinTCP as a transport for the order entry protocol and MoldUDP64 as a transport for the market data protocol.

    enhancement 
    opened by jvirtanen 7
  • Incorrect price in Marketreporter.java        orderEntered.price       = price;

    Incorrect price in Marketreporter.java orderEntered.price = price;

    MarketReporter.java in orderEntered method is showing incorrect price in orderEntered.price = price;

    For a price of 100, its printing 10000 with 2 leading Zero

    However ticket is showing the correct price

    Does it require some unpack?

      System.out.println(ASCII.unpackLong(side) +  " Order: " + orderNumber + 
        		" Entered by: " + ASCII.unpackLong(username) + 
        		" for symbol " + ASCII.unpackLong(instrument) +
        		" at Price " + price + " for Quantity " + quantity);
    
    opened by anujnetwork 5
  • Package Parity programs as executables

    Package Parity programs as executables

    Use the following plugin to package Parity programs as executables:

    https://github.com/brianm/really-executable-jars-maven-plugin

    You can now, for example, start Parity System with:

    ./target/parity-system etc/devel.conf

    opened by penberg 4
  • Remove Config Extras dependency

    Remove Config Extras dependency

    opened by jvirtanen 0
  • support post-only orders

    support post-only orders

    Add liquidity only

    opened by crowlogic 0
  • Logging

    Logging

    Both Parity Trading System and Parity FIX Gateway should implement logging to help with setting up and debugging. The bare minimum would be to log the configuration at the startup.

    enhancement 
    opened by jvirtanen 4
  • Pluggable market data out / multicast / TCP modules

    Pluggable market data out / multicast / TCP modules

    Would be great to have abstract interface which user could code into to create arbitrary market data out protocol (MDP)

    enhancement 
    opened by ghost 2
  • Access control

    Access control

    Now that market participants have to identify themselves upon logging into the trading system, an authentication and authorization mechanism can be implemented.

    enhancement 
    opened by jvirtanen 2
  • Multiple concurrent order entry sessions per market participant

    Multiple concurrent order entry sessions per market participant

    POE, Parity's native order entry protocol, uses NASDAQ SoupBinTCP 3.00 underneath. One of the purposes of using it as a transport protocol is that it makes it possible for one market participant to maintain multiple concurrent order entry sessions with the trading system. This is, however, not yet supported by Parity itself.

    Parity should support multiple concurrent order entry sessions per market participant.

    enhancement 
    opened by jvirtanen 0
  • Tab completion support in terminal client

    Tab completion support in terminal client

    The command prompt of the terminal client should support tab completion.

    enhancement 
    opened by jvirtanen 2
Releases(0.7.0)
  • 0.7.0(Aug 23, 2017)

    Release Notes

    • Improve Parity Matching Engine performance
    • Check quantity on order entry in Parity Trading System
    • Use direct byte buffer
    • Check price on order entry in Parity Trading System
    • Upgrade to fastutil 8.1.0
    • Remove market order support from Parity Matching Engine
    • Remove Broken Trade message from POE protocol
    • Remove Broken Trade message from PMD protocol
    • Make price and size configurable per instrument in Parity File Formats
    • Remove Seconds message from PMD protocol
    • Remove Order Deleted message from PMD protocol
    • Add Version message to PMR protocol
    • Rename Order message to Order Entered message in PMR protocol
    • Add Order Added message to PMR protocol
    • Rename Cancel message to Order Canceled message in PMR protocol
    • Clean up Trade message in PMR protocol
    • Update price and quantity to 64 bits in POE protocol
    • Update price and quantity to 64 bits in PMD protocol
    • Update price and quantity to 64 bits in PMR protocol
    • Update price and quantity representation in POE protocol
    • Update price and quantity representation in PMD protocol
    • Update price and quantity representation in PMR protocol
    • Handle market data before order entry in Parity Trading System
    • Make price and size format configurable in Parity Terminal Client
    • Make price and size format configurable in Parity FIX Gateway
    • Make price and size format configurable in Parity Trade Reporter
    • Make price and size format configurable in Parity Stock Ticker
    • Replace FOO with AAPL in example configuration files
    • Replace BAR with ETH-BTC in example configuration files
    • Replace BAZ with EUR-USD in example configuration files
    • Improve FIX gateway performance
    • Update POE protocol to version 2
    • Update PMD protocol to version 2
    • Update PMR protocol to version 2

    Maven

    The following artifacts are available in the Central Repository:

    Name | Artifact ID | Version -------------------------|----------------|-------- Parity Order Book | parity-book | 0.7.0 Parity File Formats | parity-file | 0.7.0 Parity Matching Engine | parity-match | 0.7.0 Parity Network Protocols | parity-net | 0.7.0 Parity Utilities | parity-util | 0.7.0

    The Group ID for all artifacts is com.paritytrading.parity.

    Source code(tar.gz)
    Source code(zip)
    parity-0.7.0.zip(43.84 MB)
  • 0.6.0(Jan 20, 2017)

    Release Notes

    • Make FIX acceptor address configurable in Parity FIX Gateway
    • Make order entry server address configurable in Parity Trading System
    • Provide two example configuration files for Parity Trade Reporter
    • Remove Parity Top of Book
    • Add Parity Order Book
    • Update example configuration files
    • Improve Parity Matching engine performance
    • Add configuration for TAQ file format in Parity File Formats
    • Simplify Parity Stock Ticker usage
    • Fix pending cancel status in Parity FIX Gateway
    • Make market data request server address configurable in Parity Trading System
    • Make market reporting request server address configurable in Parity Trading System
    • Remove Nassau dependency from Parity Utilities
    • Remove Config dependency from Parity Utilities
    • Improve Parity Network Protocols performance
    • Improve Parity FIX Gateway performance
    • Improve Parity Trading System performance
    • Upgrade to fastutil 7.0.13
    • Improve project structure
    • Improve documentation
    • Add portfolio script for Parity Trade Reporter
    • Upgrade to Nassau 0.13.0

    Maven

    The following artifacts are available in the Central Repository:

    | Name | Group ID | Artifact ID | Version | | --- | --- | --- | --- | | Parity Order Book | com.paritytrading.parity | parity-book | 0.6.0 | | Parity File Formats | com.paritytrading.parity | parity-file | 0.6.0 | | Parity Matching Engine | com.paritytrading.parity | parity-match | 0.6.0 | | Parity Network Protocols | com.paritytrading.parity | parity-net | 0.6.0 | | Parity Utilities | com.paritytrading.parity | parity-util | 0.6.0 |

    Source code(tar.gz)
    Source code(zip)
    parity-0.6.0.zip(41.41 MB)
  • 0.1.0(Dec 8, 2016)

  • 0.2.0(Dec 8, 2016)

    • Upgrade to Java 8
    • Add PMR protocol
    • Add support for login to Parity Terminal Client
    • Add Parity Trade Reporter
    • Add support for execution with price to Parity Top of Book
    • Add support for accessing orders to Parity Top of Book
    • Add TAQ file format
    • Add support for TAQ file format to Parity Stock Ticker
    • Add support for setting multicast interface by name to Parity Stock Ticker
    • Add support for running multiple instances of Parity Stock Ticker on one host
    • Improve API documentation for Parity Matching Engine
    • Improve API documentation for Parity Network Protocols
    • Improve API documentation for Parity Top Of Book
    Source code(tar.gz)
    Source code(zip)
  • 0.3.0(Dec 8, 2016)

    • Improve network protocol performance
    • Upgrade to Nassau 0.6.0
    • Improve MoldUDP64 client interface
    • Fix PMR reference implementation
    • Add cancel message to PMR protocol
    • Add SoupBinTCP client
    • Add SoupBinTCP support to Parity Stock Ticker
    • Add SoupBinTCP support to Parity Trade Reporter
    • Improve market data configuration in Parity Trading System
    • Improve market reporting configuration in Parity Trading System
    Source code(tar.gz)
    Source code(zip)
  • 0.4.0(Dec 8, 2016)

    • Add FIX protocol
    • Add Parity FIX Gateway
    • Fix PMD reference implementation
    • Fix order cancellation in Parity Trading System
    • Upgrade to Nassau 0.9.0
    • Add support for order modification to Parity Top of Book
    • Move to com.paritytrading namespace
    Source code(tar.gz)
    Source code(zip)
  • 0.5.0(Dec 8, 2016)

    Release Notes

    • Upgrade to Philadelphia 0.4.0
    • Fix order cancellation in Parity FIX Gateway
    • Improve Parity Top of Book performance
    • Rename order accessor in Parity Top of Book
    • Provide two example configuration files for Parity Stock Ticker
    • Add BinaryFILE reader
    • Add BinaryFILE support to Parity Stock Ticker
    • Clean up Parity Matching Engine Performance Test
    • Add Parity Top of Book Performance Test
    • Upgrade to Foundation 0.2.0

    Maven

    The following artifacts are available in the Central Repository:

    | Name | Group ID | Artifact ID | Version | | --- | --- | --- | --- | | Parity File Formats | com.paritytrading.parity | parity-file | 0.5.0 | | Parity Matching Engine | com.paritytrading.parity | parity-match | 0.5.0 | | Parity Network Protocols | com.paritytrading.parity | parity-net | 0.5.0 | | Parity Top of Book | com.paritytrading.parity | parity-top | 0.5.0 | | Parity Utilities | com.paritytrading.parity | parity-util | 0.5.0 |

    Source code(tar.gz)
    Source code(zip)
Owner
Parity
Open source trading infrastructure
Parity
A Java library for technical analysis.

ta4j Technical Analysis For Java Ta4j is an open source Java library for technical analysis. It provides the basic components for creation, evaluation

null 1.1k Jun 4, 2021
Low-latency Financial Information Exchange (FIX) engine for the JVM

Philadelphia Philadelphia is a low-latency Financial Information Exchange (FIX) engine for the JVM. You can use Philadelphia to connect to stock excha

Parity 228 Jun 11, 2021
Java library for the Stripe API.

Stripe Java client library The official Stripe Java client library. Installation Requirements Java 1.8 or later Gradle users Add this dependency to yo

Stripe 550 Jun 7, 2021
Java client library for the Square Connect v2 API

Square Connect Java SDK - RETIRED NOTICE: Square Connect Java SDK retired The Square Connect Java SDK is retired (EOL) as of 2019-12-17 and will no lo

Square 37 Apr 29, 2021