1.自動売買システムの処理と考え方
FX自動売買システムの構築手順とツールの一例
さて、では実際に自動売買システムを構築するために必要なツールとその一例を紹介していきましょう。
ここでは、実際に私が自動売買システムを構築した手順の通りに、順を追って説明いたします。
まずは、どのような自動売買システムを作るか?ですが、ここではFXの自動売買システムを考えます。
といいますのも、株式相場ですと銘柄選択の部分も考えなくてはならず(予めユーザーが指定した銘柄の売買を行う場合はこの限りではありません)構築作業が煩雑且つ複雑になるため、その必要性が小さなFXを考えます。
FX自動売買構築に必要なツール
まず必要となるツールを挙げてみましょう。
A) 為替のデータ(その提供元)
B) 売買エンジン
C) FX取引会社の提供する売買ツール
D) 売買エンジンで判断した売買サインを実際に注文するためのツール
最低限、上で挙げた4つがあれば自動売買は可能となります。
自動売買システムを作成するためには、A)為替のデータを基に、B)売買エンジンで売買の判断を行い、C)の売買ツールにD)のツールを使用して注文するということになります。実際にシステムを作る場合はこれらの処理を行うプログラムを作らなくてはなりません。
私が構築した自動売買システムでは、上記4つの処理をマイクロソフトエクセル上で行っています。
エクセル上でどのツールをどのように使用して自動売買を行っているかというと、まず為替データの提供元として、楽天証券が提供しているリアルタイムスプレッドシート(以下RSS)やFXオンライン、121FXが提供しているダイレクトデータエクスチェンジ(以下DDE)を使用しています。RSSやDDEを使用すると、エクセルのセルに特定の計算式を入力するだけで、為替や株式の値段等をエクセルに取り込むことが出来ます。
楽天証券→ http://www.rakuten-sec.co.jp/
そのデータを時系列の4本値として、読み込みと書き込みを行い、エクセルに組み込まれている関数を用いて移動平均線等の計算を行っています。
時系列データの書き込み、4本値の集計、指標の計算・・・
たとえば、ある任意のセル(A)に現在の為替のレートが表示されるとしましょう。
その値を読み込み、最初の更新時はセル(A)の値を横1列に4回(セルb、セルc、セルd、セルe)書き出すと言う処理を行います。次の更新時からは4つに並んだ数字の一番右のセ(e)に現在のセル(A)の値を、左から2番目のセル(c)には、現在のセル(A)の数値と既に書き込まれているセル(c)の値を比較し、大きい数値を書き出し、右から2番目のセル(d)には、現在のセル(A)の値と既に書き込まれているセル(d)の値とを比較して小さい方を記入すると言う形をとれば、4本値を、始値、高値、安値、終値の順で書き出すことが可能です。
それを一定時間(たとえば5分)毎に行を下へずらすようにすれば、時間足が作成されることになります。
作成した自動売買システムでは、上記の処理を行うプログラム(モジュール)を一定間隔毎(15秒毎)に実行するプログラムを作成し、それを用いて4本値を記入しています。
当コンテンツでは、上記15秒毎の実行に加え、提供されるデータそのものが変更された場合にモジュールを実行し、4本値を記入する場合についても触れています。
書き込まれていくデータと平行して、移動平均線やストキャスティクス等のテクニカル指標を計算書き込みする処理を行い、それを元に売買の判断を構築しています。
移動平均線やそのほかのテクニカル指標の計算が行えれば、IF文(関数の条件分岐式)を使用して『これがこうなれば買い、こうなれば売り、こうなったときは手仕舞い』ということを通常のエクセルを使用する感覚で指定することが出来ますので楽に行うことが可能です。
この場合の『これがこうなれば買い、こうなれば売り、こうなったときは手仕舞い』が売買エンジンとなるのですが、おそらく自動売買システムに限らず、この部分が投資に於いて一番難しいところではないでしょうか?
売買エンジンは、自動売買システムを稼動させる場合に、それで利益が出るかどうかの大切な場所となります。まったく損切りをしない売買エンジンだと、思惑通りに相場が動かなかった場合に損を膨らませることとなります。
逆に、損切りや利益確定をがちがちに固めた売買エンジンだと、損小利大を十分に行うことが出来ず、稼ぐことが難しくなってきます。
売買エンジンの中身については、有効な売買法をお持ちの方はそれを数式化することで構築することが可能ですが、有効な売買法をお持ちでない方は、有効な売買法を作り上げることから行わなくてはなりません。
売買エンジンが構築できると、次は実際の注文を行わなくてはなりません。
FXや株式の取引会社に発注するためのツール
実際の注文はFX取引会社(株式なら証券会社)が提供する取引用のアプリケーション上で売買の指示、手仕舞いの指示を行うことになります。
こういう書き方をすると、それぞれのアプリケーションの内部情報にアクセスし、取引会社や証券会社のサーバーに信号を送るという、聞いただけでも難しそうな処理を行わなくてはならないと思われるかもしれませんが、売買注文や手仕舞い注文が、決まった一定の操作で行えるならば、キーボードマクロを使用することにより解決することが出来ます。
キーボードマクロというのは、キーボードやマウスの動きを事前に記憶させ、記憶させた内容を繰り返したり、指定回数実行させることが可能なソフトです。
私が構築した自動売買システムではUWSCというキーボードマクロを使用しました。そのほかにもAutoMouseと呼ばれるソフトなどもありますが、いずれもフリーソフトですのでただで手に入れることが出来ます。
UWSC→ http://www.uwsc.info/
AutoMouse→ http://www.vector.co.jp/soft/win95/util/se074062.html
UWSCもAutoMouseも作成したファイル(キーボードやマウスの動きを記録したファイル)を実行すると、自動でそれぞれのアプリケーションを起動し、ファイルの記録内容通りにキーボードやマウスの動作を実行します。
ですので、事前に売買の注文や手仕舞い注文の動作を記録し、それぞれのファイルを作っておくことで、売買エンジンで計算後、売買のサインが出たと判定された場合にそれぞれのファイルを実行するようなマクロを作成してすれば、データの読み込みから実際の注文までの一連の動作を自動で行うシステムの完成となります。
全体の処理としては、データの読み込み、データの書き込み、テクニカル指標の計算・書き込み、売買の判断、売買の判断によって売買サインが出た場合は注文実行と言う処理になります。
これらの動作を数秒おきに繰り返し行う処理をすればよいのですが、その全体をエクセル上で統括することができます。
私の構築したシステムでは、エクセル上にRSSからデータを読み込み、30分足の4本値にまとめ、それと同時にテクニカル指標の計算、売買の判断を行っており、これを15秒おきに行い、売買エンジンで売買の行う判定が出れば、UWSCのファイルを実行するようになっています。
UWSCのファイルは、買い注文、売り注文、手仕舞い注文の3つを用意し、それぞれの判定が出た場合にそれを実行するようになっています。
次のページ:自作するFX自動売買システムの全体像と準備
ピンバック: 作成に必要なスキル、知識など | 株・為替・FX・N225などの自動売買、自動取引システムの作り方
ピンバック: FX自動売買システム作成に必要なスキル、知識など | 自動売買システムを作ってみよう