Skip to main content

This library contains Cybotrade's core runtime, integrations with Exchanges API, historical and live market data collector and wrap them into a simple, easy-to-use Python SDK.

Project description

Cybotrade

This is the Client SDK for building automated trading strategies on Cybotrade. This library provides the core runtime, integration with Exchanges API, historical and live market data collector and wrap them into a simple, easy-to-use Python SDK as a foundation users' strategies.

Documentation

The documentation for Cybotrade SDK can be found here.

Installation

pip install cybotrade

Usage

The following example shows how to create a simple strategy that buys 0.01 BTC when the price goes up and sells 0.01 BTC when the price goes down.

For a more advanced usage, please refer to the documentation.

from cybotrade.strategy import Strategy as BaseStrategy
from cybotrade.models import (
    OrderParams, 
    OrderSide,
    RuntimeMode,
    RuntimeConfig,
    Symbol,
    Exchange,
    Interval,
    OrderSize,
    OrderSizeUnit,
)
from datetime import datetime, timedelta, timezone

import asyncio

class Strategy(BaseStrategy):
    async def on_candle_closed(self, strategy, candle, candles):
        await super().on_candle_closed(strategy, candle, candles)

        # Get the currently closed candles
        candles = candles[candle.interval]

        if candles[-1].close > candles[-2].close:
            # Buy 0.01 BTC
            await strategy.entry(
                OrderParams(
                    id="Market Long",
                    side=OrderSide.Buy,
                    quantity=strategy.config.order_size.value,
                )
            )
        else:
            # Sell 0.01 BTC
            await strategy.entry(
                OrderParams(
                    id="Market Short",
                    side=OrderSide.Sell,
                    quantity=strategy.config.order_size.value,
                )
            )

async def main():
    runtime = await Runtime.connect(
        RuntimeConfig(
            mode=RuntimeMode.Backtest,
            symbol=Symbol(base="BTC", quote="USDT"),
            exchange=Exchange.BybitLinear,
            intervals=[Interval.OneMinute],
            comission=0.0006,
            leverage=100.0,
            order_size=OrderSize(unit=OrderSizeUnit.Base, value=0.01),
            start_time=datetime.now(timezone.utc) - timedelta(minutes=10000),
            end_time=datetime.now(timezone.utc),
            slippage=0.06,
            initial_capital=10000.0,
            candle_length=100,
        ),
        Strategy(),
    )

    await runtime.start()

asyncio.run(main())

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

cybotrade-0.1.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (22.7 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-cp311-cp311-macosx_11_0_arm64.whl (17.2 MB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

cybotrade-0.1.9-26-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (24.5 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-25-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (24.5 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-24-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (24.6 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-23-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (24.2 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-22-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (24.6 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-21-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (24.6 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-20-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (23.9 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-19-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (25.4 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-18-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (25.5 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-17-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (25.3 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-16-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (25.3 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (25.3 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-14-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (22.8 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-13-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (22.7 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (22.7 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (22.7 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (22.7 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (22.7 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (22.8 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (22.8 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (22.8 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (22.8 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (22.9 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (22.9 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cybotrade-0.1.9-1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (22.6 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page