メインコンテンツまでスキップ

価格システム分析

SolPYAPI

元富証券の Python モジュールをダウンロードした後、以下のコマンドで価格システムをインストールします:

pip install .\MasterLink_PythonAPI\SolPYAPI\PY_TradeD-0.1.15-py3-none-any.whl
ヒント

使用した際のバージョンは 0.1.15 です。

公式技術文書

コアモジュール

元富証券の Python モジュールを以下のコアモジュールに分けて解析しました:

ProductBasic

これは株式に関連する情報を記録し、返すためのクラスです。

オブジェクトの属性を展開
No.フィールド名データ型フォーマット説明
1Exchangestr取引所(TWSE、TAIFEX)
2Symbolstr商品コード(TWSE、TAIFEX)
3Categorystr商品カテゴリ(TWSE、TAIFEX)
4TodayRefPricestr参考価格(TAIFEX)
5RiseStopPricestr上昇停止価格(TWSE、TAIFEX)
6FallStopPricestr下降停止価格(TWSE、TAIFEX)
7ChineseNamestrUTF-8商品の中国語名(TWSE)
8PreTotalMatchQtystr前回取引日の取引量(TWSE、TAIFEX)
9PreTodayRefPricestr前回取引日の参考価格(TWSE、TAIFEX)
10PreClosePricestr前回取引日の終値(TWSE、TAIFEX)
11IndustryCategorystr"産業別コード表"に基づく産業別(TWSE)
12StockCategorystr“証券別コード表”に基づく証券別(TWSE)
13BoardRemarkstrボード別の注記(TWSE)
14ClassRemarkstrクラス別の注記(TWSE)
15StockAnomalyCodestr"株式異常コード表"に基づく株式異常コード(TWSE)
16NonTenParValueRemarkstr非10元の額面記号(TWSE)
17AbnormalRecommendationIndicatorstr異常推奨銘柄の注記(TWSE)
18AbnormalSecuritiesIndicatorstr異常推奨証券の注記(TWSE)
19DayTradingRemarkstr"0":デフォルト値 "A":現物当日取引可能証券 "B":現物先売り先買い証券 空白:現物取引不可証券(TWSE)
20TradingUnitstr取引単位(TWSE)
21TickSizestr最小変動単位(TWSE)
22prodKindstr契約種類(TAIFEX)
23strikePriceDecimalLocatorstrオプション商品コードの行使価格の小数点以下桁数(TAIFEX)
24PreTotalTradingAmountstr前回取引日の総取引額(TWSE)
25DecimalLocatorstr価格小数点桁数(TAIFEX)
26BeginDatestrYYYYMMDD上場日(TAIFEX)
27EndDatestrYYYYMMDD上場終了日(TAIFEX)
28FlowGroupstr流れグループ(TAIFEX)
29DeliveryDatestrYYYYMMDD最終決済日(TAIFEX)
30DynamicBandingstrY:適用, N:不適用 動的価格安定(TAIFEX)
31ContractSymbolstr契約コード(TAIFEX)
32ContractNamestr契約名(TAIFEX)
33StockIDstr現物株式コード(TAIFEX)
34StatusCodestrN:正常 P:取引停止 U:上場予定 状態コード(TAIFEX)
35Currencystr通貨(TAIFEX)
36AcceptQuoteFlagstr価格の提供が可能か(TAIFEX)
37BlockTradeFlagstrY:可能 N:不可能 大口取引の可否(TAIFEX)
38ExpiryTypestrS:標準 W:週 単位(TAIFEX)
39UnderlyingTypestrE S:個別株 現物種別(TAIFEX)
40MarketCloseGroupstr"商品終値時間グループ表" 商品の終値時間(TAIFEX)
41EndSessionstr通常取引時間:0 取引後時間:1 取引時間(TAIFEX)
42isAfterHoursstr朝盤 : 0 昼盤: 1 朝昼盤識別(TAIFEX)

ProductTick

即時取引詳細情報。

オブジェクトの属性を展開
No.フィールド名データ型フォーマット説明
1Exchangestr取引所(TWSE、TAIFEX)
2Symbolstr商品コード(TWSE、TAIFEX)
3MatchTimestr%H:%M:%S.%f成行時間(取引所) (TWSE、TAIFEX)
4OrderBookTimestr%H:%M:%S.%f五段階データ時間(取引所) (TWSE、TAIFEX)
5TxSeqstr取引所シーケンス番号(成交情報) (TWSE、TAIFEX)
6ObSeqstr取引所シーケンス番号(五段階情報) (TWSE、TAIFEX)
7IsTxTrailbool0: 非試撮、1: 試撮 取引試撮データ(TWSE、TAIFEX)
8Is5QTrialbool0: 非試撮、1: 試撮 五段階試撮データ(TWSE、TAIFEX)
9IsTrailbool0: 非試撮、1: 試撮 試撮データ(TWSE、TAIFEX)
10DecimalLocatorstr価格小数点位置(TAIFEX)
11MatchPricestr成行価格(TWSE、TAIFEX)
12MatchQtystr商品取引量(TAIFEX)
13MatchPriceListlist一回の価格、多くの取引価格(TWSE、TAIFEX)
14MatchQtyListlist一回の価格、多くの取引量(TWSE、TAIFEX)
15MatchBuyCountstr累積買い注文数(TAIFEX)
16MatchSellCountstr累積売り注文数(TAIFEX)
17TotalMatchQtystr商品取引総量(TWSE、TAIFEX)
18TotalTradingAmountstr商品取引総額(TWSE、TAIFEX)
19TradingUnitstr取引単位(TWSE、TAIFEX)
20DayHighstr当日の最高価格(TWSE、TAIFEX)
21DayLowstr当日の最低価格(TWSE、TAIFEX)
22RefPricestr参考価格(TWSE)
23BuyPricelist五段階価格(買い価格) (TWSE、TAIFEX)
24BuyQtylist五段階価格(買い数量) (TWSE、TAIFEX)
25SellPricelist五段階価格(売り価格) (TWSE、TAIFEX)
26SellQtylist五段階価格(売り数量) (TWSE、TAIFEX)
27AllMarketAmountstr市場全体の取引総額(TWSE)
28AllMarketVolumestr市場全体の取引数量(TWSE)
29AllMarketCntstr市場全体の取引筆数(TWSE)
30AllMarketBuyCntstr市場全体の買い注文数(TWSE)
31AllMarketSellCntstr市場全体の売り注文数(TWSE)
32AllMarketBuyQtystr市場全体の買い注文量(TWSE)
33AllMarketSellQtystr市場全体の売り注文量(TWSE)
34IsFixedPriceTransactionstr固定価格取引か(TWSE)
35OpenPricestr始値(TWSE、TAIFEX)
36FirstDerivedBuyPricestr最初の買い価格(TAIFEX)
37FirstDerivedBuyQtystr最初の買い数量(TAIFEX)
38FirstDerivedSellPricestr最初の売り価格(TAIFEX)
39FirstDerivedSellQtystr最初の売り数量(TAIFEX)
40TotalBuyOrderstr累積買い注文数(TAIFEX)
41TotalBuyQtystr累積買い注文契約数(TAIFEX)
42TotalSellOrderstr累積売り注文数(TAIFEX)
43TotalSellQtystr累積売り注文契約数(TAIFEX)
44ClosePricestr終値(TAIFEX)
45SettlePricestr決済価格(TAIFEX)

RCode

これは、価格システムが返すエラーコードを記録するためのクラスです。

オブジェクトの属性を展開
名称説明
0OK成功
1SOLCLIENT_WOULD_BLOCKAPI 呼び出しがブロックされるが、リクエストは非ブロックモード
2SOLCLIENT_IN_PROGRESSAPI 呼び出しが進行中(非ブロックモード)
3SOLCLIENT_NOT_READYAPI が完了できない、オブジェクトが準備されていない(例:セッションが接続されていない)
4SOLCLIENT_EOS次の操作がストリーム終了を返す
5SOLCLIENT_NOT_FOUNDMAP でフィールドが見つからない
6SOLCLIENT_NOEVENTコンテキストに処理するイベントがない
7SOLCLIENT_INCOMPLETEAPI 呼び出しが部分的に完了したが、すべての要求が完了していない
8SOLCLIENT_ROLLBACK取引がロールバックされたとき、Commit()がこの値を返す
9SOLCLIENT_EVENTSolClient セッションイベント
10CLIENT_ALREADY_CONNECTED接続済み
11CLIENT_ALREADY_DISCONNECTED切断済み
12ANNOUNCEMENTアナウンスメッセージ
-1FAIL失敗
-2CONNECTION_REFUSED接続拒否
-3CONNECTION_FAIL接続失敗
-4ALREADY_EXISTS対象オブジェクトがすでに存在
-5NOT_FOUND対象オブジェクトが存在しない
-6CLIENT_NOT_READY接続が準備できていない
-7USER_SUBSCRIPTION_LIMIT_EXCEEDEDサブスクリプション数の上限を超過
-8USER_NOT_APPLIED申請していない
-9USER_NOT_VERIFIED認証されていない
-10USER_VERIFICATION_FAIL認証失敗
-11SUBSCRIPTION_FAIL商品サブスクリプション失敗
-12RECOVERY_FAIL回復失敗
-13DOWNLOAD_PRODUCT_FAIL基本データファイルのダウンロード失敗
-14MESSAGE_HANDLER_FAILメッセージ処理エラー
-15FUNCTION_SUBSCRIPTION_LIMIT_EXCEEDED機能サブスクリプション数超過
-16USER_NOT_VERIFIED_TWSETWSE で認証されていない
-17USER_NOT_VERIFIED_TAIFEXTAIFEX で認証されていない
-18USER_NOT_VERIFIED_TWSE_TAIFEXTWSE&TAIFEX で認証されていない
-9999UNKNOWN_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: 商品取引情報イベントハンドラの設定