MetaTrader4のEAをcTraderのcBotへ移植した・・・いや、してみたい。

   2017/05/27

前回の記事で教えてもらったcTraderを使ってみたところ、なかなか良さそうだったので試しに手持ちの自作EAを移植してみます。

【前回の記事】

【対談】IronFX(アイアンFX)の人とざっくばらんな話をした件(ほぼ雑談!)

IC MarketsのcTrader

IronFXのT氏がおすすめしてくれたIC MarketsのcTraderを使っていきます。

IC Marketsの口座開設は日本語の証明書でさくっとできました。

cTraderを使ってみましたが、MetaTrader4の方が使いやすい印象。

でも、これは慣れの問題かもしれません。個人的にはアラートが無いっぽいのがちょっと辛いかな・・・。

cTraderの使い方を解説しているブログはボチボチありますので、cTraderの使い方は割愛します。

あ、そうそう・・・板情報とか見るだけでも面白いです。表示方法も幾つかあります。

WS000464_1

買いと売りにどのくらいのオーダーがあるか見えます。

WS000465

縦長になりますが、こんな表示方法も。

この板情報とかチャート下部に表示されている出来高らしきものは使えそうだなぁ・・・と思いましたっ。

WS000474

僕は使い始めたばかりで詳しくないので・・・cTraderの魅力はこちらでご確認ください!

参考:デイトレード、スキャルピングにおすすめ!cTraderの解説

cAlgo

EA(的なもの)を作るためにはcAlgoというツールが別途必要になるそうです。

cTraderのメニューからダウンロードできます。

WS000466

ダウンロードしてインストール。

cAlgoの使い方

cBotやIndicatorを開発する場合には、名前をクリックするだけでエディタで表示されるのでここに書いていけばよいのでしょう。

ちなみにホームページ等でたくさんBotが公開されていました。これらをダウンロードして使うこともできるそうです。(後日、試してみます)

WS000467

プログラムの構文はC#。 僕はMT4BackTesterなどのツールを作る際にはC#を使っているので、C#は得意言語の1つだったりしますが・・・C#でツールを開発するのとEA(cBot)を開発するのでは違いますから、覚えることは少なくなさそうな感じです。

cBotのバックテスト

プログラミングとビルドはすぐに分かったのですが・・・・一番困ったのはバックテストでした。

画面にはBackTestの文字は無く・・・。何をどうすればいいのか?

cBot、cAlgo、バックテストでググってみてもそれらしき日本語の解説は見つかりませんでした・・・。

どうしたものかとキーワードを変えながら探していると・・・cAlgo supportにバックテストのやり方が書いてるじゃないですかっ!

1)バックテストしたいcBotの右端の+マークをクリックして「インスタンスを追加」します。

WS000468

2)開いた画面でパラメーター設定ができます。

WS000469

3)パラメーター画面を開いている時にはこっそりと(?)左上にBackTestingとOptimizetionのタブが表示されています。

WS000470

4)後はバックテストタブを開いて期間を設定、実行するだけです。

WS000471

バックテストに使うデータはTickらしいです!ただし、バックテスト可能期間は2011年4月1日以降。

※【2015年3月27日追記】バックテスト可能期間は使用するデータによって異なる様です。Tickを使用した場合には1年程度しかバックテストできませんでした… MetaTrader4は(通常)仮想Tickを使ってバックテストします。

※MetaTrader4でTickデータを使う方法は過去の記事で解説しています。

MT4のモデリング品質を99.90にする方法

実際のTickデータですから、バックテスト精度は高そうですね!

5)バックテスト実行結果

WS000472

個人的には見慣れたMetaTrader4の方が見やすい気がしますが・・・特に支障はないと思います。

6)最適化(Optimizetion)

WS000473

最適化はどこでやるのだろう・・・っと、ちょっと探しました・・・。

Optimizetionタブを開いて左から2番目のボタン!これがパラメータの設定でした。

機能が多いせいで迷う迷う・・・。ボタンも絵だけ表示されているから押してみないと分からない。 どうも全体的に不親切な感じが・・・(慣れの問題なんだろうけど、慣れるまでちょっと時間かかりそう)

なお、言語設定で「日本語」も選択できます。

が・・・中途半端な感じなので、たいして役に立たないと思います(苦笑)

ともかく、これで移行のための前準備が終わりました・・・ ここまででも長い戦いでしたが・・・本当の戦いはここから始まりました!

MetaTrader4のEAをcTraderのcBotに変換

cBotを作ろう!と思っても、まずはどこから手をつけて良いかわかりません。

日本語で解説されたサイトも、書籍も見つからないです・・・。(何かご存知な人がいたら教えてください!)

そこで手持ちの自作EAを変換してみます。 MQ4 to cAlgo Converter 全文コピーして変換!

Sorry, but your robot can not be converted. At the moment we support only 82% of MQ4 robots. You can try to convert this robot later, or Convert another robot right now.

俺訳:これの変換はできない。すまんね。

がーん・・・! そんなに特殊なことはしていないハズなんですが・・・。さて、どうしましょうか・・・。

構文毎に少しずつ変換!?

こうなったら構文毎にチマチマと変換していきましょう。

変換に失敗するものがあったら、そこは頑張って調べて解決していきます。 まずは最初の部分を・・・

This code doesn’t trade. It is not expert adviser.

俺訳:これEAじゃないでしょ。

うーん?OrderSend関数とか入って無いとダメなのかな・・・そこまで入れてみましょう。

It is Invalid MQ4 code.
Invalid MQ4 code cannot be converted. Convert Valid MQ4 code.
俺訳:これは無効なMQ4コード。変換できない。

全文貼り付けると変換できない。途中の文を貼り付けても変換できない。お手上げです。

変換ツールでの一括変換は諦めて、独学で変換していきましょう・・・。

ところで、どういったものなら変換できるんでしょうか。簡単なボリンジャーバンドのカウンターロジックとか。どうでしょう?

It is MQ5 code.
MQ5 code cannot be converted.
Convert MQ4 code.

俺訳:これMQ5でしょ。それは無理。

いや、MQL4ですよ?Build600以降の構文ですけどね・・・。そうですか・・・そうですか・・・。

というわけで、古い書き方のMQL4じゃないと変換できないみたいです。

ちょっと長くなってきたので、本日はこの辺りで一旦区切って次回、実際に変換していきたいと思います。

もしも(変換が難しくて)失踪した場合には・・・探さないでください!(笑)

※失踪しませんでした!続きは以下の記事で!

MT4のEAをcTraderのcBotに置き換える作業の全記録

  • このエントリーをはてなブックマークに追加
  • Pocket

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。