財務データのダウンロードと管理

この例では、qteasy モジュールを使用して、ローカルに保存されている財務データをダウンロード、管理、抽出する方法を示します。 QTEASY は、財務データのダウンロードと管理に役立つツールの完全なセットを提供します。 tushare サーバーから幅広い財務データをダウンロードしてローカルに保存し、バックテストや戦略の実行に必要なときにローカル ストレージから自動的に抽出できます。

Loacl データ ソース オブジェクト DataSource

qteasy には DataSource オブジェクトが定義されており、ローカル財務データ ソースを定義し、一連の組み込みローカル財務データ テーブルとデータ型を提供します。ユーザーは、さまざまなデータ タイプの ID を使用して、対応する財務データを直接読み取ることができます (これらの財務データがインターネットからダウンロードされ、ローカル データ ソースに保存されている場合)。

「close」や「pe」など、一般的に使用される大量の財務データが事前定義され、qteasy に組み込まれています。これらのデータは次のような広範囲をカバーしています。

  • 始値始値、終値終値、高値高、取引量ボリュームなどの出来高と価格。

  • 株価収益率pe、株価純資産倍率pbなどの財務指標

  • ebidta、ebit などの財務諸表。

  • 経営者名や企業の業種情報などの企業基本情報

上記のデータは事前​​定義されており、「データ テーブル」の形式でシステムに定義されています。このデータを使用する必要がある場合は、まずデータをローカルにダウンロードする必要があります。 DataSource オブジェクトは、データの保存方法と場所を定義します。 qteasy はデフォルトのデータ ソース オブジェクト QT_DATA_SOURCE を定義し、特別な命令がない限り、qteasy によって操作および使用されるすべてのデータはこのデータ ソース内にあります。

DataSource オブジェクトは、データをファイル形式 (csv、fth など) で保存したり、mysql データベースにデータを保存したりできます。財務データの量を考慮すると、データをデータベースに保存することをお勧めします。データの保存方法と保存場所はconfigurationまたはqteasyで設定できます。

DataSourceの2種類のデータソース

qt.DataSource(source_type, file_type='fth', file_loc='qteasy/data/', host='localhost', port=3306, user=None, password=None, db='qt_db')

ユーザーは、DataSource オブジェクトのデータを、データ ソースとも呼ばれるさまざまな形式で保存することを選択できます。 DataSource は現在、2 つの異なるデータ ソースをサポートしています。

  • db: データは mysql/Maria DB データベースに保存され、データベース接続を確立することでアクセスされます。

  • ファイル: データはファイル形式で指定されたフォルダーに保存されます。csv、hdf5、feather の 3 つのファイル形式をサポートします。

財務データの量が多いため (たとえば、全銘柄の日次 K ラインのヒストリカル データには 1,000 万行を超えるデータがあり、分単位の K ラインのデータ量はさらに多くなります)、データを保存するには mysql データベースを使用することをお勧めします。ローカル ファイルを使用してデータを保存すると、データ交換の効率が非常に低くなります。

次のパラメータは、ローカル データベースに接続する DataSource オブジェクトを確立するために使用されます。

import qteasy as qt
ds_db = qt.DataSource(source_type='db', host='localhost', port=3306, user='user', password='password', db='qt_db')

connection_type 属性を通じて、DataSource オブジェクトの接続の性質について知ることができます。

print(ds_db.connection_type)
ds_db
db:mysql://localhost@3306/qt_db

DataSource('db', 'localhost', 3306)

次のパラメータを使用して、ローカル フォルダーを使用して DataSource オブジェクトを確立できます。

import qteasy as qt
ds_csv = qt.DataSource(source_type='file', file_loc='src/data', file_type='csv')

print(ds_csv.connection_type)
ds_csv
file://csv@qt_root/qteasy/data

DataSource('file', 'qteasy/data', 'csv')

qt.configuration を使用して現在の構成変数を表示し、qt.QT_DATA_SOURCE を使用して現在のデータ ソースのタイプとパラメーターを表示します。

qt.configuration(config_key='local_data_source, local_data_file_type, local_data_file_path', default=False)
qt.QT_DATA_SOURCE
No. Config-Key            Cur Val        
-----------------------------------------
1   local_data_source     database
2   local_data_file_type  csv
3   local_data_file_path  qteasy/data/

DataSource('db', 'localhost', 3306)

履歴データの種類

qteasy は複数のデータタイプを管理し、これらのタイプのデータを自動的にダウンロードし、取引戦略を呼び出すためにローカルに保存できます。各タイプのデータには、組み込みのデータ ID (data_id) があります。この data_id に基づいて、ユーザーは対応するデータを表示、読み取り、ダウンロードできます。

qt.find_history_data(s, match_description=False, fuzzy=False, freq=None, asset_type=None, match_threshold=0.85,)

qt.find_history_data() は、qteasy のすべての組み込みデータ タイプを検索し、データ ID、アセット タイプ、頻度、およびデータの詳細な説明をリストします。 qt.get_history_data() を使用し、見つかったデータ ID をパラメータとして渡すと、ダウンロードした履歴データを直接表示できます。

import qteasy as qt
qt.find_history_data('pe')

出力は次のとおりです。

matched following history data, 
use "qt.get_history_data()" to load these historical data by its data_id:
------------------------------------------------------------------------
           freq asset             table                            desc
data_id                                                                
initial_pe    d     E         new_share                  新股上市信息 - 发行市盈率
pe            d   IDX   index_indicator                    指数技术指标 - 市盈率
pe            d     E   stock_indicator  股票技术指标 - 市盈率(总市值/净利润, 亏损的PE为空)
pe_2          d     E  stock_indicator2                  股票技术指标 - 动态市盈率
========================================================================
import qteasy as qt
qt.get_history_data('pe', '000001.SZ', start="20220101", end="20220201")
Out[16]: 
{'000001.SZ':
                  pe
 2022-01-04  11.1761
 2022-01-05  11.5048
 2022-01-06  11.4847
 2022-01-07  11.5384
 2022-01-10  11.5317
 2022-01-11  11.6792
 2022-01-12  11.4042
 2022-01-13  11.3908
 2022-01-14  10.9547
 2022-01-17  10.8809
 2022-01-18  11.0822
 2022-01-19  11.0688
 2022-01-20  11.6256
 2022-01-21  11.6390
 2022-01-24  11.5384
 2022-01-25  11.3036
 2022-01-26  11.1694
 2022-01-27  10.9346
 2022-01-28  10.6193
 2022-01-31  10.6193
 2022-02-01  10.6193}

ローカル データ ソース データを確認する

qt.get_table_overview() を使用すると、現在のデータ ソースに既にダウンロードされているデータの量を表示できます。データの量が多い場合、すべてのデータを分析し、データ テーブル内のデータ量、占有されているディスク領域、およびローカル データ ソース内のデータ範囲を出力するのに数分かかります。

ローカル データは複数のデータ テーブルに保存されており、qt.get_table_info() を使用して特定のデータ テーブルに関する詳細情報を取得することもできます。 データ テーブルの主キーの種類と値の範囲に加えて、各データ列の名前、意味、データ型も含まれます。

qt.get_table_info(table_name, data_source=None, verbose=True)

データ量 (行数)、占有ディスク容量、主キーの名前、データ範囲など、データ テーブルに関する情報を取得します。 verbose=True が設定されている場合は、列名、データ型、説明など、データテーブル内のデータ列の完全な情報を表示することもできます。

qt.get_table_overview(data_source=None)

データ ソース内のすべてのデータ テーブルのデータ量の概要を出力します。

qt.get_table_info() を使用してデータテーブルに関する情報を取得します。

qt.get_table_info('stock_15min', verbose=True)
<stock_15min>, 15.85GB/100.9M records on disc
primary keys: 
-----------------------------------
1:  ts_code:       *<CRITICAL>*
    <unknown> entries
    starts: 000001.SZ, end: 689009.SH
2:  trade_time:
    <unknown> entries
    starts: 20090105, end: 20220323

columns of table:
------------------------------------
      columns       dtypes remarks
0     ts_code  varchar(20)    证券代码
1  trade_time     datetime  交易日期时间
2        open        float     开盘价
3        high        float     最高价
4         low        float     最低价
5       close        float     收盘价
6         vol       double  成交量(股)
7      amount       double  成交额(元)

qt.get_table_overview()を使用して、DataSourceに保存されているすべてのローカルデータの概要を確認および表示します

qt.get_table_overview()
Analyzing local data source tables... depending on size of tables, it may take a few minutes
[########################################]62/62-100.0%  Analyzing completed!or>>>>>ht>or>>
db:mysql://localhost@3306/ts_db
Following tables contain local data, to view complete list, print returned DataFrame
                 Has_data Size_on_disk Record_count Record_start  Record_end
table                                                                       
trade_calendar     True        2.5MB         76K     1990-10-12   2022-12-31
stock_basic        True        1.5MB          5K           None         None
stock_names        True        2.4MB         13K     1990-12-10   2022-03-21
index_basic        True        4.5MB         11K           None         None
fund_basic         True        8.3MB         17K           None         None
future_basic       True        2.5MB          7K           None         None
opt_basic          True        4.5MB         10K           None         None
stock_15min        True      15.85GB      100.9M       20090105     20220323
stock_30min        True       6.66GB       38.9M       20090105     20220321
stock_hourly       True       3.41GB       38.3M       20090105     20220318
stock_daily        True       1.57GB       12.1M     1990-12-19   2022-03-22
stock_weekly       True      217.9MB        2.4M     1990-12-21   2022-03-18
stock_monthly      True       87.7MB        638K     1990-12-31   2022-02-28
index_15min        True       2.07GB       17.6M       20090105     20220323
index_30min        True       1.12GB        7.6M       20090105     20220318
index_hourly       True      602.0MB        7.1M       20090105     20220113
index_daily        True      357.0MB        2.2M     1990-12-19   2022-03-23
index_weekly       True       56.6MB        611K     1991-07-05   2022-03-18
index_monthly      True       22.5MB        139K     1991-07-31   2022-02-28
fund_hourly        True         16KB           0           None         None
fund_daily         True      165.3MB        1.6M     1998-04-07   2022-03-22
fund_nav           True      973.0MB       15.0M     2000-01-07   2022-03-22
fund_share         True       69.7MB        1.1M     1998-03-27   2022-03-18
fund_manager       True       84.7MB         40K     2000-02-22   2022-03-18
future_daily       True      384.0MB        2.0M     1995-04-17   2022-03-23
options_daily      True      753.0MB        5.3M     2015-02-09   2022-03-23
stock_adj_factor   True      688.0MB       11.0M     1990-12-19   2022-03-23
fund_adj_factor    True      112.7MB        1.9M     1998-04-07   2022-03-23
stock_indicator    True       2.31GB       11.6M     1999-01-01   2022-03-23
stock_indicator2   True      988.0MB        4.8M     2017-06-14   2022-03-23
index_indicator    True        5.5MB         45K     2004-01-02   2022-03-23
index_weight       True      841.9MB       10.5M     2005-04-08   2022-03-17
income             True       94.8MB        189K     1990-12-31   2021-12-31
balance            True      130.0MB        172K     1989-12-31   2021-12-31
cashflow           True      111.9MB        186K     1998-12-31   2021-12-31
financial          True      373.0MB        152K     1989-12-31   2021-12-31
forecast           True       50.6MB         86K     1998-12-31   2022-12-31
express            True        4.5MB         23K     2004-12-31   2021-12-31

HistoryPanel と get_history_data

qteasy 2.x では、qt.get_history_data()HistoryPanel を直接返すことが推奨されます。

import qteasy as qt

hp = qt.get_history_data(
    htypes='open, high, low, close, vol',
    shares='000300.SH,000905.SH',
    start='20230101',
    end='20231231',
)
print(hp)

HistoryPanel は軸を持つ 3D コンテナです。

  • 軸 0 (シェア): 機器リスト、例:銘柄コードまたはインデックスコード

  • 軸 1 (hdates): 時間軸 — タイムスタンプごとに 1 行

  • 軸 2 (htypes): openhighlowclosevol などの履歴データ型

hp[...] でスライスすると、生の ndarray ではなく、正しい軸ラベルを持つ サブ HistoryPanel が返されます。配列には hp['close'].values または hp['close'].to_numpy(copy=True) を使用します。名前付きスライスとコピー動作については、hp.subpanel(..., copy=True) を参照してください。

mask= のリサーチ マスクと API の場合は、hp.where(condition)hp を変更せずに hp.values に一致するブール配列を使用します。 HistoryPanel API および HistoryPanel チュートリアル を参照してください。

2.2.8 以降: 読み取り専用の列属性 (hp.closehp['close'])。比較 (hp.close > 100) は、hp.where(...) の numpy bool 配列を生成します。 hp.loc[key] (≡ hp[:, :, key]) による時間フィルタリング。 API「列アクセス、比較、および loc」およびチュートリアル §6.1 を参照してください。

戦略とビジュアライゼーションは、変換を繰り返すことなく 1 つの構造化オブジェクトを共有します。

既存の DataFrame または dict データを qt.dataframe_to_hp() に適応させ、同じ API を再利用します。

HistoryPanelから可視化へ

HistoryPanel.plot() は、既存の htype からチャート タイプ (ローソク足、出来高、MACD、ライン) を選択し、複数商品の比較をサポートします。

import qteasy as qt

hp = qt.get_history_data(
    htypes='open, high, low, close, vol',
    shares='000300.SH',
    start='20230101',
    end='20231231',
)

# 静态 K 线 + 成交量
hp.plot(interactive=False)

# 交互式 K 线(在 Jupyter 中体验更好)
hp.plot(interactive=True)

HistoryPanel.plot インタラクティブな視覚化 (Plotly)

hp.plot(interactive=True) は、ズーム、パン、ホバーを備えた Plotly を使用します。ノートブックでは、FigureWidget (ipywidgetsanywidget が必要) が推奨されます。それ以外の場合は HTML フォールバック。必要に応じて、`plotly_backend_app='auto'|'FigureWidget'|'html' を明示的に設定します。

依存関係とインストール

  • 基本的な対話性 (Plotly Figure):

pip install plotly
  • 完全なノートブックの対話機能 (FigureWidget + コールバック):

pip install ipywidgets anywidget

Plotly が欠落している場合、interactive=True は英語のエラー (例: 「plotly が必要です」) を生成するため、欠落している依存関係は非対話型の空のチャートを生成するのではなく、早期に失敗します。

plotly_backend_app: 出力モードとフォールバック

plotly_backend_app は、interactive=True の場合にのみ適用されます。

  • plotly_backend_app='auto': ノートブックでは FigureWidget を好みます。それ以外の場合は HTML ラッパー。スクリプトで生の Plotly Figure を返す場合があります。

  • plotly_backend_app='FigureWidget': FigureWidget を強制します。ノートブックにない場合、またはdepsが見つからない場合はエラー。

  • plotly_backend_app='html': HTML ラッパーを強制します。ノートブックにない場合はエラーになります。

主なインタラクティブ機能 (ユーザービュー)

  • ズーム/パンの一貫性: HTML と FigureWidget は X 軸の制約を共有します。つまり、表示される最小バー、境界外の場合はデータ範囲にパンし直します。

  • トップ OHLC サマリー: 完全な OHLC ローソク足メイン チャートが存在する場合に表示されます。最後のバーから始まり、クリックすると更新されます。折れ線のみのチャートでは非表示になります (終値のみなど)。

  • layout='overlay' 2 つの楽器の場合: バーをクリックするとプライマリ/セカンダリが切り替わります。不透明度と線幅の更新。 highlight は主計器の後に続きます。

  • 選択十字線: クリックするとメイン価格チャートに表示されます。ズーム/パンを同期します。選択したバーがスクロールして表示されなくなると非表示になります。

例: 2 つの一般的な対話型通話

例 1: 単一銘柄のインタラクティブなローソク足

hp.plot(interactive=True, plotly_backend_app='auto')

例 2: 2 つの楽器のオーバーレイ + ハイライト

hp2 = qt.get_history_data(
    htypes='open, high, low, close, vol',
    shares='000300.SH,000905.SH',
    start='20230101',
    end='20231231',
)
hp2.plot(
    interactive=True,
    layout='overlay',
    highlight='max',
    plotly_backend_app='html',
)

視覚化は「存在するものをプロット」に従います。

  • すでに HistoryPanel にある列のみ — プロット レイヤーで新しいインジケーターは計算されません

  • ローソク足、出来高、または MACD は、存在する対応する htype のみに依存します

一般的な htype からチャートへのマッピング:

グラフの種類

必要な htype の例

ローソク足

open, high, low, close

音量

⟦コード0⟧ または ⟦コード1⟧

MACD

macd_*, macd_signal_*, macd_hist_*

折れ線グラフ

任意の 1-D シリーズ (例: closepe)

MA/ボリンジャー/MACD の場合、HistoryPanel (hp.kline.ma()hp.kline.bbands()hp.kline.macd()) で計算し、列を追加してから、hp.plot() を追加します。

qt.candleとHistoryPanelの関係

qt.candle() は、1 つの金融商品のローソク足を 1 行にプロットするための高レベルのショートカットです。

  1. stockstartend を解析し、ローカル DataSource から取得します

  2. 単一商品 HistoryPanel に価格を適応させる

  3. リクエストされたインジケーター (MA、ボリンジャー、MACD) をHistoryPanel に追加します

  4. hp.plot(...) を呼び出してレンダリングします

既存の qt.candle 呼び出しを維持するか、HistoryPanel でプロットを直接制御します。

一般的な使用例:

import qteasy as qt

# 快速绘制日 K 线(内部走 HistoryPanel 可视化)
df = qt.candle(
    stock='000300.SH',
    start='2023-06-01',
    end='2023-12-01',
    asset_type='IDX',
    plot_type='candle',
    interactive=True,
)

print(df.head())  # df 为用于绘图的价格数据

plot_type 値:

  • 'candle' / 'c': OHLC ローソク足

  • 'ohlc' / 'o': 'candle' の近くの軽量エイリアス

  • 'line' / 'l': 1-D 価格線 (通常は close)

  • 'none' / 'n': データのみ、外部プロットの場合は DataFrame を返します

Renko ('renko' / 'r') は組み込まれなくなりました。専用の TA/チャート ライブラリを使用します。

過去のデータを取得し、DataSourceに保存します

DataSourceにデータが無い場合、qteasyがその役割を果たすことが難しくなります。したがって、最初のステップは、DataSource にデータを保存することです。 DataSource クラスは、DataSource に履歴データを取得して保存するための _fetch_table_data_from_tushare() 関数を提供します。この関数のパラメーターでは、DataFrame、csv ファイル名、または Excel ファイル名を直接指定できます。ネットワークデータプロバイダーのAPIに接続してデータを取得することもできます。 DataSource オブジェクトを使用してデータを取得および更新するメソッドは次のとおりです。

DataSource._fetch_table_data_from_tushare(table, channel, df=None, f_name=None, **kwargs)

外部データ ソースからデータを取得し、データ ソース内のデータ テーブルと一致するようにデータを調整およびクリーンアップします。

データ取得用のチャネル、ローカル ファイル、財務データ API を指定するか、次のオプションをサポートする local_df を直接提供します。

  • df : パラメータを通じて df を渡します。この df の列はテーブルの定義と同じである必要があります。

  • csv : ローカル CSV ファイルを通じてデータをインポートします。この時点で f_name パラメーターを指定する必要があります

  • excel : Excel ファイルを通じてデータをインポートします。この時点で f_name パラメーターを指定する必要があります

  • tushare : Tushare APIから財務データを取得します。対応する権限とポイントはご自身で申請してください

  • other : その他の金融データ API、まだ開発されていません

DataSource.update_table_data()

入力 df を検査し、要件を満たさない列または行を削除し、データをテーブルにマージします。これには次の手順が含まれます。

  1. ダウンロードしたデータテーブルの列名がデータテーブルの定義と同じかどうかを検査し、余分な列を削除します

  2. データソースタイプが「db」の場合、ダウンロードしたデータのうちローカルデータと重複する部分を削除し、新しいデータのみを保持します

  3. データソースの種類が「ファイル」の場合、ダウンロードしたデータをローカル データとマージし、重複を削除します。

DataSource.read_table_data()

ローカル ファイルからデータを取得し、DataSource に保存します。

次のコード例では、DataFrame に保存されているデータを DataSource に保存します

# stock_data 是事先准备好的股票价格数据,格式为pd.DataFrame
df = ds_csv._fetch_table_data_from_tushare(table='stock_basic', channel='df', df=stock_data)
ds_csv.update_table_data('stock_basic', df)
ds_csv.table_data_exists('stock_basic')

tushare を通じてデータを取得し、DataSource に保存します。

tushare は、大量の金融データを提供する Web 金融データ API です。ただし、一部のデータは獲得にポイントが必要です。ご自身でtushareアカウントを申請し、対応するポイントを取得してください。 tushare ドキュメントはここにあります: https://tushare.pro/document/2

tushare に接続してデータを取得する場合は、データテーブルの名前を指定するだけです。 DataSource は、対応する tushare API を自動的に呼び出して、データをダウンロードします。

df = ds_csv._fetch_table_data_from_tushare(table='trade_calendar', channel='tushare')
ds_csv.update_table_data('trade_calendar', df)
ds_csv.table_data_exists('trade_calendar')

tushare からデータをダウンロードし、ローカル データ ソースに保存します

qteasy は、tushare データ インターフェイスを提供します。対応する tushare 権限を取得した後、tushare から財務データをバッチで直接ダウンロードし、データをローカル データ ソースに更新できます。 たとえば、次のコマンドは、2022 年 3 月から 9 月までのすべての株式日次 K ライン データをローカルにダウンロードします。 データをダウンロードする前に、stock_daily テーブルの情報を確認してください。

qt.refill_data_source(data_source, *args, **kwargs)

tushare に接続して必要なデータをダウンロードし、対応するデータ テーブルに保存します。ダウンロードするデータ テーブルの名前を指定し、start_dateend_date でデータの範囲を制限し、freqasset_type などで異なるデータ タイプを指定します。テーブル データをダウンロードして、適切な場所に保存できます。 重複するデータは無視されるか、既存のデータが上書きされます。

qt.refill_data_source() tables は、名前またはグループごとに、補充するテーブルを選択します。

  • cal: 取引所ごとの取引カレンダー

  • basics: 基本情報テーブル (株式、ファンド、指数、先物、オプション)

  • adj: 調整価格の調整係数表

  • data: 過去の OHLCV テーブル (日次/週次/月次)

  • events: 企業/イベントテーブル (名前変更、マネージャー変更、ファンドシェアなど)

  • report: 財務諸表および報告書

  • comp: インデックスの構成とウェイト

  • all: すべてのテーブル — 大量のダウンロード。バッチで補充する

ダウンロード後、qt.get_history_data()を使用してください。複数の共有では、コードをキーとした dict が返されます。

例: stock_daily は 2022-03-22 に終了し、約 1210 万行になります

qt.get_table_info('stock_daily', verbose=False)
<stock_daily>, 1.57GB/12.1M records on disc
primary keys: 
-----------------------------------
1:  ts_code:
    <unknown> entries
    starts: 000001.SZ, end: 873527.BJ
2:  trade_date:       *<CRITICAL>*
    <unknown> entries
    starts: 1990-12-19, end: 2022-03-22

2022 年 3 月から 2022 年 10 月まで、qt.refill_data_source() を使用して stock_daily を補充します

qt.refill_data_source(tables='stock_daily', 
                      start_date='20220301',
                      end_date='20221031')

Refill には、進行状況、行数、経過時間が表示されます。大規模なジョブは時間がかかります。並列スレッドはダウンロードを高速化しますが、Tushare のレート制限に達する可能性があります。

[########################################]8/8-100.0%  <trade_calendar:SSE-INE>65417wrtn in 2'24"448
[########################################]163/163-100.0%  <stock_daily:20220301-20221031>786300wrtn in 2'42"199

補充後、stock_daily は 2022 年 10 月 31 日までに最大 1,280 万行 (+700k) まで増加します。

qt.get_table_info('stock_daily', verbose=False)
<stock_daily>, 1.57GB/12.8M records on disc
primary keys: 
-----------------------------------
1:  ts_code:
    <unknown> entries
    starts: 000001.SZ, end: 873527.BJ
2:  trade_date:       *<CRITICAL>*
    <unknown> entries
    starts: 1990-12-19, end: 2022-10-31

ローカル データ アクセスと視覚化

データがローカルにあれば、簡単にフェッチできます。 OHLCV はローソク足または線として視覚化できます

基本的なセキュリティ情報

qt.get_basic_info(code_or_name: str, asset_types=None, match_full_name=False, printout=True, verbose=False)

get_basic_info(code_or_name) はコードまたは名前を受け入れます。グローバル一致では、asset_type が範囲を狭めない限り、すべてのヒットがリストされます。 match_full_name=True フルネームのあいまい一致

qt.get_stock_info(code_or_name: str, asset_types=None, match_full_name=False, printout=True, verbose=False)

get_basic_info()の別名

銘柄コードをフィルターする

qt.filter_stocks(date: str = 'today', **kwargs)

上場日、地域、業種、規模、指数メンバーシップなどで銘柄をフィルターし、情報を印刷します

qt.filter_stock_codes(date: str = 'today', **kwargs)

同じフィルター、完全な株式コードを返します

過去の財務データを抽出する

qt.get_history_data(htypes, shares=None, start=None, end=None, freq=None, asset_type=None, adj=None, as_data_frame=True, group_by=None, **kwargs)

データ型、コード、日付範囲、および頻度によってデフォルトの QT_DATA_SOURCE から読み取ります。コードまたはタイプをキーとした辞書内の DataFrame または HistoryPanel オブジェクトを返します

OHLCVの可視化

qt.candle(stock=None, start=None, end=None, stock_data=None, asset_type=None, freq=None, plot_type='candle', interactive=True, data_source=None, **kwargs)

ローカル価格データを取得し、完全で動的で高度なローソク足チャートをレンダリングします

例:

基本的なセキュリティ情報を調べる

DataSource にデータがある場合、qt.get_basic_info() は 6 桁のコードまたは名前で証券を検索します (あいまい検索またはワイルドカード検索をサポート)

例:6桁のコードによる検索

qt.get_basic_info('601728')
found 1 matches, matched codes are {'E': {'601728.SH': '中国电信'}, 'IDX': {}, 'FT': {}, 'FD': {}, 'OPT': {}, 'count': 1}
More information for asset type E:
------------------------------------------
ts_code       601728.SH
name               中国电信
area                 北京
industry           电信运营
fullname     中国电信股份有限公司
list_status           L
list_date    2021-08-20
-------------------------------------------

または、名前で検索します。あいまい一致では複数のヒットが返される場合があります。例:

qt.get_basic_info('中国证券')
Too many matched codes 128, best matched are
{'E': {'000728.SZ': '国元证券'}, 'IDX': {'100630.CIC': '中金证券'}, 'FD': {'001552.OF': '天弘中证证券保险A'}}
pass "verbose=Ture" to view all matched assets
More information for asset type E:
------------------------------------------
ts_code       000728.SZ
name               国元证券
area                 安徽
industry             证券
fullname     国元证券股份有限公司
list_status           L
list_date    1997-06-16
-------------------------------------------
More information for asset type IDX:
------------------------------------------
ts_code   100630.CIC
name            中金证券
fullname      中金证券指数
publisher       中金公司
category          其他
list_date       None
-------------------------------------------
More information for asset type FD:
------------------------------------------
ts_code        001552.OF
name           天弘中证证券保险A
management          天弘基金
custodian           国泰君安
fund_type            股票型
issue_date    2015-06-29
issue_amount        0.05
invest_type        被动指数型
type              契约型开放式
-------------------------------------------

名前によるワイルドカード検索がサポートされています

qt.get_basic_info('中国?通')
found 2 matches, matched codes are {'E': {'600050.SH': '中国联通', '601698.SH': '中国卫通'}, 'IDX': {}, 'FD': {}, 'count': 2}
More information for asset type E:
------------------------------------------
ts_code           600050.SH     601698.SH
name                   中国联通          中国卫通
area                     北京            北京
industry               电信运营          电信运营
fullname     中国联合网络通信股份有限公司  中国卫通集团股份有限公司
list_status               L             L
list_date        2002-10-09    2019-06-28
-------------------------------------------

デフォルトではフルネームは一致しません。必要に応じてフルネームの一致を設定します。例:

# 使用‘贵州钢绳’为关键字搜索股票代码,不匹配全名时,找不到匹配的结果:
qt.get_basic_info('贵州钢绳')

出力:

found 0 matches, matched codes are {'E': {}, 'IDX': {}, 'FD': {}, 'count': 0}
# 然而如果设置了匹配全名`match_full_name=True`,则能够找到匹配的代码:
qt.get_basic_info('贵州钢绳', match_full_name=True)

出力:

found 1 matches, matched codes are {'E': {'600992.SH': '贵绳股份'}, 'IDX': {}, 'FD': {}, 'count': 1}
More information for asset type E:
------------------------------------------
ts_code       600992.SH
name               贵绳股份
area                 贵州
industry            钢加工
fullname     贵州钢绳股份有限公司
list_status           L
list_date    2004-05-14
-------------------------------------------

qt.filter_stocks は、基準に基づいて株式をフィルタリングします。例:

# 筛选2000年以后发行的HS300指数成份股
qt.filter_stocks(date = '20000101', index='000300.SH')

symbol name area industry market list_date exchange
ts_code
000001.SZ 000001 平安银行 深圳 银行 主板 1991-04-03 SZSE
000002.SZ 000002 万科A 深圳 全国地产 主板 1991-01-29 SZSE
000063.SZ 000063 中兴通讯 深圳 通信设备 主板 1997-11-18 SZSE
000069.SZ 000069 华侨城A 深圳 旅游景点 主板 1997-09-10 SZSE
000100.SZ 000100 TCL科技 广东 元器件 主板 2004-01-30 SZSE
... ... ... ... ... ... ... ...
603486.SH 603486 科沃斯 江苏 家用电器 主板 2018-05-28 SSE
605499.SH 605499 东鹏饮料 深圳 软饮料 主板 2021-05-27 SSE
688561.SH 688561 奇安信-U 北京 软件服务 科创板 2020-07-22 SSE
688599.SH 688599 天合光能 江苏 电气设备 科创板 2020-06-10 SSE
688981.SH 688981 中芯国际 上海 半导体 科创板 2020-07-16 SSE

397 rows × 7 columns

# 筛选行业为“航空或全国地产,且区域为‘上海、北京及山东“的股票
qt.filter_stocks(industry='航空, 全国地产', area='上海,北京,山东')
name area industry market list_date exchange
ts_code
000402.SZ 金融街 北京 全国地产 主板 1996-06-26 SZSE
000620.SZ 新华联 北京 全国地产 主板 1996-10-29 SZSE
002111.SZ 威海广泰 山东 航空 中小板 2007-01-26 SZSE
002829.SZ 星网宇达 北京 航空 中小板 2016-12-13 SZSE
002933.SZ 新兴装备 北京 航空 中小板 2018-08-28 SZSE
002985.SZ 北摩高科 北京 航空 中小板 2020-04-29 SZSE
300034.SZ 钢研高纳 北京 航空 创业板 2009-12-25 SZSE
300719.SZ 安达维尔 北京 航空 创业板 2017-11-09 SZSE
300965.SZ 恒宇信通 北京 航空 创业板 2021-04-02 SZSE
600118.SH 中国卫星 北京 航空 主板 1997-09-08 SSE
600372.SH 中航电子 北京 航空 主板 2001-07-06 SSE
600657.SH 信达地产 北京 全国地产 主板 1993-05-24 SSE
600708.SH 光明地产 上海 全国地产 主板 1996-06-06 SSE
600748.SH 上实发展 上海 全国地产 主板 1996-09-25 SSE
600760.SH 中航沈飞 山东 航空 主板 1996-10-11 SSE
600791.SH 京能置业 北京 全国地产 主板 1997-01-30 SSE
600823.SH 世茂股份 上海 全国地产 主板 1994-02-04 SSE