見出し画像

Block EA リリースしました

しばらく記事の投稿お休みしてましたが、その間これを作ってました。

Block EA - Blockly for MT4/MT5 EA

ブロックを使ったプログラミングでメタトレーダーのEAのプログラムを作成するシステムです。

ブロックを使ったプログラミングというと、Scratchとかが有名ですね。ただ、私は、プログラミングはコード書くのが当たり前だと思っていた古い人間です。ブロックプログラミングなんて、所詮子ども向けだろうと高をくくっていました。

ブロックプログラミングも悪くない

メタトレーダーとは全然関係ないのですが、最近、M5StackっていうIoT開発キットを購入しました。温度、湿度、気圧やCO2センサーとかつなげてデスクトップの測定器にするためです。

こんな感じです。

画像1

ネットにもつながっているので、データをグラフ化してブラウザで表示できたりして便利です。

それはそうと、この測定器自体結構簡単に作れました。なぜかというとM5Stackのプログラミング環境UiFlowがブロックプログラミングだったからです。

スクリーンショット 2021-10-25 171201

最初は面倒なんじゃないかと思っていたのですが、追加したセンサーがブロックに対応していて、ハードウェアをいじっている感じがなく、単純にブロックを組んでいる感じでできてしまったのです。ほんとこれは目からうろこでした。

昔だったら、ハードウェアを制御するには、アセンブラ使ってポートに直接入出力させて作っていたでしょう。

さすがに今はハードの制御はC、C++などの言語でできるでしょうが、ライブラリ関数とか覚えなくていけないので、慣れる前にあきらめてしまったかもしれません。

自分ももうちょっと若ければ新しいプログラミング言語にも挑戦したでしょうが、もうコード書くのも面倒になってきたところでした。

ブロックプログラミングも悪くないな、と思った8月でした。

EAもブロックで作れるかな

本題に戻ります。

これまでメタトレーダーのEAのプログラミングをやってきました。儲かるEAというより、簡単に作れるEAを目指して独自のライブラリとかを作ってきました。

でも、独自のライブラリを作ると、その使い方を覚えなきゃいけないという問題があります。自分で作ったライブラリすら書き方を忘れてしまうこともしばしばです。

そこで、M5Stackのブロックプログラミングを思い出しました。

ハードウェアの制御とトレードの制御は単純なことを繰り返すという点で似ています。ブロックプログラミングをEAに使えないかと思ったわけです。

かといって、ブロックを使ったGUIをゼロから作るのはとても大変です。で、ググってみると、UiFLowもGoogleのBlocklyというブロックプログラミング環境を利用していました。

しかも、Blocklyはオープンソースでカスタマイズ可能ということ。開発者向けのサイトもありました。ググった先がGoogleだったとは、恐れ入りました。

Blockly使えばできそうな気がした9月でした。

Block EAの開発

Blocklyのカスタマイズといっても、いくつものファイルが絡んでいるので、要領がわかるまで試行錯誤しました。

参考にしたサイトです。貴重な情報のご提供に感謝します。

BlocklyでWebSocket通信
myBlockly

要領がわかってしまえば、あとはブロックを作ってブロックからMQLへのコード変換するためのコード書くだけです。コード書くのが面倒と言ってたくせにひたすらコード書きました。

実際のシステムの開発過程については、そのうちQiitaにでもまとめようかと思います。

とりあえず、作りましたとアナウンスできた10月でした。

スクリーンショット 2021-10-25 171636

誰も使わなくても自分で使う

システム公開したものの、今のところ簡単なチュートリアルしか用意してません。とりあえず自分で使おうと思ったので、詳しいリファレンスはまだです。

これからEAを作ってみようと思っている方、既に作っている方で興味があれば、使ってみてください。

特に細かいコーディングミスに困っている方にはお勧めします。セミコロン忘れたとか、数式の括弧の対応を間違えたとかのミスはなくなります。

もし使う人がいれば、リファレンスとか作っていきます。まあ誰も使わなくても自分で使うので、今後もアップデートは行う予定です。詳しいことはSlackで案内しますので、ぜひご参加ください。

この記事が気に入ったらサポートをしてみませんか?