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は急激な動きがあり過ぎて手を出すのがちょっと怖いというのが本音。


スポンサーリンク

関連記事

Google製オープンソース機械学習ライブラリ『TensorFlow』のWindows版が公開された
iOSデバイスのためのフィジカル・コンピューティングツールキット『konashi(こなし)』
WordPressプラグインによるサイトマップの自動生成
C#で使えるNumPyライクな数値計算ライブラリ『NumSharp』
OpenCVの超解像処理モジュール『Super Resolution』
openMVGをWindows10 Visual Studio 2015環境でビルドする
OpenCV バージョン4がリリースされた!
UnityでARKit2.0
オープンソースの人体モデリングツール『MakeHuman』のAPI開発プロジェクトがスタート
Amazon EC2ログイン用の秘密鍵を無くした場合の対処方法
Google Colaboratoryで遊ぶ準備
Google XML Sitemap Generatorプラグインを3.4.1へダウングレード
Mechanizeで要認証Webサイトをスクレイピング
Unityで使える数値計算ライブラリ『Math.NET Numerics』
Unity ARKitプラグインサンプルのチュートリアルを読む
ブログの復旧が難航してた話
pythonもかじってみようかと
Google Chromecast
定数
Google App Engine上のWordPressでAmazonJSを利用する
OpenCV 3.1から追加されたSfMモジュール
PythonのStructure from Motionライブラリ『OpenSfM』
Unityの各コンポーネント間でのやり取り
OpenCV 3.1のsfmモジュールのビルド再び
Web経由でRaspberry PiのGPIOを操作したい
Mask R-CNN:ディープラーニングによる一般物体検出・Instance Segmentatio...
Unity ARKitプラグインサンプルのドキュメントを読む
OpenCV 3.3.0 contribのsfmモジュールのサンプルを動かしてみる
iPhone・iPod touchで動作する知育ロボット『ROMO』
Blenderの人体モデリングアドオン『MB-Lab』
UnityでLight Shaftを表現する
今年もSSII
PythonでMayaのShapeノードプラグインを作る
Raspberry Pi
Open3D:3Dデータ処理ライブラリ
ArUco:OpenCVベースのコンパクトなARライブラリ
AMIMOTO(PVM版)で作成したインスタンスをAMIMOTO (HVM版)へ移行する
C#で使える機械学習ライブラリ『Accord.NET Framework』
Windows10でPyTorchをインストールしてVSCodeで使う
GoB:ZBrushとBlenderを連携させるアドオン
ZBrushのZScript入門
AWSでシステムトレード

コメント