記事「リプレイシステムの開発(第26回):エキスパートアドバイザープロジェクト-C_Terminalクラス」についてのディスカッション

 

新しい記事「リプレイシステムの開発(第26回):エキスパートアドバイザープロジェクト-C_Terminalクラス」はパブリッシュされました:

これで、リプレイ/シミュレーションシステムで使用するEAの作成を開始できます。ただし、行き当たりばったりの解決策ではなく、何か改善策が必要です。にもかかわらず、最初の複雑さに怯んではなりません。どこかで始めることが重要で、そうでなければ、その課題を克服しようともせずに、その難しさを反芻してしまうことになります。それこそがプログラミングの醍醐味であり、学習、テスト、徹底的な研究を通じて障害を克服することです。

すでにお気づきかもしれませんが、私はオブジェクト指向プログラミング(OOP)の大ファンです。これは、OOPが提供する豊富な機能によるものです。また、ロバストで安全かつ信頼性の高いコードを最初から作成する方法も提供します。手始めに、プロジェクトの構成を整理することで、必要なものの予備知識を得る必要があります。ユーザーとしてもプログラマーとしても経験を積んできたため、EAが真に効果的であるためには、キーボードとマウスといういつでも利用できるリソースを使わなければならないことに気づきました。MetaTrader 5プラットフォームはチャートに基づいているため、マウスを使用してグラフィック要素を操作することは不可欠ですが、キーボードもまた、さまざまな面で重要な役割を果たしています。しかし、この議論はマウスとキーボードの使い方にとどまらず、オートメーションの連載でも取り上げられます。場合によっては、これらのツールを使わなくても完全な自動化が達成できることもありますが、ツールを使用する場合は、実行される操作の性質を考慮することが重要です。したがって、すべてのEAがすべての種類の資産に適しているわけではありません。

一部の資産の値動きが0.01であるためです。0.5という人もいれば、5という人もいます。FOREXの場合、これらの値は前述の例とは大きく異なります。このように多様な価値観があるため、特定の資産に特化したEAを開発するプログラマーもいます。取引サーバーは任意の値を受け付けないため、サーバーが設定したルールに従わなければならないからです。同じ原理がリプレイ/シミュレーションシステムにも当てはまります。EAに無作為な値で注文を実行させることはできません。

この制限の導入は必要であるだけでなく、非常に必要です。実際の口座で取引するときに、システムの挙動がまったく異なるのであれば、訓練のために機能的なリプレイ/シミュレーションをおこなう意味はありません。したがって、システムが一定の標準化を維持し、実際の口座の実態にできるだけ近い形で適応することが重要です。どのような状況であっても、あたかも取引サーバーと直接やりとりしているかのように動作するEAを開発する必要があります。

作者: Daniel Jose