FX自動取引(EA)で稼ぐまで #7 動かないEA バックテスト

投稿者: | 2月 6, 2021

動かないEA

前回、さっそくアルゴリズム取引を設定したのに1mmも動作しなかった。

なぜだ?

これでは私の将来計画に大きな狂いが生じる。元手10万円を1億円に増やして、ウェブのアクセスを増やして、本を書いて、講演をして、テレビに出て、バンバン儲けて、松山(那覇の繁華街)のキャバクラでウハウハなのだ!

ギロッポンと言えないところが悲しい。それに松山ならスナックの方が楽しい。もちろん六本木とは岡山市内のキャバクラのことではない。東京都港区の方だ。まあ、あそこもなかなか楽しい店なのだが、そんなことはどうでもいい。

で、本題である。EAが動かなかった。

デモ口座とはいえ、いきなり本番データで動作させたのがダメだったのだろうか。ならば過去のデータでテストしてみよう。

バックテスト

バックテストとは過去検証、つまり過去のデータを用いて動作を検証することだ。過去から未来を予測するとは、歴史から学び将来に生かすことを同義である。

ある歴史学者の言葉を思い出した。

「私が歴史から学んだことは、人間は歴史から学ばないということだ。」

奥深い。なんと深淵に満ちた含蓄のある結論だろうか。

ちなみに実際に稼働させた成績をリアルタイムで公開している場合もある。まさに実地検証、こいつをフォワードテストと呼ぶのである。

ストラテジーテスター

バックテストのために。まずはストラテジーテスターを起動する

設定

ウィンドウ下部の設定タブをクリックし、パラメーターを設定する

  • エキスパートはテストしたいものを選択する。
  • 銘柄はドル円だ。右側は時間軸である。M1は1分を表す。スキャルピングなので1分を指定した。
  • 日付は昨年分。
  • フォワードテストは無視してよさそうだ。
  • 延滞は訳がおかしいが、ネットワークの遅延だ。我が家では200ms程度であったが、とりあえず100msにしてみる。
  • モデルはリアルティックを指定。一番正確である。
  • 入金は10万円だから1000ドル。
  • レバレッジは100倍だ。
  • オプティマイズは無効化する

バックテスト実行

さあ、これで右下の緑色をしたスタートをクリックすると、計算が始まった。ビジュアルモードなのに何も表示されないのはなぜだろうか?

残り30分。先ほどは15分と表示されていたような。Ryzen7 3800をもってしても、これほどの時間がかかるものなのか。しかたがない、ホームスケイプ…ではなかった。子供たちの面倒でも見ることにするか。

レベル2000を超えてボートハウスまでエリアが開いたのだが、このあとはどうなるんだろう?もうどこも残っていないのだが、スクラップ&ビルドで屋敷を壊しでもするのだろうか。

ああ、別のデスクトップに表示されているではないか。

見方が分からん。

  • 一番上は為替のチャートだ。バーチャートになっている。ロウソク足に切り替えることもできる。
  • StdDev(9)とStdDev(12)は標準偏差だ。
  • %R(39)と%R(9)はウイリアムズパーセント範囲なるものらしい。

いずれもどうでもいい。私が知りたいのは元手が増えたかどうかだけだ。

バックテストの高速化

あれ?おかしい。昨年のデータを指定したのに、今年初めのデータが表示されている。期間指定を昨年12月1日から12月31日までと指定しなおす。ついでに遅延もサーバーへの最後のpingである202msを指定した。さあ、今度はどうだ?

恐ろしく時間がかかる。これって寝る前に実行しておくやつなのだろうか…CPUにはほとんど負荷がかかっていないので、寝て待つしかないだろう。これから所用により出かけるため、昼頃に再びチェックしよう。

ん?

なにげにウィンドウ上部のスライダーを右に動かしてみた。

おお!爆速ではないか!

テスト終了。履歴を見るが、取引が一件もない。動作していないのか???

EAの動作条件

EAの動作条件を確認する。解説をGoogle翻訳する

このロボットは量子三角ロボットからのシステム開発ですが、システムが異なります。 このロボットの技術は、固定ニューラルネットワークの隠れ層です。 ニューラルネットワークは、最高のロット構成を維持するように最適化およびマッピングされています。 これにより、最高の極値ドローダウンに耐えることができるロボットが作成されることが期待されます。もう1つの利点は、すべての売りまたは買いポジションの開始が常に50ポイント離れていることです。
(バックテストの結果はRoboForex-Proサーバーを使用したものです)

推奨環境はどうか。

  • Needed 1:100 leverage as a minimum.
  • Minimum Balance requirement: 1 USD for cent account or 100 USD.
  • Platform: MT5;
  • VPS is recommended.
  • Five-digit accounts.
  • 1 Minute Timeframe.
  • The broker allow hedging.

TitanFXは両建てOKなのでヘッジを許可している。VPS以外は問題ない。

パラメーターはと…

  • Magic – Order magic number.
  • Slippage – permissible slippage (Points).
  • MaxSpread – maximum value of the current spread to open position (Points) .
  • TrailingStop_Virtual – Virtual Trailing stop (Points).
  • TrailingStep _Virtual – Virtual Trailing step (Points).

Magic 注文マジックナンバー。複数のMT5で自動取引をするときに、どのMT5の注文なのかを区別をするための番号だ。任意に設定できるだろう。

Slippage 価格誤差。注文した時と約定したときのレートのずれである。急激に相場が変動すると発生することがあるらしいし、ネット環境が悪いと同じ事が発生するだろう。単位はポイント、10ポイントで1pipsになる。

その他は仮パラメーターなので、まあ、触らなくていいだろう。

最終決断

ここから地獄が始まった。もう画面をキャプチャする余裕もない。

結論を言おう。使えない。使い物にならない。どのEAも金を減らすばかりだ。同じパラメーター、同じ期間に設定しても、作者が提示した成績にはならない。いくつも試してみたが、バックテストで右肩上がりのグラフを描いたEAは1つもなかった。

なんじゃ、こりゃあ?

根本的に戦略を変えなければならないようだ。