Giter Site home page Giter Site logo

omniv0x / roboquant Goto Github PK

View Code? Open in Web Editor NEW

This project forked from neurallayer/roboquant

0.0 0.0 0.0 18.55 MB

Roboquant is a fast, flexible, user-friendly and completely free algorithmic trading platform

Home Page: https://www.roboquant.org

License: Apache License 2.0

Kotlin 99.95% CSS 0.05%

roboquant's Introduction

Roboquant

Kotlin Automated Build GitHub code size APL v2 Bugs Enhancements GitHub last commit GitHub commit activity GitHub tag (latest by date) Maven Central Sonatype Nexus (Snapshots) Quality Gate Status Security Rating Maintainability Rating

roboquant Logo

Roboquant is an algorithmic trading platform that is very fast and flexible while at the same time strives to be easy to use. It is fully open source, written in Kotlin, and can be used in Jupyter Notebooks as well as standalone applications.

It is designed to be used by anyone serious about algo trading, from beginning retail traders to established trading firms. You can find out more at roboquant.org.

Please consider giving this repository a star ⭐ if you like the project.

Code sample

To demonstrate how easy it is to get started, the following code snippet shows all the ingredients required to back-test a trading strategy:

val strategy = EMAStrategy() // (1)
val metric = AccountMetric() // (2)
val roboquant = Roboquant(strategy, metric) // (3)

val feed = CSVFeed("data/US") // (4)
roboquant.run(feed) // (5)
  1. Create the strategy that you want to validate

  2. Define the metrics you want to monitor during the back-test

  3. Create a Roboquant instance, the engine of the platform

  4. What data should be used, in this case, CSV files

  5. Run the back test

You can find out more at the online tutorial.

Installation

Library

You can develop our own trading application in your favourite IDE using roboquant as a library.

IntelliJ IDEA

Just add roboquant and optional any of the additional modules as a dependency to your build tool, like Maven or Gradle.

Maven

Add the following dependency to your pom.xml file:

<dependency>
    <groupId>org.roboquant</groupId>
    <artifactId>roboquant</artifactId>
    <version>VERSION</version>
</dependency>

Or if you want to create your own new algo-trading project from scratch, you can run a Maven Archetype:

mvn archetype:generate                          \
-DarchetypeGroupId=org.roboquant                \
-DarchetypeArtifactId=roboquant-quickstart      \
-DarchetypeVersion=1.6.0-SNAPSHOT                        \
-DgroupId=org.mydomain                          \
-DartifactId=myapp                              \
-Dversion=1.0-SNAPSHOT

Gradle

Add the following line to your gradle script:

implementation group: 'org.roboquant', name: 'roboquant', version: 'VERSION'

See also installation guide for more ways to install and use roboquant.

Latest available versions:

  • Regular version: Maven Central

  • Snapshot version: Sonatype Nexus (Snapshots)

Jupyter Notebooks

You can interactively develop your own strategies using a Jupyter Notebook.

Jupyter Lab

If you just want to try it out without any installation, go to Binder

If you already have Docker installed, all it takes is a single command to have a fully functional Jupyter Notebook environment available on your local machine. This image also comes with several example notebooks included.

docker run -p 8888:8888 roboquant/jupyter

Features

Some key features of roboquant are:

  • ✓ Very fast back-testing, even on large volumes of historical data

  • ✓ Easy to develop your own strategies and integrate with third party brokers and data providers

  • ✓ Trade in multiple asset classes at the same time

  • ✓ Run anything from a technical indicator to complex machine-learning based strategies

  • ✓ Easy to transition from back-testing to live trading

  • ✓ Trade on multi-markets with multi-currencies

  • ✓ Developed under open source with a permissive Apache license

  • ✓ Use Jupyter Notebooks with insightful charts if you prefer interactive development

  • ✓ Batteries included, for example, 150+ technical indicators and ready to use datasets

  • ✓ Out of the box integration with Alpaca, Interactive Brokers, Yahoo Finance, Alpha Vantage, Polygon, ECB, Binance and most other crypto exchanges

See also Features for a more extensive feature list and how roboquant compares to some other platforms.

License

Roboquant is distributed under the Apache 2.0 License. The Apache 2.0 license is a permissive license, meaning there are few restrictions on the use of the code.

Thanks

Besides all the great open source software that is powering roboquant, also special thanks to JetBrains for making a license available for IntelliJ IDEA.

JetBrains

Disclaimer

Roboquant also comes with live trading capabilities. Using this is at your own risk, and there are NO GUARANTEES about the correct functioning of the software.

PR are more than welcome, see also the Contribution Guide document. If you’re missing some features, just open an issue on GitHub. See also the todo documentation for already identified backlog items if you look for something to work on.

roboquant's People

Contributors

jbaron avatar eapfel avatar idanakav avatar mprey avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.