FXシステムの使い方(トレード)

FXシステムを用いたトレードのやり方について簡単に説明する。

ライブ口座で絶対に使用してはならない

初めに断っておくが、ライブ口座では絶対に使用してはならない。トレード機能は試験的なものである。トレード中に起こりうる様々な障害に対し、必ずしも対応していない。

実際、サーバー側で障害が起きたときなどにエラーとなって、そのまま復帰できないことがある。その頻度は数日に1回程度はある。したがって、安心して資金を預けられるようなレベルのものではない。

私自身はデモ口座で稼働し、シグナルをメールで送信させ、それを参考に手動でトレードしている。

単一戦略の場合

「トレード戦略」カテゴリの「基本的な平均回帰戦略」にある「basic_mean_reversion」という戦略を用いた場合には以下のようにする。

$ python ~/py/trade.py --ea1 basic_mean_reversion --symbol1 USDJPY --timeframe1 5 --mail 1 --mt4 0
2017.03.05 14:17:15 basic_mean_reversion USDJPY 5 0
2017.03.05 14:17:16 basic_mean_reversion USDJPY 5 0
2017.03.05 14:17:17 basic_mean_reversion USDJPY 5 0
2017.03.05 14:17:18 basic_mean_reversion USDJPY 5 0
2017.03.05 14:17:19 basic_mean_reversion USDJPY 5 0
2017.03.05 14:17:20 basic_mean_reversion USDJPY 5 0
2017.03.05 14:17:21 basic_mean_reversion USDJPY 5 0
2017.03.05 14:17:22 basic_mean_reversion USDJPY 5 0
2017.03.05 14:17:23 basic_mean_reversion USDJPY 5 0
2017.03.05 14:17:24 basic_mean_reversion USDJPY 5 0


トレードはバックテストのときとは違って端末を使う。Spyderからでも実行できるが、途中で止まってしまうことがある。

トレードでは「~/py/trade.py」ファイルを使う。

「--ea1」で1個目の戦略を指定する。戦略を記述したファイル名から「.py」を除いた部分が戦略名となる。また、最大5個の戦略を同時にトレードできる。

「--symbol1」で1個目の戦略でトレードする通貨ペアを指定する。

「--timeframe1」で1個目の戦略で使用する足の種類を指定する。足の種類は分単位である。例えば1時間足なら「60」、日足なら「1440」と指定する。バックテストのときとは違い、複数の戦略で別々の足を使うことができる。

「--mail」でシグナルの発生をメールで通知するかどうかを指定する。「0」で通知しない、「1」で通知するとなる。複数の戦略で共通である。

通知する設定にした場合、買いエントリー、買いエグジット、売りエントリー、売りエグジットが発生したタイミングで指定したメールアドレスにメールが送信される。その場合、件名は戦略名となっており、本文は「[通貨ペア]を[レート]で買い(売り)エントリー(エグジット)です。」となっている。

「--mt4」でシグナルをMT4のEAに送信するかどうかを指定する。「0」で送信しない、「1」で送信するとなる。複数の戦略で共通である。

送信する設定にした場合、MT4の「MQL4/Files」フォルダーに戦略名と同じ名前のcsvファイルを作成し、シグナルを書き込む。シグナルは売りの場合は「1」、ノーポジションの場合は「2」、買いの場合は「3」が書き込まれる。

初めは-1、0、1のようにするつもりであった。だが、シグナルが書き込まれると同時にMT4のEAがそれを読み込もうとした場合、EAは読み込めずにすべて「0」と判断してしまうようだ。

「0」をノーポジションに設定すると、EAは間違えて保有しているポジションを決済してしまう。そういうこともあって、それぞれに2を加えて0を使わないようにした。

出力は「年.月.日 時:分:秒 戦略 通貨ペア 足の種類 シグナル」となっている。

「シグナル」は売りなら「-1」、ノーポジションなら「0」、買いなら「1」と表示される。単にシグナルがそうなっている、というだけであって、実際のポジション状況を反映しているわけではない。

トレードを終了する場合は単に端末を閉じればいい。

複数戦略の場合

上の単一戦略にもう1つ戦略を加えた場合は以下のようにする。

$ python ~/py/trade.py --ea1 basic_mean_reversion --symbol1 USDJPY --timeframe1 5 --ea2 basic_mean_reversion --symbol2 EURUSD --timeframe2 5 --mail 1 --mt4 0
2017.03.05 14:19:02 basic_mean_reversion USDJPY 5 0
2017.03.05 14:19:03 basic_mean_reversion USDJPY 5 0
2017.03.05 14:19:03 basic_mean_reversion USDJPY 5 0
2017.03.05 14:19:08 basic_mean_reversion EURUSD 5 0
2017.03.05 14:19:09 basic_mean_reversion EURUSD 5 0
2017.03.05 14:19:09 basic_mean_reversion EURUSD 5 0
2017.03.05 14:19:10 basic_mean_reversion USDJPY 5 0
2017.03.05 14:19:11 basic_mean_reversion USDJPY 5 0
2017.03.05 14:19:11 basic_mean_reversion USDJPY 5 0
2017.03.05 14:19:12 basic_mean_reversion EURUSD 5 0


上の例のように同じ戦略を別々の通貨ペアに適用してもいい。もちろん、別々の戦略を同じ通貨ペアに適用してもいいし、別々の戦略を別々の通貨ペアに適用してもいい。

他は単一戦略の場合と同様である。

(2017/03/05更新)

コメント

非公開コメント