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...
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.

Blockoli is a high-performance tool for code indexing, embedding generation and semantic search tool for use with LLMs.
Blockoli is a high-performance tool for code indexing, embedding generation and semantic search tool for use with LLMs.

blockoli πŸ₯¦πŸ”Ž Blockoli is a high-performance tool for code indexing, embedding generation and semantic search tool for use with LLMs. blockoli is buil

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

Oxygen is a voice journal and audio analysis toolkit for people who want to change the way their voice comes across.

Oxygen Voice Journal Oxygen is a voice journal and audio analysis toolkit for people who want to change the way their voice comes across. Or rather, i

Design token framework β€” adopt a unified design language across platforms, codebases, and teams
Design token framework β€” adopt a unified design language across platforms, codebases, and teams

Palette Design tokens framework with atomic classes for React and Master CSS. Deliver a consistent visual identity across your apps with design tokens

Browse and listen to thousands of radio stations across the globe right from your terminal 🌎 πŸ“» 🎡✨
Browse and listen to thousands of radio stations across the globe right from your terminal 🌎 πŸ“» 🎡✨

TuneIn CLI A command line interface for TuneIn Radio. You can search for stations, play them, and see what's currently playing. 🚚 Installation Compil

Sleek is a CLI tool for formatting SQL. It helps you maintain a consistent style across your SQL code, enhancing readability and productivity.

Sleek: SQL Formatter ✨ Sleek is a CLI tool for formatting SQL. It helps you maintain a consistent style across your SQL code, enhancing readability an

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

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
A lightweight and high-performance order-book designed to process level 2 and trades data. Available in Rust and Python

ninjabook A lightweight and high-performance order-book implemented in Rust, designed to process level 2 and trades data. Available in Python and Rust

Ninja Quant 134 Jul 22, 2024
(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
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
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