{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[82189:MainThread](2021-03-02 21:02:54,241) INFO - qlib.Initialization - [config.py:276] - default_conf: client.\n", "[82189:MainThread](2021-03-02 21:02:54,255) WARNING - qlib.Initialization - [config.py:291] - redis connection failed(host=127.0.0.1 port=6379), cache will not be used!\n", "[82189:MainThread](2021-03-02 21:02:54,828) INFO - qlib.Initialization - [__init__.py:46] - qlib successfully initialized based on client settings.\n", "[82189:MainThread](2021-03-02 21:02:54,829) INFO - qlib.Initialization - [__init__.py:47] - data_path=/Users/xuanyidong/.qlib/qlib_data/cn_data\n" ] } ], "source": [ "import os\n", "import sys\n", "import qlib\n", "import pprint\n", "import numpy as np\n", "import pandas as pd\n", "qlib.init(provider_uri='~/.qlib/qlib_data/cn_data')\n", "\n", "from qlib.config import C\n", "from qlib.data import D\n", "from qlib.data.data import DatasetD, ExpressionD, Inst, Cal, FeatureD\n", "from qlib.data.cache import H\n", "from qlib.data.filter import NameDFilter\n", "from qlib.utils import code_to_fname, read_bin" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "nameDFilter = NameDFilter(name_rule_re='SH[0-9]{4}55')\n", "instruments_config = D.instruments(market='csi300', filter_pipe=[nameDFilter])\n", "instruments = D.list_instruments(instruments=instruments_config,\n", " start_time='2015-01-01',\n", " end_time='2016-02-15',\n", " as_list=True)\n", "\n", "fields = ['$close', '$volume', 'Ref($close, 1)', 'Mean($close, 3)', '$high-$low']\n", "features = D.features(instruments_config, fields, start_time='2010-01-01', end_time='2017-12-31', freq='day')\n", "print(type(features))" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " $close $volume Ref($close, 1) Mean($close, 3) \\\n", "instrument datetime \n", "SH600655 2010-01-04 8.934296 47799352.0 8.667867 8.691138 \n", " 2010-01-05 8.889880 29791234.0 8.934296 8.830681 \n", " 2010-01-06 8.845468 29002874.0 8.889880 8.889881 \n", " 2010-01-07 8.553690 38189440.0 8.845468 8.763013 \n", " 2010-01-08 8.645658 23417642.0 8.553690 8.681605 \n", "... ... ... ... ... \n", "SH601555 2017-12-25 1.393481 80615584.0 1.406559 1.408012 \n", " 2017-12-26 1.406559 64259856.0 1.393481 1.402200 \n", " 2017-12-27 1.400747 58551256.0 1.406559 1.400262 \n", " 2017-12-28 1.412371 96204872.0 1.400747 1.406559 \n", " 2017-12-29 1.412371 52801024.0 1.412371 1.408496 \n", "\n", " $high-$low \n", "instrument datetime \n", "SH600655 2010-01-04 0.412291 \n", " 2010-01-05 0.203006 \n", " 2010-01-06 0.250560 \n", " 2010-01-07 0.412291 \n", " 2010-01-08 0.275964 \n", "... ... \n", "SH601555 2017-12-25 0.020343 \n", " 2017-12-26 0.018890 \n", " 2017-12-27 0.017437 \n", " 2017-12-28 0.045045 \n", " 2017-12-29 0.013078 \n", "\n", "[2867 rows x 5 columns]\n" ] } ], "source": [ "print(features)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "LocalProvider\n", "Wrapper(provider=)\n", "Wrapper(provider=)\n", "\n", "LocalDatasetProvider\n", "--\n", "Wrapper(provider=)\n", "\n", "default_disk_cache: 1\n", "ExpressionD: Wrapper(provider=)\n", "FeatureD : \n" ] } ], "source": [ "# Provider:\n", "print(type(D._provider))\n", "print(type(C))\n", "print(C.provider)\n", "print(D)\n", "\n", "# DatasetD Provider\n", "print(DatasetD)\n", "print(DatasetD._provider)\n", "print(C.dataset_provider)\n", "\n", "print('--')\n", "print(Inst)\n", "print(Inst._provider)\n", "\n", "# Default Disk Cache\n", "print('default_disk_cache: {:}'.format(C.default_disk_cache))\n", "print('ExpressionD: {:}'.format(ExpressionD))\n", "print('FeatureD : {:}'.format(FeatureD._provider))" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "ename": "NameError", "evalue": "name 'pprint' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mpprint\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minstruments_config\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0minstruments_d\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mDatasetD\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_provider\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_instruments_d\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minstruments_config\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfreq\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'day'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mpprint\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mpprint\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minstruments_d\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mNameError\u001b[0m: name 'pprint' is not defined" ] } ], "source": [ "pprint.pprint(instruments_config)\n", "instruments_d = DatasetD._provider.get_instruments_d(instruments_config, freq='day')\n", "pprint.pprint(instruments_d)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2012-12-31 00:00:00 -> 2019-01-18 00:00:00\n", "\n", "[1.1059314, 1.0935822, 1.1059314, 1.0922102, 1.0839773, 1.0839773, 1.0181155,\n", " 1.0730004, 1.0867218, 1.068884,\n", " ...\n", " 1.1163876, 1.1208236, 1.1119517, 1.0986437, 1.1075157, 1.0971651, 1.1149089,\n", " 1.083857, 1.083857, 1.0956864]\n", "Length: 1439, dtype: float32\n" ] } ], "source": [ "instrument, field, freq = 'SH601555', '$close', 'day'\n", "all_dates = D.calendar(start_time='2011-12-31', end_time='2019-02-10', freq=freq)\n", "start_time, end_time = all_dates[0], all_dates[-11]\n", "print(str(start_time) + ' -> ' + str(end_time))\n", "obj = ExpressionD.expression(instrument, field, start_time, end_time, freq)\n", "print(obj.array)\n", "\n", "# expression = ExpressionD.get_expression_instance(field)\n", "# start_time = pd.Timestamp(start_time)\n", "# end_time = pd.Timestamp(end_time)\n", "# _, _, start_index, end_index = Cal.locate_index(start_time, end_time, freq='day', future=False)\n", "# print(start_index)\n", "# print(end_index)\n", "\n", "# fname = code_to_fname(instrument)\n", "# uri_data = FeatureD._uri_data.format(instrument.lower(), field[1:], freq)\n", "# print(uri_data)\n", "# # series = read_bin(uri_data, start_index, end_index)\n", "# series = read_bin(uri_data, 2850, 2870)\n", "# print(series)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Wrapper(provider=)\n", "Wrapper(provider=)\n", "Wrapper(provider=)\n" ] } ], "source": [ "from qlib.data import D\n", "from qlib.data.data import ExpressionD, Inst\n", "print(D)\n", "print(Inst)\n", "print(ExpressionD)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.3" } }, "nbformat": 4, "nbformat_minor": 4 }