記事「一からの取引エキスパートアドバイザーの開発(第24部):システムの堅牢性の提供(I)」についてのディスカッション

 

新しい記事「一からの取引エキスパートアドバイザーの開発(第24部):システムの堅牢性の提供(I)」はパブリッシュされました:

この記事では、堅牢で安全な使用を保証するために、システムの信頼性を高めます。望ましい堅牢性を実現する方法の1つは、コードを可能な限り再利用して、常にさまざまな場合にテストされるようにすることです。しかし、これは方法の1つにすぎません。もう1つは、OOPを使用することです。

単純だと思う人がいても単純ではないこともあります。受注システムもその1つです。「一からの取引エキスパートアドバイザーの開発」稿でおこなったように、より控えめなシステムを作成することもできます。この記事で作成したのは、多くの人にとって有用であっても他の人にとっては十分ではない基本的なシステムです。その結果、ある瞬間にすべてが変化し始めました。これは、この連載の新しい受注システムに関する最初の部分が誕生したときです。「一からの取引エキスパートアドバイザーの開発(第18回)」稿で参照できます。ここから、MetaTrader 5に対応しながらEAで管理できるシステムの開発を開始しました。このシステムのアイデアは、チャート上の注文を制限しないことでした。当初、このシステムはかなり大胆に思えました。オブジェクトがEAではなくMetaTrader 5によって維持されるシステムを作成するという事実自体が私には無意味で非効率的であるように思われたことを認めなければなりません。

ただし、システムは開発中で、「一からの取引エキスパートアドバイザーの開発(第23回)」稿では、注文、ポジション、ストップレベル(テイクプロフィットとストップロス)の管理を容易にするゴーストシステムを開発しました。開発するのはとても面白かったのですが、問題がありました。MetaTrader 5でサポートされているオブジェクトの数と比較して、使用および可視化されているオブジェクトの数を見ると、サポートされるオブジェクトの数は常により多くなるため、間違いなく驚かれることでしょう。

多くの場合、問題はそれほど深刻ではなく、許容範囲ですが、2つの問題があって、市場のボラティリティが高い際にシステムがあまり安定しない原因となります。状況によっては、ユーザーは誤った行動を強いられました。トレーダーが指値注文を追加するとシステムがそれをサーバーに送信しますが、サーバーが応答するのに通常よりも時間がかかる場合があることが原因です。システムはある瞬間に注文があることを示し、別の瞬間に注文がないことを示します。そして、それがポジションでおこなわれた場合 (注文とポジションの違いについてはドキュメントを参照)、サーバーがコマンドを期待どおりに実行したかどうかがわからないためにさらに面倒であることが判明しました。

この問題を解決するにはいくつかの方法があります。より単純なものもあれば、より複雑なものもあります。どちらにしても、EAは信頼できる必要があります。さもなければ、いかなる状況でも使用されるべきではありません。

作者: Daniel Jose