記事「リプレイシステムの開発(第48回):サービスの概念を理解する」についてのディスカッション

 

新しい記事「リプレイシステムの開発(第48回):サービスの概念を理解する」はパブリッシュされました:

何か新しいことを学んでみませんか。この記事では、スクリプトをサービスに変換する方法と、それがなぜ便利なのかについて説明します。

リプレイ/シミュレーターシステムに関する本連載の初めに、私はサービスを利用してチャート上にコントロール指標を配置できるようにしようと時間を費やしました。最初は成功しませんでしたが、あきらめずに試行を続けました。何度も失敗し、この問題で成功することはありませんでした。しかし、プロジェクトを中止することはできなかったため、その時点で別の方法を取ることにしました。

スクリプトでは何とかできるのに、サービスで同じことをやろうとすると、うまく動作しないのが本当に気になりました。

「だから何?スクリプトで何かできるという事実は、何の意味もない」と思われるかもしれません。しかし、もしそう思われるなら、それはMQL5プログラミングの知識不足によるものだと思います。MQL5で作成されたスクリプトはすべて、サービスに変換できます。基本的に、サービスとスクリプトには2つの違いがあります。もちろん、他にも違いはありますが、この2つが最も明白で、誰でも気づくことができます。

最初の違いは、スクリプトが常に特定のチャートにリンクされ、チャートが閉じられるまでその状態が保たれることです。注目すべきは、時間枠を変更した際に、MetaTrader 5が実際にチャートを再描画するコマンドを送信する点です。このプロセスを高速化するために、グラフィックオブジェクト(ウィンドウ内のオブジェクト)を閉じて新しいオブジェクトを作成することで、チャートの再描画を迅速におこないます。しかし、スクリプトにはこの機能がないため(特定のイベントが存在しないため)、チャート上で再起動されることはありません。

作者: Daniel Jose