High-performance and normalised trading interface capable of executing across many financial venues

Related tags

Command-line barter
Overview

Barter-Execution

High-performance and normalised trading interface capable of executing across many financial venues. Also provides a feature rich simulated exchange to assist with backtesting and dry-trading.

It is:

  • Easy: ExecutionClient trait provides a unified and simple language for interacting with exchanges.
  • Normalised: Allow your strategy to communicate with every real or simulated exchange using the same interface.
  • Extensible: Barter-Execution is highly extensible, making it easy to contribute by adding new exchange integrations!

See: Barter, Barter-Integration, Barter-Data

Crates.io MIT licensed Build Status Discord chat

API Documentation | Chat

Overview

High-performance and normalised trading interface capable of executing across many financial venues. Also provides a feature rich simulated exchange to assist with backtesting and dry-trading. Communicate with an exchange by initialising it's associated ExecutionClient instance.

Example

For now, see tests/simulated_exchange.rs for a taste.

Getting Help

Firstly, see if the answer to your question can be found in the API Documentation. If the answer is not there, I'd be happy to help to Chat and try answer your question via Discord.

Contributing

Thanks for your help in improving the Barter ecosystem! Please do get in touch on the discord to discuss development, new features, and the future roadmap.

  • Implement the ExecutionClient trait to integrate a new exchange.

Related Projects

In addition to the Barter-Execution crate, the Barter project also maintains:

  • Barter: High-performance, extensible & modular trading components with batteries-included. Contains a pre-built trading Engine that can serve as a live-trading or backtesting system.
  • Barter-Integration: High-performance, low-level framework for composing flexible web integrations.
  • Barter-Data: High-performance WebSocket integration library for streaming public market data from leading cryptocurrency exchanges.

Roadmap

  • Improve sophistication of the SimulatedExchange.
    • OrderKind::Market & OrderKind::ImmediateOrCancel execution support.
    • Enable many clients to use the exchange simultaneously, pathing the way for simulated order books generated by many market archetype actors.
  • Add many more ExecutionClient implementations for exchanges.

Licence

This project is licensed under the MIT license.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Barter-Data by you, shall be licensed as MIT, without any additional terms or conditions.

You might also like...
Run code from many programming languages!

Langbot Creating an image Install podman Build an image: podman build -t langbot . Running a language Run podman run --rm -i langbot ./scripts/run.sh

High-performance asynchronous computation framework for system simulation

Asynchronix A high-performance asynchronous computation framework for system simulation. What is this? Warning: this page is at the moment mostly addr

A modern high-performance open source file analysis library for automating localization tasks

🧛 Filecount Filecount is a modern high-performance open source file analysis library for automating localization tasks. It enables you to add file an

High-performance, low-level framework for composing flexible web integrations

High-performance, low-level framework for composing flexible web integrations. Used mainly as a dependency of `barter-rs` project

High performance wlroots screen recording, featuring hardware encoding

wl-screenrec High performance wlroots based screen recorder. Uses dma-buf transfers to get surface, and uses the GPU to do both the pixel format conve

A high-performance WebSocket integration library for streaming public market data. Used as a key dependency of the `barter-rs` project.

Barter-Data A high-performance WebSocket integration library for streaming public market data from leading cryptocurrency exchanges - batteries includ

A high-performance Rust library designed to seamlessly integrate with the Discord API.

Rucord - Rust Library for Discord API Interactions Note: This library is currently under development and is not yet recommended for production use. Ov

The Amp programming language: a language designed for building high performance systems.

A language designed for building high performance systems. Platform Support x86_64-pc-windows ✅ x86_64-unknown-linux ⚠️ untested x86_64-unknown-darwin

Rust in Anger: high-performance web applications

Rust in Anger: Book demo This is the code repository that accompanies the Rust in Anger blog post. The following folders each come with their own buil

Comments
  • Rewrite project history (minimal changes)

    Rewrite project history (minimal changes)

    Rewrite project history (minimal changes)

    Description

    A PR which addresses rewriting of the project git history. Please see the following:

    • barter-rs/barter-rs#5
    • barter-rs/barter-rs#11

    Verification

    (see Verification section in https://github.com/barter-rs/barter-rs/issues/5)

    Verification process output log
    Info: Comparing versions (1 / 3)
    Info: Checked out v0.1.0 (original branch - 66ecc2b8c11a18067b173f115a41a5603c02f714)
    Info: Checked out v0.1.0 (rebased branch - bb36c76453caff3fac58571ff58bdf95a40d0ab7)
    Info: branch releases are identical for v0.1.0
    Info: Comparing versions (2 / 3)
    Info: Checked out v0.2.0 (original branch - 9bc69d466b9d970491d453a6001a56ec6e787de2)
    Info: Checked out v0.2.0 (rebased branch - 2d04e7a9d622d877628c6edcdf15a5b8a494d072)
    Warning: branches differ on v0.2.0
    Info: Comparing versions (3 / 3)
    Info: Checked out v0.2.1 (original branch - 00519990a263c37f5348f4247788331965fb94ef)
    Info: Checked out v0.2.1 (rebased branch - 6d4fb5b05213dc8e911c59054a924dab9a704323)
    Warning: branches differ on v0.2.1
    
    diff output
    cat diffs/v0.2.0.diff
    diff -r -x .git -x .idea -x target -x Cargo.lock ./barter-rs-orig/Cargo.toml ./barter-rs-rebased/Cargo.toml
    5c5
    < authors = ["{author name redacted} <{author email redacted}>"]
    ---
    > authors = ["Just A Stream <[email protected]>"]
    cat diffs/v0.2.1.diff
    diff -r -x .git -x .idea -x target -x Cargo.lock ./barter-rs-orig/Cargo.toml ./barter-rs-rebased/Cargo.toml
    5c5
    < authors = ["{author name redacted} <{author email redacted}>"]
    ---
    > authors = ["Just A Stream <[email protected]>"]
    

    Migration (merging issues)

    (see Migration section in barter-rs/barter-rs#5 & barter-rs/barter-rs#11)

    No problems merging / rebasing anything.

    pr::chore 
    opened by carpetmaker 0
Owner
Barter
Open-source Rust algorithmic trading framework.
Barter
A library for loading and executing PE (Portable Executable) from memory without ever touching the disk

memexec A library for loading and executing PE (Portable Executable) from memory without ever touching the disk This is my own version for specific pr

FssAy 5 Aug 27, 2022
Open-source Rust framework for building event-driven live-trading & backtesting systems

Barter Barter is an open-source Rust framework for building event-driven live-trading & backtesting systems. Algorithmic trade with the peace of mind

Barter 157 Feb 18, 2023
Display financial Data on The Terminal

tuinance Tuinance is a performant TUI program to display financial data, written completely in Rust. All data is gathered through the Yahoo Finance AP

Juho 10 May 31, 2022
A Decimal Implementation written in pure Rust suitable for financial calculations.

Decimal   A Decimal implementation written in pure Rust suitable for financial calculations that require significant integral and fractional digits wi

Paul Mason 702 Jan 5, 2023
(Pre-Release Software) Secure, Encrypted, P2P chat written atop Warp, IPFS, LibP2P, Dioxus and many more awesome projects and protocols.

Uplink Privacy First, Modular, P2P messaging client built atop Warp. Uplink is written in pure Rust with a UI in Dioxus (which is also written in Rust

Satellite 13 Jan 25, 2023
Cloc - cloc counts blank lines, comment lines, and physical lines of source code in many programming languages.

cloc Count Lines of Code cloc counts blank lines, comment lines, and physical lines of source code in many programming languages. Latest release: v1.9

null 15.3k Jan 8, 2023
Catch Tailwindcss Errors at Compile-Time Before They Catch You, without making any change to your code! Supports overriding, extending, custom classes, custom modifiers, Plugins and many more 🚀🔥🦀

twust Twust is a powerful static checker in rust for TailwindCSS class names at compile-time. Table of Contents Overview Installation Usage Statement

null 15 Nov 8, 2023
Schemars is a high-performance Python serialization library, leveraging Rust and PyO3 for efficient handling of complex objects

Schemars Introduction Schemars is a Python package, written in Rust and leveraging PyO3, designed for efficient and flexible serialization of Python c

Michael Gendy 7 Nov 21, 2023
A high-performance web-based geospatial visualization tool with an emphasis LEO satellites and lunar missions.

A high-performance web-based geospatial visualization tool with an emphasis LEO satellites and lunar missions. Written in Rust to target WebGPU, with WebGL2 backwards compatibility.

Shane B. 5 Dec 20, 2023
Web-based tool that allows browsing and comparing symbol and type information of Microsoft Windows binaries across different versions of the OS.

WinDiff About WinDiff is an open-source web-based tool that allows browsing and comparing symbol and type information of Microsoft Windows binaries ac

Erwan Grelet 208 Jun 15, 2023