一部のストラテジーの取引を自動化
予定より時間がかかりましたが、いま運用しているストの中で一番単純なものを、VPSサーバ上で運用の自動化をすることができました。
実現方法としては、前に言ったとおりCentOSのVPSサーバ上でSeleniumを使用してブラウザ自動操作です。PythonやらSelenium Driverやらのインストールと設定(その辺の説明は割愛しますが)をしたあと、たとえばこんなスクリプトを走らせると自動注文することができます。↓↓
(カブドットコム証券の場合)
# -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import Select from selenium.common.exceptions import NoSuchElementException user = "xxxxxxxx" #ユーザID password = "xxxxxxxx" #パスワード stock_code = "169090019" #日経225mini先物 2014年9月限 market = "23" #日中 qty = 1 url_login = "https://s10.kabu.co.jp/_mem_bin/members/login.asp?/members/" url_order = "https://s20.si1.kabu.co.jp/ap/pc/trade/orderderiv/openinput" driver = webdriver.Firefox() driver.implicitly_wait(30) #ログイン driver.get(url_login) driver.find_element_by_name("SsLogonUser").clear() driver.find_element_by_name("SsLogonUser").send_keys(user) driver.find_element_by_id("PASSWORD1").clear() driver.find_element_by_id("PASSWORD1").send_keys(password) driver.find_element_by_id("image1").click() #成行注文 url =url_order + "?symbol=" +stock_code + "&market=" + market driver.get(url) driver.find_element_by_id("orderInput_btn1").click() #買 #driver.find_element_by_id("orderInput_btn2").click() #売 driver.find_element_by_id("Qty").clear() driver.find_element_by_id("Qty").send_keys(qty) driver.find_element_by_id("orderInput_btn4").click() #成行 driver.find_element_by_name("B3").click() #driver.find_element_by_name("B3").click() #もう一度クリックで注文確定
見てのとおり注文を自動で出すだけならとても簡単なんですよね。
トレードの自動化ともなると新規注文だけじゃなくて、取引限月の管理、約定結果の確認、その中から返済注文を出さなきゃいけないし、そういう所の状態管理が思っていたよりずっと大変でした。
あとは証券会社によって注文画面の構成が全く違うところ。カブドットコム証券はおそらく自動化しやすい方かもしれません、SBI証券はフレーム多用しすぎ&セッションに状態持ちすぎでとてもイラっとするページ構成だったので解析をあきらめました。
コンピュータトレーディング入門 (現代の錬金術師シリーズ 49)
- 作者: 高橋謙吾
- 出版社/メーカー: パンローリング
- 発売日: 2007/09/14
- メディア: 単行本(ソフトカバー)
- 購入: 3人 クリック: 8回
- この商品を含むブログ (1件) を見る