python3でSBI証券にログインして発注する

たまーにこのサイトにどんなクエリで検索して来ているのかが気になることがあってね、そんなときにgoogleサーチコンソールの検索アナリティクスを見てみると

割とクリック数が多めのところに「python システムトレード」があった。

google様がこの投稿に誘導してくれているんだけど、サーバー移転の時にrsyncに失敗してフォルダごと消えたという事情でこの投稿にpythonコードはないのです。

すまぬ、すまぬ。

釣りのようなことをするのは忍びないので、思い出しながら書いてみた。

でも以前にしたことと同じことをするのは嫌なので、自分が裁量トレードに使っているSBI証券サイトにログインしてポートフォリオページからスクレイピングでリストを取り出してログアウトまでするコードを置いときます。

これをjupyter notebookで開いて(この環境が前提です)、真ん中あたりにある”enter id here”と”enter password here”の所にIDとパスワードを書いてから実行すればログインしてポートフォリオを取ってきます。

SBI証券にログインするJupyter notebook

実行例

実行するとポートフォリオページからリストを取り出してpandasデーターフレームにしていることを確認できます。

この投稿にかいてるようなことをやってますので説明は省略。同じやり方でセッション情報を持ちまわって売り・買い注文の自動執行できるはず。

ついでにその投稿にpythonが遅いとか書いているけど、これを書いているときに遅い原因がわかった。でもすでにHaskellに書き換えた後やし、まあええけど。

 

2017/8/13追記

皆がこのページに期待していたのは、SBI証券に発注するやりかただろうから、その部分をgistにしておきました。(でもhttp/httpsアクセスの方法はJupyter Notebookで書いた方を参考にしたほうがわかりやすいと思う)
ここには指し値現物売り注文の関数しかないけれども、コメントを参考にして買い注文でも成り行き注文でも好きな関数を書いてください。

自分のUser-Agentの確認方法はhttps://httpbin.org/user-agentにアクセスすればわかるので、それを設定してあげればいいんじゃないかな。

実行結果

ログイン後のホームページ
['重要なお知らせ', *******長いので省略*******]
"ポートフォリオ"ページ
[['取引', '銘柄(コード)', '現在値', '前日比', '前日比(%)', '売気配値', '売気配株数', '買気配値', '買気配株数', '出来高', '年初来高値', '年初来安値', '編集'], ['現買  現売', '4689 ヤフー', '496'*******長いので省略*******]
注文
['注文受付(現物売)', 'Z**-*******', '翌営業日発注分としてご注文を受付いたします。(**********)', 'ご注文を受け付けました。', 'ご注文内容', '受付時間', '17/08/13', '22:24', *******長いので省略*******]
ログアウト
['ログアウト', 'SBI証券をご利用いただきありがとうございました。', 'ログイン']

 

2018/2/3追記

もしSBI証券バックアップサイトに接続する方法に興味があるなら以下の投稿をどうぞ。

SBI証券の資産を確認するコードを用意する。

3 thoughts on “python3でSBI証券にログインして発注する

  1. ACT_loginのx座標とy座標とはどうやって調べるのですか?
    また座標はモニターの大きさで変わってくるのですか?
    もし時間があればご教示ください。

    1. ACT_loginは<input type=”image”>つまり画像ボタンなので画像がクリックされた位置(左上がx,y=0,0)をサーバーに送ることになっています。
      ACT_loginのx座標とy座標はボタン画像の大きさ以下で自由に決めればよいです。
      モニターの大きさとは関係ありません。
      この内容はMDN web docsに有りますので該当ページから引用します。

      These are the X and Y coordinates of the image that the mouse clicked on to submit the form, where (0,0) is the top-left of the image.
      developer.mozilla.org

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください