Seleniumを使ったFXや株の自動取引

システムトレード系の情報です。↓

FXや株の自動取引ツールの作り方

基本的なアイデアとしては、「通常は人が手で行うブラウザの操作を、プログラムで実行する」というものです。
人がたとえばFXの取引をするとき、ブラウザ上でまず取引業者のサイトに行き、ユーザネームとパスワードを入れてログインボタンをクリックします。それから、価格ボード上の価格を見ながら、タイミングを見て、通貨・枚数・売りか買いか・注文種類(通常/IFDone/IFD-OCO/…)・成り行きか[逆]指値か・[逆]指値ならその価格、といった情報を入力/選択して、注文ボタンをクリックします。要はこういった一連の動作を、手でやるのでなくプログラムから実行できればよいわけです。

これを実現するには、以下の3つのツールを使えばできます。
A. Selenium webdriver
B. Selenium builder
C. Firefox付属の開発ツール(インスペクタ)

このうち、Aがメインのツールで、ブラウザの操作をプログラムで実行/自動化するものです。BとCは、個々のブラウザ操作をプログラムに「翻訳」する作業を簡単化してくれるヘルパーツールです。なおブラウザは、たしか他のブラウザ(Chromeとか)も使えると思いましたが、これまた私が使ってるという関係でFirefoxを前提に説明していきます。

言われてみれば確かにその通り、各証券会社の口座はWebブラウザからの操作を受け付けているわけで、このインターフェイスにプログラムからアクセスできるようにすれば良い話ではある。


スポンサーリンク


FXはOANDAがAPIを公開してるけど、今のところ株は個人向けにAPIを公開している証券会社が無いのよね。この記事で書かれている方法を使えば、株もプログラムで売買できるわけだ。(というか、Webブラウザで操作できる証券会社ならどれでもできるようになる)

さて、まずはここで出てくるSeleniumとは何者なのか、調べてみる。


スポンサーリンク

Selenium

Seleniumはブラウザを自動化します。それだけです!それで何をするかは全てあなた次第です。
Seleniumは、主にWebアプリケーションを自動化するためのフレームワークですが、それだけの用途に限ったものではありません。
Webベースの退屈な管理作業の自動化も可能です。

Seleniumとは、Webブラウザをプログラムで動かすためのフレームワークで、ユーザーテストなどの処理を自動化するツールとして知られているようだ。実際に使用するには、ブラウザ操作の手順を作成し、その手順をSeleniumに実行させることになる。

ブラウザ操作手順の作成には、Selenium WebDriverを使ってプログラム(Java、Python、Ruby、C#)で記述する方法と、Selenium BuilderというFireFoxアドオンを使ってブラウザ上で手順を記録する方法がある。Selenium Builderで作成した手順をプログラムコードへ吐き出すこともできるようだ。

Web系の技術に疎いので全然知りませんでした。。。
で、このSelenium BuilderというFireFoxアドオンに相当するChrome拡張もチラホラあるようですが、そこまでChromeにこだわりも無いので、こっちを使っておいた方が楽ですね。

ただ、ここ最近の株・FXは急激な動きがあり過ぎて手を出すのがちょっと怖いというのが本音。


スポンサーリンク

関連記事

Pylearn2:ディープラーニングに対応したPythonの機械学習ライブラリ
ポリゴンジオメトリ処理ライブラリ『pmp-library (Polygon Mesh Process...
Blendify:コンピュータービジョン向けBlenderラッパー
UnityでARKit2.0
DensePose:画像中の人物表面のUV座標を推定する
Python2とPython3
株式会社ヘキサドライブの研究室ページ
組み込み向けのWindows OS 『Windows Embedded』
Polyscope:3Dデータ操作用GUIライブラリ
Unityからkonashiをコントロールする
C++ 標準テンプレートライブラリ (STL)
Javaで作られたオープンソースの3DCGレンダラ『Sunflow』
Kaolin:3Dディープラーニング用のPyTorchライブラリ
プログラミングスキルとは何か?
WordPress on Windows Azure
オープンソースのロボットアプリケーションフレームワーク『ROS (Robot Operating S...
Mean Stack開発の最初の一歩
為替レートの読み方 2WAYプライス表示
OpenCVのfindEssentialMat関数を使ったサンプルを読んでみる
Amazon Web ServicesでWordPress
Raspberry Pi 2のGPIOピン配置
CGレンダラ研究開発のためのフレームワーク『Lightmetrica (ライトメトリカ)』
iOSデバイスと接続して連携するガジェットの開発方法
ブログをGoogle App EngineからAmazon EC2へ移行
UnityでShaderの入力パラメータとして行列を渡す
PyDataTokyo主催のDeep Learning勉強会
Mechanizeで要認証Webサイトをスクレイピング
Manim:Pythonで使える数学アニメーションライブラリ
OpenMesh:オープンソースの3Dメッシュデータライブラリ
オープンソースの顔の動作解析ツールキット『OpenFace』
.NETで使えるTensorFlowライクなニューラルネットワークライブラリ『NeuralNetwo...
オープンソースの物理ベースレンダラ『Mitsuba』をMayaで使う
オープンソースの取引プラットフォーム
OpenCV 3.3.0 contribのsfmモジュールのサンプルを動かしてみる
Google XML Sitemap Generatorプラグインを3.4.1へダウングレード
ZBrushのZScript入門
MVStudio:オープンソースのPhotogrammetryツール
WordPressプラグインによるサイトマップの自動生成
Amazon EC2ログイン用の秘密鍵を無くした場合の対処方法
OpenCV
OpenCV 3.1から追加されたSfMモジュール
UnityのAR FoundationでARKit 3

コメント