All Projects → SockTrader → Socktrader

SockTrader / Socktrader

Licence: gpl-3.0
🚀 Websocket based trading bot for 💰cryptocurrencies 📈

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects

Projects that are alternatives of or similar to Socktrader

Jesse
An advanced crypto trading bot written in Python
Stars: ✭ 1,038 (+582.89%)
Mutual labels:  bot, trading-bot, bitcoin, cryptocurrency, trading, algorithmic-trading, trading-strategies, trading-algorithms, crypto
Gekko Strategies
Strategies to Gekko trading bot with backtests results and some useful tools.
Stars: ✭ 1,022 (+572.37%)
Mutual labels:  trading-bot, cryptocurrency, cryptocurrencies, trading, trading-strategies, trading-algorithms, trading-platform, crypto
Algotrading
Algorithmic trading framework for cryptocurrencies.
Stars: ✭ 249 (+63.82%)
Mutual labels:  bot, trading-bot, cryptocurrency, cryptocurrencies, trading, algorithmic-trading, trading-algorithms, crypto
Roq Api
API for algorithmic and high-frequency trading
Stars: ✭ 132 (-13.16%)
Mutual labels:  trading-bot, cryptocurrency, trading, algorithmic-trading, trading-strategies, trading-algorithms, trading-platform, exchange
Kupi Terminal
Ccxt based, open source, customized, extendable trading platform that supports 130+ crypto exchanges.
Stars: ✭ 104 (-31.58%)
Mutual labels:  bot, bitcoin, cryptocurrency, trading, trading-strategies, trading-platform, exchange, crypto
Wolfbot
Crypto currency trading bot written in TypeScript for NodeJS
Stars: ✭ 335 (+120.39%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, cryptocurrencies, trading, trading-strategies, trading-algorithms, exchange
AutoTrader
A Python-based development platform for automated trading systems - from backtesting to optimisation to livetrading.
Stars: ✭ 227 (+49.34%)
Mutual labels:  crypto, trading, trading-bot, trading-platform, trading-strategies, trading-algorithms, algorithmic-trading
Crypto Trading Bot
Cryptocurrency trading bot in javascript for Bitfinex, Bitmex, Binance, FTX, Bybit ... (public edition)
Stars: ✭ 1,089 (+616.45%)
Mutual labels:  bot, trading-bot, cryptocurrency, trading, trading-strategies, exchange, crypto
roq-samples
How to use the Roq C++20 API for Live Cryptocurrency Algorithmic and High-Frequency Trading as well as for Back-Testing and Historical Simulation
Stars: ✭ 119 (-21.71%)
Mutual labels:  trading, trading-bot, exchange, trading-platform, trading-strategies, trading-algorithms, algorithmic-trading
Krypto Trading Bot
Self-hosted crypto trading bot (automated high frequency market making) written in C++
Stars: ✭ 2,589 (+1603.29%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, trading, trading-strategies, trading-platform, exchange
quick trade
convenient script for trading with python.
Stars: ✭ 63 (-58.55%)
Mutual labels:  trading, trading-bot, trading-platform, trading-strategies, trading-algorithms, cryptocurrencies, algorithmic-trading
Gekko Backtesttool
Batch backtest, import and strategy params optimalization for Gekko Trading Bot. With one command you will run any number of backtests.
Stars: ✭ 203 (+33.55%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, cryptocurrencies, trading, trading-strategies, crypto
Crypto Signal
Github.com/CryptoSignal - #1 Quant Trading & Technical Analysis Bot - 3,100+ stars, 900+ forks
Stars: ✭ 3,690 (+2327.63%)
Mutual labels:  trading-bot, bitcoin, trading, trading-strategies, crypto, algorithmic-trading
Turingtrader
The Open-Source Backtesting Engine/ Market Simulator by Bertram Solutions.
Stars: ✭ 132 (-13.16%)
Mutual labels:  trading-bot, trading, algorithmic-trading, trading-strategies, trading-algorithms, trading-platform
Siis
Trading bot including terminal, for crypto and traditionals markets. Assisted or fully automated strategy.
Stars: ✭ 45 (-70.39%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, trading, trading-platform, crypto
Ccxt
A JavaScript / Python / PHP cryptocurrency trading API with support for more than 100 bitcoin/altcoin exchanges
Stars: ✭ 22,501 (+14703.29%)
Mutual labels:  bot, bitcoin, cryptocurrency, trading, exchange, crypto
Ccxt.net
CCXT.NET – CryptoCurrency eXchange Trading Library for .NET
Stars: ✭ 89 (-41.45%)
Mutual labels:  bot, bitcoin, cryptocurrency, trading, exchange, crypto
Aat
Asynchronous, event-driven algorithmic trading in Python and C++
Stars: ✭ 109 (-28.29%)
Mutual labels:  trading-bot, cryptocurrency, cryptocurrencies, trading, algorithmic-trading, trading-strategies
Quant
Codera Quant is a Java framework for algorithmic trading strategies development, execution and backtesting via Interactive Brokers TWS API or other brokers API
Stars: ✭ 104 (-31.58%)
Mutual labels:  trading-bot, trading, algorithmic-trading, trading-strategies, trading-algorithms, trading-platform
Ccxt Rest
Open Source Unified REST API of 100+ Crypto Exchange Sites (18k+ docker pulls) - https://ccxt-rest.io/
Stars: ✭ 210 (+38.16%)
Mutual labels:  bot, bitcoin, cryptocurrency, trading, exchange, crypto

SockTrader logo

SockTrader

Cryptocurrency trading bot

License: GPL v3 Build status Dependencies Gitter

🚧 Project is currently under development! 🚧

What is "SockTrader"?

SockTrader is an open source cryptocurrency trading bot. You can use it to automatically buy and/or sell cryptocurrencies based on a strategy that you've programmed. The strategy basically contains a set of rules that will define when and how the bot should act in the cryptocurrency market. These rules can be based on technical analysis (what is technical analysis?) or you could simply tell the bot to buy/sell at certain price levels. In fact, it's up to you to decide the rules of the game!

The name "SockTrader" comes from websocket based trading bot. Which means that SockTrader will try to make use of a realtime connection with the exchange. This has the advantage that one can act very quickly in a changing market with low latency.

Features

  • 🚀 Realtime super-fast websocket trading.
  • 📈 50+ Technical indicators. (docs)
  • 🌈 Written in TypeScript!
  • 🌿 Unit tested source code.
  • 🔫 Mutation testing for better testing quality
  • 📝 Paper trading a strategy on LIVE exchange data.
  • 🏡 Backtesting engine with local data.
  • ⚡️ Test & live reload your strategy in our online dashboard!
  • 🚢 Run SockTrader inside a docker container.
  • More features soon..

Use our online dashboard!

We've built an online dashboard that you can use to visually confirm all the trades that happened during a backtesting session. The dashboard has a live reload functionality. So SockTrader will relaunch the current backtest once you've changed and saved the code of a strategy. All the trades will be shown on the chart as you can see in the screenshot.

Try it yourself:

  1. Follow our Quick Start guide
  2. Run npm run web and leave all settings as default.
  3. Go to our online dashboard and test your strategies!

SockTraderDashboard

Getting started

Quick start

Dockerfile

  1. Clone the repository locally: git clone https://github.com/SockTrader/SockTrader
  2. Add trading bot configuration: cp src/config.ts.dist src/config.ts
  3. (optional) Edit src/config.ts
  4. Build docker image: cd SockTrader && docker build -t socktrader .
  5. Start container: docker run socktrader --help

Local scripts

  1. Clone the repository locally: git clone https://github.com/SockTrader/SockTrader
  2. Install dependencies: cd SockTrader && npm install
  3. Create trading bot configuration file: cp src/config.ts.dist src/config.ts
  4. Build project: npm run build
  5. Transform our candle data (BTC/USD coinbase) from src/data to a readable format in build/data: npm run normalize
  6. Run SockTrader: node ./build/index.js --help

Other scripts

  • npm run test run jest test suite
  • npm run web-dev start development webserver with nodemon for quick & easy development
  • npm run web start webserver. Can be used for "live reload" using websockets
  • npm run socktrader -- backtest --candles=coinbase_btcusd_1h --strategy=simpleMovingAverage start backtest trading session
  • npm run socktrader -- live --paper --pair btc usd --strategy simpleMovingAverage --exchange hitbtc --interval 1m start paper trading session

Advanced

Load your own candle data of a trading pair of your interest: Create a candle normalizer in "src/data" folder

Create your own strategy Create your own strategy

Normalize raw candles

Add raw candle data

Download raw candles from a trusted source in json or csv format and copy this file to the src/data folder.

Create a candle normalizer

A candle normalizer is a small utility script that is tightly coupled to a raw candle file. It will normalize the candles from a raw csv or json file and output them in a generic format in the build/data folder. This normalization process can be triggered by running: npm run normalize.

The expected output of a normalizer is a IDataFrame interface from data-forge. Each row in the data frame should respect the following type definition:

{
  timestamp: Moment,
  high: number,
  low: number,
  open: number,
  close: number,
  volume: number,
}

The following example will give you a good idea of how you can create your own candle normalizer. Make sure to put this file into the src/data folder next to the raw candle files. Preferably with the same name as the candle file but with .ts extension.

Example:

// src/data/coinbase_btcusd_1h.ts
import {IDataFrame} from "data-forge";
import moment from "moment";
import path from "path";
import {Candle} from "../sockTrader/core/types/candle";
import CandleNormalizer from "../sockTrader/core/candles/candleNormalizer";
import CandleNormalizer, {CandleMetaInfo} from "../sockTrader/data/candleNormalizer";

const candleMeta: CandleMetaInfo = {symbol: ["BTC", "USD"], name: "Bitcoin"};

const parser = (dataFrame: IDataFrame): IDataFrame<number, Candle> => dataFrame
    .renameSeries({
        "Date": "timestamp",
        "High": "high",
        "Low": "low",
        "Open": "open",
        "Close": "close",
        "Volume USD": "volume",
    })
    .select(row => ({
        ...row,
        timestamp: moment.utc(row.timestamp, "YYYY-MM-DD hh-A"),
    }));

export default new CandleNormalizer("coinbase_btcusd_1h.csv", candleMeta, parser);

Your own strategy?

Take a look at the given example strategy in this repository: simpleMovingAverage strategy

We need your help!

We're looking for extra contributors to give this project a well deserved boost. Don't hesitate to contact us on: Telegram or Gitter

Or you can also support us by:

  1. Donating money for covering the hosting costs
  2. Pay for advertisements on the SockTrader dashboard
  3. Or sharing interesting knowledge with the community

Become a Patron!

ROADMAP

v1.0

  • Improve communication between dashboard & SockTrader
  • Update and improve live trading
  • Test edge case scenarios (possible rounding issues)
  • Test altcoin trading and improve if needed
  • Add basic backtest analyzers
  • Dashboard internationalization
  • Improve dashboard architecture
  • Increase test coverage and test quality
  • Add more and better documentation

Later on..

  • Improve logging
  • Add extra exchanges
  • Add more advanced backtest analyzers
  • Show status of wallet in dashboard
  • Show status of analyzers in dashboard
  • And so much more..

Let us know if you have great ideas to improve the project! Feel free to open a pull request.

Contributors

cwouterthijs-raets

DISCLAIMER

Using a trading bot does not mean guaranteed profit. 
Also, trading crypto currency is considered high risk.
Losses are possible, which SockTrader cannot be held responsible for.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].