価格システム分析
SolPYAPI
元富証券の Python モジュールをダウンロードした後、以下のコマンドで価格システムをインストールします:
pip install .\MasterLink_PythonAPI\SolPYAPI\PY_TradeD-0.1.15-py3-none-any.whl
ヒント
使用した際のバージョンは 0.1.15
です。
公式技術文書
コアモジュール
元富証券の Python モジュールを以下のコアモジュールに分けて解析しました:
ProductBasic
これは株式に関連する情報を記録し、返すためのクラスです。
オブジェクトの属性を展開
No. | フィールド名 | データ型 | フォーマット | 説明 |
---|---|---|---|---|
1 | Exchange | str | 取引所(TWSE、TAIFEX) | |
2 | Symbol | str | 商品コード(TWSE、TAIFEX) | |
3 | Category | str | 商品カテゴリ(TWSE、TAIFEX) | |
4 | TodayRefPrice | str | 参考価格(TAIFEX) | |
5 | RiseStopPrice | str | 上昇停止価格(TWSE、TAIFEX) | |
6 | FallStopPrice | str | 下降停止価格(TWSE、TAIFEX) | |
7 | ChineseName | str | UTF-8 | 商品の中国語名(TWSE) |
8 | PreTotalMatchQty | str | 前回取引日の取引量(TWSE、TAIFEX) | |
9 | PreTodayRefPrice | str | 前回取引日の参考価格(TWSE、TAIFEX) | |
10 | PreClosePrice | str | 前回取引日の終値(TWSE、TAIFEX) | |
11 | IndustryCategory | str | "産業別コード表"に基づく産業別(TWSE) | |
12 | StockCategory | str | “証券別コード表”に基づく証券別(TWSE) | |
13 | BoardRemark | str | ボード別の注記(TWSE) | |
14 | ClassRemark | str | クラス別の注記(TWSE) | |
15 | StockAnomalyCode | str | "株式異常コード表"に基づく株式異常コード(TWSE) | |
16 | NonTenParValueRemark | str | 非10元の額面記号(TWSE) | |
17 | AbnormalRecommendationIndicator | str | 異常推奨銘柄の注記(TWSE) | |
18 | AbnormalSecuritiesIndicator | str | 異常推奨証券の注記(TWSE) | |
19 | DayTradingRemark | str | "0":デフォルト値 "A":現物当日取引可能証券 "B":現物先売り先買い証券 空白:現物取引不可証券(TWSE) | |
20 | TradingUnit | str | 取引単位(TWSE) | |
21 | TickSize | str | 最小変動単位(TWSE) | |
22 | prodKind | str | 契約種類(TAIFEX) | |
23 | strikePriceDecimalLocator | str | オプション商品コードの行使価格の小数点以下桁数(TAIFEX) | |
24 | PreTotalTradingAmount | str | 前回取引日の総取引額(TWSE) | |
25 | DecimalLocator | str | 価格小数点桁数(TAIFEX) | |
26 | BeginDate | str | YYYYMMDD | 上場日(TAIFEX) |
27 | EndDate | str | YYYYMMDD | 上場終了日(TAIFEX) |
28 | FlowGroup | str | 流れグループ(TAIFEX) | |
29 | DeliveryDate | str | YYYYMMDD | 最終決済日(TAIFEX) |
30 | DynamicBanding | str | Y:適用, N:不適用 動的価格安定(TAIFEX) | |
31 | ContractSymbol | str | 契約コード(TAIFEX) | |
32 | ContractName | str | 契約名(TAIFEX) | |
33 | StockID | str | 現物株式コード(TAIFEX) | |
34 | StatusCode | str | N:正常 P:取引停止 U:上場予定 状態コード(TAIFEX) | |
35 | Currency | str | 通貨(TAIFEX) | |
36 | AcceptQuoteFlag | str | 価格の提供が可能か(TAIFEX) | |
37 | BlockTradeFlag | str | Y:可能 N:不可能 大口取引の可否(TAIFEX) | |
38 | ExpiryType | str | S:標準 W:週 単位(TAIFEX) | |
39 | UnderlyingType | str | E S:個別株 現物種別(TAIFEX) | |
40 | MarketCloseGroup | str | "商品終値時間グループ表" 商品の終値時間(TAIFEX) | |
41 | EndSession | str | 通常取引時間:0 取引後時間:1 取引時間(TAIFEX) | |
42 | isAfterHours | str | 朝盤 : 0 昼盤: 1 朝昼盤識別(TAIFEX) |
ProductTick
即時取引詳細情報。
オブジェクトの属性を展開
No. | フィールド名 | データ型 | フォーマット | 説明 |
---|---|---|---|---|
1 | Exchange | str | 取引所(TWSE、TAIFEX) | |
2 | Symbol | str | 商品コード(TWSE、TAIFEX) | |
3 | MatchTime | str | %H:%M:%S.%f | 成行時間(取引所) (TWSE、TAIFEX) |
4 | OrderBookTime | str | %H:%M:%S.%f | 五段階データ時間(取引所) (TWSE、TAIFEX) |
5 | TxSeq | str | 取引所シーケンス番号(成交情報) (TWSE、TAIFEX) | |
6 | ObSeq | str | 取引所シーケンス番号(五段階情報) (TWSE、TAIFEX) | |
7 | IsTxTrail | bool | 0: 非試撮、1: 試撮 取引試撮データ(TWSE、TAIFEX) | |
8 | Is5QTrial | bool | 0: 非試撮、1: 試撮 五段階試撮データ(TWSE、TAIFEX) | |
9 | IsTrail | bool | 0: 非試撮、1: 試撮 試撮データ(TWSE、TAIFEX) | |
10 | DecimalLocator | str | 価格小数点位置(TAIFEX) | |
11 | MatchPrice | str | 成行価格(TWSE、TAIFEX) | |
12 | MatchQty | str | 商品取引量(TAIFEX) | |
13 | MatchPriceList | list | 一回の価格、多くの取引価格(TWSE、TAIFEX) | |
14 | MatchQtyList | list | 一回の価格、多くの取引量(TWSE、TAIFEX) | |
15 | MatchBuyCount | str | 累積買い注文数(TAIFEX) | |
16 | MatchSellCount | str | 累積売り注文数(TAIFEX) | |
17 | TotalMatchQty | str | 商品取引総量(TWSE、TAIFEX) | |
18 | TotalTradingAmount | str | 商品取引総額(TWSE、TAIFEX) | |
19 | TradingUnit | str | 取引単位(TWSE、TAIFEX) | |
20 | DayHigh | str | 当日の最高価格(TWSE、TAIFEX) | |
21 | DayLow | str | 当日の最低価格(TWSE、TAIFEX) | |
22 | RefPrice | str | 参考価格(TWSE) | |
23 | BuyPrice | list | 五段階価格(買い価格) (TWSE、TAIFEX) | |
24 | BuyQty | list | 五段階価格(買い数量) (TWSE、TAIFEX) | |
25 | SellPrice | list | 五段階価格(売り価格) (TWSE、TAIFEX) | |
26 | SellQty | list | 五段階価格(売り数量) (TWSE、TAIFEX) | |
27 | AllMarketAmount | str | 市場全体の取引総額(TWSE) | |
28 | AllMarketVolume | str | 市場全体の取引数量(TWSE) | |
29 | AllMarketCnt | str | 市場全体の取引筆数(TWSE) | |
30 | AllMarketBuyCnt | str | 市場全体の買い注文数(TWSE) | |
31 | AllMarketSellCnt | str | 市場全体の売り注文数(TWSE) | |
32 | AllMarketBuyQty | str | 市場全体の買い注文量(TWSE) | |
33 | AllMarketSellQty | str | 市場全体の売り注文量(TWSE) | |
34 | IsFixedPriceTransaction | str | 固定価格取引か(TWSE) | |
35 | OpenPrice | str | 始値(TWSE、TAIFEX) | |
36 | FirstDerivedBuyPrice | str | 最初の買い価格(TAIFEX) | |
37 | FirstDerivedBuyQty | str | 最初の買い数量(TAIFEX) | |
38 | FirstDerivedSellPrice | str | 最初の売り価格(TAIFEX) | |
39 | FirstDerivedSellQty | str | 最初の売り数量(TAIFEX) | |
40 | TotalBuyOrder | str | 累積買い注文数(TAIFEX) | |
41 | TotalBuyQty | str | 累積買い注文契約数(TAIFEX) | |
42 | TotalSellOrder | str | 累積売り注文数(TAIFEX) | |
43 | TotalSellQty | str | 累積売り注文契約数(TAIFEX) | |
44 | ClosePrice | str | 終値(TAIFEX) | |
45 | SettlePrice | str | 決済価格(TAIFEX) |
RCode
これは、価格システムが返すエラーコードを記録するためのクラスです。
オブジェクトの属性を展開
値 | 名称 | 説明 |
---|---|---|
0 | OK | 成功 |
1 | SOLCLIENT_WOULD_BLOCK | API 呼び出しがブロックされるが、リクエストは非ブロックモード |
2 | SOLCLIENT_IN_PROGRESS | API 呼び出しが進行中(非ブロックモード) |
3 | SOLCLIENT_NOT_READY | API が完了できない、オブジェクトが準備されていない(例:セッションが接続されていない) |
4 | SOLCLIENT_EOS | 次の操作がストリーム終了を返す |
5 | SOLCLIENT_NOT_FOUND | MAP でフィールドが見つからない |
6 | SOLCLIENT_NOEVENT | コンテキストに処理するイベントがない |
7 | SOLCLIENT_INCOMPLETE | API 呼び出しが部分的に完了したが、すべての要求が完了していない |
8 | SOLCLIENT_ROLLBACK | 取引がロールバックされたとき、Commit()がこの値を返す |
9 | SOLCLIENT_EVENT | SolClient セッションイベント |
10 | CLIENT_ALREADY_CONNECTED | 接続済み |
11 | CLIENT_ALREADY_DISCONNECTED | 切断済み |
12 | ANNOUNCEMENT | アナウンスメッセージ |
-1 | FAIL | 失敗 |
-2 | CONNECTION_REFUSED | 接続拒否 |
-3 | CONNECTION_FAIL | 接続失敗 |
-4 | ALREADY_EXISTS | 対象オブジェクトがすでに存在 |
-5 | NOT_FOUND | 対象オブジェクトが存在しない |
-6 | CLIENT_NOT_READY | 接続が準備できていない |
-7 | USER_SUBSCRIPTION_LIMIT_EXCEEDED | サブスクリプション数の上限を超過 |
-8 | USER_NOT_APPLIED | 申請していない |
-9 | USER_NOT_VERIFIED | 認証されていない |
-10 | USER_VERIFICATION_FAIL | 認証失敗 |
-11 | SUBSCRIPTION_FAIL | 商品サブスクリプション失敗 |
-12 | RECOVERY_FAIL | 回復失敗 |
-13 | DOWNLOAD_PRODUCT_FAIL | 基本データファイルのダウンロード失敗 |
-14 | MESSAGE_HANDLER_FAIL | メッセージ処理エラー |
-15 | FUNCTION_SUBSCRIPTION_LIMIT_EXCEEDED | 機能サブスクリプション数超過 |
-16 | USER_NOT_VERIFIED_TWSE | TWSE で認証されていない |
-17 | USER_NOT_VERIFIED_TAIFEX | TAIFEX で認証されていない |
-18 | USER_NOT_VERIFIED_TWSE_TAIFEX | TWSE&TAIFEX で認証されていない |
-9999 | UNKNOWN_ERROR | 不明なエラー |
MarketDataMart
これは、価格システムの開始点となるクラスで、いくつかのメソッドを定義しています。
これらのメソッドは、例えば取引情報や注文情報などのイベントをトリガーするために使用されます。
その後の使用では、対応するイベントハンドラを手動でマウントする必要があります。
イベント | 説明 |
---|---|
Fire_OnSystemEvent | システムメッセージ通知 |
Fire_MarketDataMart_ConnectState | システム接続状態 |
Fire_OnUpdateBasic | 商品基本情報の更新 |
Fire_OnUpdateProductBasicList | 商品基本情報リストの更新 |
Fire_OnUpdateLastSnapshot | 商品最新スナップショット更新 |
Fire_OnMatch | 商品取引情報 |
Fire_OnOrderBook | 商品注文情報 |
Fire_OnUpdateTotalOrderQty | 商品注文量累計更新 |
Fire_OnUpdateOptionGreeks | オプション商品 Greeks 更新 |
Fire_OnUpdateOvsBasic | 海外商品基本情報更新 |
Fire_OnUpdateOvsMatch | 海外商品取引データ更新 |
Fire_OnUpdateOvsOrderBook | 海外商品五段階情報更新 |
Sol_D
このクラスの入力パラメータは MarketDataMart
クラスのインスタンスであり、直接 MarketDataMart
インスタンスを MasterQuoteDAPI
クラスに渡し、別のインスタンスを生成します。
MasterQuoteDAPI
の実装を確認すると、MarketDataMart
インスタンスを受け取った後、再度それを SolAPI
クラスに渡し、さらに別のインスタンスを生成します。
まあ、これは彼らの実装方式ですので、とりあえず気にしません。
Sol_D
クラスでは、ユーザーがよく使うメソッドがいくつか提供されています:
Sol_D.Login
: ログインSol_D.DisConnect
: ログアウトSol_D.Subscribe
: 商品価格のサブスクリプションSol_D.UnSubscribe
: 商品価格のサブスクリプション解除
また、いくつかのイベントハンドラがあり、外部関数を定義した後、それらの指定された方法でマウントする必要があります:
Sol_D.Set_OnLogEvent
: ログインイベントハンドラの設定Sol_D.Set_OnInterruptEvent
: システムイベントハンドラの設定Sol_D.Set_OnLoginResultEvent_DAPI
: ログイン結果イベントハンドラの設定Sol_D.Set_OnAnnouncementEvent_DAPI
: アナウンスメントイベントハンドラの設定Sol_D.Set_OnVerifiedEvent_DAPI
: 検証イベントハンドラの設定Sol_D.Set_OnSystemEvent_DAPI
: システムイベントハンドラの設定Sol_D.Set_OnUpdateBasic_DAPI
: 商品基本情報更新イベントハンドラの設定Sol_D.Set_OnMatch_DAPI
: 商品取引情報イベントハンドラの設定