from alchemist_lib.database import Session from alchemist_lib.database.asset import Asset from alchemist_lib.database.exchange import Exchange from alchemist_lib.database.instrument import Instrument from alchemist_lib.database.aum_history import AumHistory from alchemist_lib.database.ohlcv import Ohlcv from alchemist_lib.database.ptf_allocation import PtfAllocation from alchemist_lib.database.ts import Ts from alchemist_lib.database.price_data_source import PriceDataSource from alchemist_lib.database.timetable import Timetable from alchemist_lib.database.broker import Broker from alchemist_lib.database.timeframe import Timeframe from alchemist_lib.database.executed_order import ExecutedOrder session = Session() all_assets = session.query(Asset).all() bittrex_assets = session.query(Asset).join( Exchange, Asset.exchanges).filter(Exchange.exchange_name == "Bittrex").all() print("All assets:\n", all_assets) print("All assets instrument:\n", [asset.instrument for asset in all_assets]) print("All assets exchanges:\n", [asset.exchanges for asset in all_assets]) print("Bittrex assets:\n", bittrex_assets) print("\n") aum_history = session.query(AumHistory).all() print("All aum history:\n", aum_history) print("All aum history trading systems:\n",
import alchemist_lib.exchange as exchange from alchemist_lib.database import Session from alchemist_lib.database.asset import Asset from alchemist_lib.database.exchange import Exchange from alchemist_lib.database.instrument import Instrument from alchemist_lib.database.price_data_source import PriceDataSource from alchemist_lib.database.timetable import Timetable from alchemist_lib.database.broker import Broker from alchemist_lib.database.timeframe import Timeframe session = Session() assets = session.query(Asset).join(Instrument, Asset.instrument).filter( Instrument.instrument_type == "cryptocurrency").all() print("All assets in db: ", assets) print("\n") tradable = exchange.are_tradable(assets=assets, exchange_name="poloniex") print("All tradable assets on Poloniex: ", tradable) print("\n") all_assets = exchange.get_assets(session=session, exchange_name="bittrex") print("All assets on Bittrex: ", all_assets) session.close()
import datetime as dt import alchemist_lib.datafeed as dfeed from alchemist_lib.database import Session from alchemist_lib.database.asset import Asset from alchemist_lib.database.exchange import Exchange from alchemist_lib.database.instrument import Instrument from alchemist_lib.database.price_data_source import PriceDataSource from alchemist_lib.database.timetable import Timetable from alchemist_lib.database.broker import Broker session = Session() assets = session.query(Asset).all() print("All assets: ", assets) print("\n") last_prices = dfeed.get_last_price(assets = assets) print("Last prices: ", last_prices) print("\n") dfeed.save_ohlcv(session = session, assets = assets, start_date = dt.datetime(2018,2,1), timeframe = "1D") print("OHLCV from 2018-02-01 saved!") print("\n")
import datetime as dt from alchemist_lib.datafeed.poloniexdatafeed import PoloniexDataFeed from alchemist_lib.database import Session from alchemist_lib.database.asset import Asset from alchemist_lib.database.exchange import Exchange from alchemist_lib.database.instrument import Instrument from alchemist_lib.database.price_data_source import PriceDataSource from alchemist_lib.database.timetable import Timetable from alchemist_lib.database.broker import Broker session = Session() polo = PoloniexDataFeed(session=session) assets = session.query(Asset).join( Exchange, Asset.exchanges).filter(Exchange.exchange_name == "poloniex").all() tradable_assets = polo.get_assets() print("Tradable assets: ", tradable_assets) print("\n") #Will raise AssertError: candles = polo.get_ohlcv(assets=assets, start_date=dt.datetime(2018, 2, 10), end_date=dt.datetime(2018, 2, 12), timeframe="3H") candles = polo.get_ohlcv(assets=assets,
from alchemist_lib.database.asset import Asset from alchemist_lib.database.exchange import Exchange from alchemist_lib.database.instrument import Instrument from alchemist_lib.database.price_data_source import PriceDataSource from alchemist_lib.database.timetable import Timetable from alchemist_lib.database.broker import Broker from alchemist_lib.database.timeframe import Timeframe from alchemist_lib.database.ptf_allocation import PtfAllocation from alchemist_lib.portfolio import LongsOnlyPortfolio import alchemist_lib.datafeed as dfeed session = Session() ptf = LongsOnlyPortfolio(capital = 0.05) ts_name = "AccumulationZone" BTC = session.query(Asset).join(Exchange, Asset.exchanges).filter(Exchange.exchange_name == "bittrex", Asset.ticker == "BTC").one() ETH = session.query(Asset).join(Exchange, Asset.exchanges).filter(Exchange.exchange_name == "bittrex", Asset.ticker == "ETH").one() LTC = session.query(Asset).join(Exchange, Asset.exchanges).filter(Exchange.exchange_name == "bittrex", Asset.ticker == "LTC").one() XZC = session.query(Asset).join(Exchange, Asset.exchanges).filter(Exchange.exchange_name == "bittrex", Asset.ticker == "XZC").one() bittrex = BittrexBroker(api_key = "APIKEY", secret_key = "SECRETKEY") bittrex.set_session(session = session)
from alchemist_lib.exchange import BittrexExchange from alchemist_lib.database import Session from alchemist_lib.database.asset import Asset from alchemist_lib.database.exchange import Exchange from alchemist_lib.database.instrument import Instrument from alchemist_lib.database.price_data_source import PriceDataSource from alchemist_lib.database.timetable import Timetable from alchemist_lib.database.broker import Broker from alchemist_lib.database.timeframe import Timeframe session = Session() bittrex = BittrexExchange() assets = session.query(Asset).join( Exchange, Asset.exchanges).filter(Exchange.exchange_name == "bittrex").all() print("All assets in db: ", assets) print("\n") for asset in assets: min_trade_size = bittrex.get_min_trade_size(asset) print("The min order size for ", asset.ticker, " is ", min_trade_size) print("\n") tradable = bittrex.are_tradable(assets=assets) print("All tradable assets: ", tradable)
from sqlalchemy import or_ from alchemist_lib.factor import Factor import alchemist_lib.utils as utils from alchemist_lib.database import Session from alchemist_lib.database.asset import Asset from alchemist_lib.database.exchange import Exchange from alchemist_lib.database.instrument import Instrument from alchemist_lib.database.price_data_source import PriceDataSource from alchemist_lib.database.timetable import Timetable from alchemist_lib.database.broker import Broker session = Session() fct = Factor(session=session) assets = session.query(Asset).filter( or_(Asset.ticker == "BCH", Asset.ticker == "ETH", Asset.ticker == "XZC")).all() print("All assets: ", utils.print_list(assets)) print("\n") hist = fct.history(assets, "*", "1D", 30) print("History: ", hist) print("\n") reg = fct.LinearRegression(hist, 5, field="close")
from alchemist_lib.database import Session from alchemist_lib.database.asset import Asset from alchemist_lib.database.exchange import Exchange from alchemist_lib.database.instrument import Instrument from alchemist_lib.database.price_data_source import PriceDataSource from alchemist_lib.database.timetable import Timetable from alchemist_lib.database.broker import Broker from alchemist_lib.database.timeframe import Timeframe from alchemist_lib.database.ptf_allocation import PtfAllocation from alchemist_lib.portfolio import LongsOnlyPortfolio import alchemist_lib.datafeed as dfeed session = Session() ptf = LongsOnlyPortfolio(capital=0.05) ts_name = "AccumulationZone" BTC = session.query(Asset).join(Exchange, Asset.exchanges).filter( Exchange.exchange_name == "poloniex", Asset.ticker == "BTC").one() ETH = session.query(Asset).join(Exchange, Asset.exchanges).filter( Exchange.exchange_name == "poloniex", Asset.ticker == "ETH").one() LTC = session.query(Asset).join(Exchange, Asset.exchanges).filter( Exchange.exchange_name == "poloniex", Asset.ticker == "LTC").one() BCH = session.query(Asset).join(Exchange, Asset.exchanges).filter( Exchange.exchange_name == "poloniex", Asset.ticker == "BCH").one() poloniex = PoloniexBroker(api_key="APIKEY", secret_key="SECRETKEY")
from alchemist_lib.portfolio.longsonly import LongsOnlyPortfolio import alchemist_lib.datafeed as dfeed def set_weights(df): alphas_sum = df["alpha"].sum() df["weight"] = np.nan for asset, alpha in zip(df.index.values, df["alpha"]): df.loc[asset, "weight"] = alpha / alphas_sum return df session = Session() assets = session.query(Asset).join(Exchange, Asset.exchanges).filter( Exchange.exchange_name == "poloniex", Asset.ticker.in_(["ETH", "BCH", "LTC"])).all() print("Assets: ", utils.print_list(assets), "\n") df = pd.DataFrame(data={ "asset": assets }, columns=["asset", "alpha"]).set_index("asset") for asset in df.index.values: df.loc[asset, "alpha"] = Decimal(random.uniform(0.5, 5.0)) df.sort_values(by=["alpha"], inplace=True) print("Random alphas: ", df)