0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AI投資システム構築】8.トレードシミュレーション方法

Posted at

MT4/MT5を用いたシミュレーション

MT4やMT5には、既存でシミュレーション機能(ストラテジーテスター)が備わっています。

【参考】MT4 ストラテジーテスター

MT4_ストラテジーテスター.png

【参考】MT5 ストラテジーテスター

MT5_ストラテジーテスター.png

トレード対象となる任意の通貨ペアを選んで、参照する時間軸を選んで、時間軸の精度を選んで、作成したEAでトレードシミュレーションができるものです。

しかし、実はこのシミュレーション機能は今まで投稿したAI投資システムでは使えません。理由はいくつかあります。

理由1. 単通貨ペアしか取得できません

(これはもしかしたら私のやり方が悪いのかもしれませんが)
トレード対象となる任意の通貨ペア以外の値は取得できません。
AI投資システムでは、同時刻の他通過ペアや株価など、異なる指標値を同時に用いるため、これは致命的です。

理由2. 時間がかかりぎる

実際のトレードと同じように行うと、
一定時間毎にAIによる予測処理を行うことになります。
ハイスペックPCなら瞬時に終わるかもしれませんが、
私のような個人開発PCの場合、少なくとも1予測30秒はかかります。
例えば、1時間毎予測を行うシステムの場合、
1日分を予測するだけで12分かかります。
1週間分だと1時間、1ヶ月分で4時間です。
シミュレーションなのに時間がかかりすぎです。

理由3. TP/SLが不正確

テスターの設定値の「モデル」で「全ティック」を選んだとしても、TP/SLの判定精度が曖昧です。
TP/SLが十分広ければ問題ありませんが、値動きが激しい場合などは使えません。

以上の理由から、私はこのシミュレーション機能を使うことを諦め、自前でトレードシミュレーションする仕組みをつくりました。

自作のトレードシミュレーション

Pythonで自作のトレードシミュレーション機能をつくりました。この仕組みを利用すれば、
1年分の予測も30分で完了するようになりました。
処理フローは下記の通り。

「0.注文格納キュー生成」について、
注文格納キューは、下記の要素で構成されています。

  • 注文タイプ(BUY・SELL)
  • 注文時刻
  • スワップポイント
  • 決済指値(TP)
  • 決済逆指値(SL)

新規注文時にキューへ格納し、
SL・TP・決済確定時にキューから出します。

正確に言うと、最小単位が1分足なので、
スキャルピングのような超短期のトレードシミュレーションには使えませんが、
デイトレードやスイングトレードのシミュレーションでは十分使えるシミュレーションとなりました。

補足 MT4/MT5シミュレーション自動起動

MT4/MT5は実行時の引数付きでシミュレーションを自動起動することができます。
少し古い情報ですが、下記に手順を記載していただいている記事がありましたので、
参照させて頂きます。

この起動処理をバッチ起動すれば、パラメータを少しずつ変えながら、
シミュレーションすることができます。

まとめ

今回の投稿では、MT4/MT5の機能を用いたシミュレーションではなく、
自前で作成することをオススメしました。
ただし、私は数年前に早々に諦めただけで、
もしかしたら、MT4/MT5をもっと上手く使えば簡単に出来るかもしれません。

ここで記載した内容がすべて正ではありませんが、
少しでも参考にして頂けますと幸いです。
次の投稿で本シリーズ最後。
「売買の判断基準(さまざまなリスク対策)」について記載しようと思います。
よろしくお願いいたします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?