Skip to main content
Alchemist

Alchemist_lib

Description

Alchemist_lib is an automatic trading library for cryptocurrencies that allow to personalize the portfolio based on a specific strategy.

Features

  • Easy to use: The interface is similar to zipline, a popular backtesting software for stocks.

  • Portfolio personalization: You can choose the weight of every element on the portfolio.

  • Most common technical analysis indicators already integrated.

  • Execute orders on the most famous exchanges.

  • Possibility to visualize the asset allocation and the portfolio value charts for every strategy thanks to alchemist-view.

  • Fully documented and hosted on readthedocs.

Supported Exchanges

The following exchanges are available to trade on:

Requirements

  • Python3

  • Mysql

Installation

See the installing documentation.

Code example

Strategy description: Hold a portfolio equally composed by Ethereum and BitcoinCash.

from alchemist_lib.portfolio import LongsOnlyPortfolio
from alchemist_lib.broker import PoloniexBroker
from alchemist_lib.tradingsystem import TradingSystem
import alchemist_lib.exchange as exch
import pandas as pd


def set_weights(df):
    df["weight"] = 0.5 #Because there are just two assets.
    return df

def select_universe(session):
    poloniex_assets = exch.get_assets(session = session, exchange_name = "poloniex")

    my_universe = []
    for asset in poloniex_assets:
        if asset.ticker == "ETH" or asset.ticker == "BCH":
            my_universe.append(asset)
    return my_universe

def handle_data(session, universe):
    #The value of alpha is useless in this case.
    df = pd.DataFrame(data = {"asset" : universe, "alpha" : 0}, columns = ["asset", "alpha"]).set_index("asset")
    return df


algo = TradingSystem(name = "BuyAndHold",
                     portfolio = LongsOnlyPortfolio(capital = 0.02),
                     set_weights = set_weights,
                     select_universe = select_universe,
                     handle_data = handle_data,
                     broker = PoloniexBroker(api_key = "APIKEY",
                                             secret_key = "SECRETKEY"),
                     paper_trading = True)
algo.run(delay = "15M", frequency = 1)

Screenshot

BuyAndHold example

Basic concepts

Alchemist_lib works with three methods:

  • set_weights

  • select_universe

  • handle_data

set_weights is used to set the weight that an asset has respect the others within the portfolio. The sum of every weight must be close to 1. Must returns a pandas dataframe with two columns: “asset” and “alpha”, where “asset” is the index.

select_universe filters the assets saved on the database and returns just the ones the strategy will take into consideration.

handle_data is the most importat one because it manages the trading logic. Must returns a pandas dataframe with two columns: “asset” and “alpha”, where “asset” is the index.

You can find other examples in the examples directory.

Reporting bugs

A bug tracker is provided by Github.

Metadata

Release files for alchemist_lib 1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for alchemist_lib 1.0
File Size Uploaded
alchemist_lib-1.0.tar.gz 1.9 MB Details

Release files / alchemist_lib-1.0.tar.gz

Download URL alchemist_lib-1.0.tar.gz
Size 1.9 MB
Tags Source
SHA-256 checksum
How to use checksums
b894c705c5b405c0f020e6b280f336e0635c9087f19d348da754348c02773fc5
BLAKE2b-256 checksum
How to use checksums
052a25f740d9c56c4f6f5276d66e9d6d6e8fcceafd732de1f8acd9e90ea50097
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.0 This release

1 release file

0.9

1 release file

0.8

1 release file

0.7

1 release file

0.5

1 release file

0.4

1 release file

0.3

1 release file

0.2

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page