Q: APIの動作を大まかに教えてください。また、簡単に説明した資料はありませんか?
- A
- 大まかな動作は、クライアント側でテキストを作成し、httpでAPIサーバーに投げ(指定URLのこと)、返信の文字列を取得するです。
プログラム開発前にとりあえずe支店・APIをブラウザで試して見たい方のために以下の資料を用意しています。表計算の「基本」シートをご参照ください。
立花証券・e支店・API専用ページ
5.マニュアル
1.共通説明
3)ブラウザからの利用方法
「e支店・API、ブラウザからの利用方法」
「基本」シート
Q: APIに設定する項目がわかりません
- A
- 以下の資料のp5以降に具体的なパラメータ例を記載させて頂いていますのでご参照ください。
立花証券・e支店・API専用ページ
5.マニュアル
※1.
「立花証券・e支店・API(v4)、REQUEST I/F、注文入力機能引数項目仕様」
また、pythonのサンプルプログラム中にもコメントで、そのコマンドの資料の該当箇所を表記させていただいていますのでご参照ください。
Q: 仮想URLの有効期限はいつまでですか?
- A
- ログインで返される sUrlRequestとsUrlEventの有効期限は、通常時の場合
1)ログアウト
2)同じユーザーIDでのログイン
3)API用サーバーの閉局(03:30)
のいずれかが最初に行われた時までになります。
仮想URLにつきましては
立花証券・e支店・API専用ページ
3.ご利用方法
5.仮想URLについて
をご参照ください。
またAPIの運用につきましては、
立花証券・e支店・API専用ページ
5.マニュアル
「立花証券・e支店・API、REQUEST I/F、マスタデータ利用方法」
p15/43 2-4-1.資料_株式タイムテーブル
等をご参照ください。
Q: APIは時刻チェックをしていますか?
- A
- APIは、p_sd_dateでクライアントからの時刻チェックをしています。
クライアントのシステム時刻をNTP等で合わせて頂き、APIに電文を投げる直前の時刻を設定してください。
APIの時刻のチェックにつきましては、
立花証券・e支店・API専用ページ
5.マニュアル
「立花証券・e支店・API(v4r2)、REQUEST I/F、利用方法、データ仕様」
p1/6
2. 利用方法
「※本番バージョン(v4r1)よりクライアントからの要求.p_sd_dateによる遅延等チェック機能を追加。 要求.p_sd_date < e支店・APIのサーバ時刻(ntp により同期)30秒(ネットワーク経路上での遅延検出)の場合はエラー応答(p_errno=8)を返す。上記機能追加により、本APIを利用する場合は該当機器の時刻を ntp などで正確に合わせる必要がある。」
の部分をご参照ください。
p_sd_dateの書式は上記資料p1/6にありますように、2022.02.28-11:04:41.997 のようなYYYY.MM.DD-HH:MM:SS.TTTの形式(秒の小数点以下は3桁)となります。
Q: sJsonOfmtによる動作の違いについて教えてください
- A
- クライアントからの送信は、引数項目番号、引数項目名共に可能です。APIからの返信は、sJsonOfmtで指定した形式になります。
”sJsonOfmt”:”0”の場合、APIからの返信は、引数項目番号で改行のない連続した文字列になります。
“sJsonOfmt”:“1”の場合APIからの返信は、引数項目番号で改行とインデントの入った文字列になります。
“sJsonOfmt”:“2”の場合APIからの返信は、引数項目番号で改行のない連続した文字列になります。
“sJsonOfmt”:“3”の場合APIからの返信は、引数項目番号で改行とインデントの入った文字列になります。
“sJsonOfmt”:“4”の場合APIからの返信は、引数項目名で改行のない連続した文字列になります。
“sJsonOfmt”:“5”の場合APIからの返信は、引数項目名で改行とインデントの入った文字列になります。
返信例
“sJsonOfmt”:“0”の場合の返信例
{"177":"2022.04.07-12:38:03.755","175":"11","176":"2022.04.07-12:38:03.718","174":"0","173":"","192":"CLMZanKaiKanougaku","328":"","576":"","534":"0","535":"","692":"0","693":"","591":"202204071238","588":"1904527","589":"0","306":"0"}
“sJsonOfmt”:“5”の場合の返信例
{
"p_sd_date":"2022.04.07-12:48:16.751",
"p_no":"11",
"p_rv_date":"2022.04.07-12:48:16.712",
"p_errno":"0",
"p_err":"",
"sCLMID":"CLMZanKaiKanougaku",
"sIssueCode":"",
"sSizyouC":"",
"sResultCode":"0",
"sResultText":"",
"sWarningCode":"0",
"sWarningText":"",
"sSummaryUpdate":"202204071248",
"sSummaryGenkabuKaituke":"1904527",
"sSummaryNisaKaitukeKanougaku":"0",
"sHusokukinHasseiFlg":"0"
}
Q: p_no はどのように設定しますか
- A
- p_noは、ログイン時の指定値で初期化します。ログイン後は、p_no > p_no(前回)となるようにインクリメントする必要が有ります。
立花証券・e支店・API専用ページ
5.マニュアル
2.各機能I/F説明
「立花証券・e支店・API(v4r2)、REQUEST I/F、利用方法、データ仕様」
p1/6に「※要求.p_no は認証要求の該当値を初期値とし、それ以降クライアントは要求送信時に+1(以上)し送信する。」と記載させていただいておりますのでご参照ください。
Q: パスワードを変更したら、APIでログインできなくなりました。他の標準Web等ではログインできます。
- A
- 第一暗証番号、第二暗証番号で記号を使った場合、APIでは記号をURLエンコーディングを行って使う必要が有ります。
「APIへ入力したい記号」→「APIへの実際の入力」
「#」→「%23」
「+」→「%2B」
「/」→「%2F」
「:」→「%3A」
「=」→「%3D」
APIのお知らせ
「サンプルプログラムでのurlエンコードについて」
をご参照ください。
記号を使っていない場合は、APIでのパスワードの入力内容を再度ご確認ください。
Q: プロバイダを変更したのですが、APIで株価の取得(CLMMfdsGetMarketPrice)を240回行うとAPIが反応しなくなります。バグですか。
- A
- お客様がご利用されているプロバイダーの技術的仕様による制約だと考えられます。
対策としては、制約のないプロバイダーに変更頂くか、APIのアクセス頻度を下げてお使い頂くかになります。
なお制約のあるプロバイダーをご利用の場合、プロバイダーにより反応しなくなるまでの回数は異なります。
「大規模NAT web 見られない」等で検索いただくと、この症状の解説が見つけられます。
Q: APIにより返済注文を一旦取消し後、再度発注しようとすると「信用建玉明細にデータがありません」のメッセージが返され発注できません。
- A
- 返済可能数量の確認をしてから返済注文を行ってください。
APIで返済注文の注文取消を行い、APIで正常に受け付けられた応答が返った場合でも、その建玉に対し即座に新たな返済注文を出すと、このようなエラーメッセージが返される場合があります。
返済注文の注文取消を行い、受付の応答が帰ってきた時点では、e支店側システムが注文取消の指示を受付けただけの状態です。
この後、
1)e支店システムから市場側システムに注文取消の電文が送られます。
2)これに対して市場側システムから非同期で注文取消完了通知が送られてきます。
3)この注文取消完了通知を受け、e支店システムの状態の更新が行われます。
以上が、注文取消の応答の後の動作の概略になります。
これらの一連の動作に掛かる時間は、e支店側システムの繁閑、市場側システムの繁閑により毎回異ります。
このためAPIで返済注文取消の応答を得た後に、確実に再度返済注文を出すためには、該当銘柄の信用建玉一覧(CLMShinyouTategyokuList)を取得し、返済可能数量(sOrderHensaiKanouSuryou)を確認してください。
取消した返済注文の数量が返されるようになれば、該当銘柄の返済注文を発注出来ます。
この質問の様に連続してAPIに注文・訂正・取消等を投げた場合に、後続の電文がエラーになる状況は、以下の場合でも起きます。
(1)新規注文 => 取消注文:新規注文処理中(板に乗る前)のエラー
(2)新規注文 => 訂正注文:新規注文処理中(板に乗る前)のエラー
(3)訂正注文 => 訂正注文:訂正注文処理中のエラー
(4)訂正注文 => 取消注文:訂正注文処理中のエラー
これらの場合は、
現物株預り一覧(CLMGenbutuKabuList)、
信用建玉一覧(CLMShinyouTategyokuList)、
注文約定一覧(CLMOrderList)、
可能額(CLMZanKaiKanougaku、CLMZanShinkiKanoIjiritu)
等を取得し、最初の電文の反映が完了していることを確認してから、後続の電文をAPIに投げてください。
Q: APIで歩み値は取得できますか?
- A
- 歩み値は、取得できません。
Q: APIが動かず困っています。どうすれば動かせるようになりますか?
- A
- 返信文字列の"p_errno"、”p_err"を調べてください。大体のエラー内容が分かりますので、それを基に対応してください。
例えば、以下のようなエラーとなった返信が有った場合、
返信文字列=
{
"p_no":"3"
"p_sd_date":"2023.02.21-09:26:49.606",
"p_rv_date":"2023.02.21-09:26:49.592",
"p_errno":"8",
"p_err":"引数(p_sd_date:[2023.02.20-19:26:49.493] is exceed time limit:[2023.02.21-09:26:19.606])エラー。",
"sCLMID":"CLMZanKaiKanougaku"
}
返信文字列の
"p_errno":"8",
"p_err":"引数(p_sd_date:[2023.02.20-19:26:49.493] is exceed time limit:[2023.02.21-09:26:19.606])エラー。",
を調べます。
p_errnoの内容は、マニュアル「立花証券・e支店・API(v4r5)、REQUEST I/F、利用方法、データ仕様」(立花証券・e支店・API専用ページ > 5.マニュアル > 1.共通説明 > 4.共通項目、認証機能)のp2の「【p_errno 一覧】」をご覧ください。
また、p_errで、どのチェックでエラーとなったか分かります(返らない場合もあります)。