記事"ポジション中心のMetaTrader5の環境での注文追跡管理機能付き注文マネージャー"についてのディスカッション - ページ 2

 
phampton:

その通りです、wackenaさん。 あなたがしたことは、従来の注文を出すためにサーバーに直接行くことです。 VirtualOrderManagerTesterを使って、手動でバーチャル注文を出す必要があります。

VOMのEAが特定のシンボルに導入された場合、そのシンボルを取引する他のEAもすべてVOM対応でなければならないことを、記事の中で明確にすべきでした。 これは、VOMの災害保護SLコードのためです。

ポール

ポール、ありがとう。

VirtualOrderManager.mqh は MT-5Strategy Tester で使用できますか?もし可能であれば、VOMでどのようにEAを設定すればよいでしょうか?

 
wackena:

ポール、ありがとう。

VirtualOrderManager.mqh は MT-5Strategy Tester で使用できますか?もし可能であれば、VOMでEAをどのように設定すればよいですか?

はい、私の非常に限られたSTでのテストでは、各ティックが処理される必要があるためゆっくりですが、変更なしで動作することを示しています。
 

マーチンゲール型 EA で VOM を使用しています。同じ種類で同じ通貨ペアの 複数の売り注文が開いている場合、このCloseAllOrders関数は最後の注文だけをクローズし、前の注文はまだ残っているように見えます。

VOM.CloseAllOrders(_Symbol,VIRTUAL_ORDER_TYPE_SELL);

同じ種類、同じ通貨ペアの仮想注文(vo)が複数開いている場合、この関数コードは1つのvo注文の決済を開始するのでしょうか、それとも開いているすべてのvo注文を決済するのでしょうか。

VOM.OrdersTotal()は、未決済のvo注文の数を非常によく追跡します。

 
wackena:

マーチンゲール型 EA で VOM を使用しています。同じ種類、同じ通貨ペアの 複数の売り取引を開いている場合、このCloseAllOrders関数は最後の取引だけをクローズし、前の取引はまだ開いているように見えます。

複数の、同じ種類、同じ通貨ペアの仮想注文(vo)が開いている場合、この関数コードは1つのvo注文の決済を開始すべきでしょうか、それともこの関数は開いているすべてのvo注文を決済すべきでしょうか。

VOM.OrdersTotal()は、未決済のvo注文の数をよく追跡します。

こんにちは、

VirtualOrderManagerTesterにClose allボタンを追加しましたので、添付をご覧ください。 すべてのバーチャルオーダーをクローズするには不便な方法ですが、問題なく動作します。

LOG_VERBOSEのEAログのコピーを送っていただければ、何が起きているのかよくわかります。

ポール

ファイル:
 
phampton:

こんにちは、ワッキーナ、

VirtualOrderManagerTesterにClose allボタンを追加しましたので、添付をご覧ください。 すべてのバーチャルオーダーをクローズするには不便な方法ですが、問題なく動作します。

LOG_VERBOSEのEAログのコピーを送っていただければ、何が起きているのかよくわかります。

ポール

ログファイルを添付します。
ファイル:
 
wackena:
ログファイルを添付する。

つまり、注文を明示的にクローズするコード(CloseAllOrdersのような)に到達していないか、クローズする注文が残っていないときに到達しています。

 

記事付録の更新

バーチャルオーダーマネージャーライブラリの ドキュメント、ユーザーガイド、ソースコードコメントがロシア語で利用可能になりました。

 

このライブラリには大きな問題があります。VOMでオープンし、手動でクローズしたトレードがVOMでオープンされる。

さらに、VOMでこの取引を閉じようとすると、VOMは反対方向に取引を開いてしまいます。

例えば

- VirtualOrderManagerTester で 5 つの買い注文を建てました。

- MT5では注文がなく、チャート(VOM)では5つの未決済注文が表示されています。

- VirtualOrderManagerTester から5つの注文を決済します:MT5では5つの売り注文が表示され、VOM(VirtualOrderManagerTester)では何も表示されません。

私の考えでは、これは大きな問題です。なぜなら、私のEAの注文がブローカーや他のEAによってクローズされた場合、私のEAがVOMを使ってそれをクローズしようとすると、反対方向の注文がオープンされるからです。

この問題を解決する方法はありますか?

ファイル:
vom_test.jpg  188 kb
 
mbt22:

このライブラリには大きな問題があります。VOMでオープンされ、手動でクローズされた取引は、VOMでオープンされたように見えます。

さらに、VOMでこの取引をクローズしようとすると、VOMは反対方向に取引をオープンしてしまいます。

例えば

- VirtualOrderManagerTesterで5つの買い注文を建てました。

- MT5には注文がなく、チャート(VOM)には5つの未決済注文が表示されています。

- VirtualOrderManagerTester から5つの注文を決済します:MT5では5つの売り注文が表示され、VOM(VirtualOrderManagerTester)では何も表示されません。

私の考えでは、これは大きな問題です。なぜなら、私のEAの注文がブローカーや他のEAによってクローズされた場合、私のEAがVOMを使ってそれをクローズしようとすると、反対方向の注文がオープンされるからです。

この問題を解決する方法はありますか?

こんにちは、mbt22、

口座上で稼働しているすべてのEAはVOMを使用しなければなりません。

しかし、VOM EAのこの社会性の制限は、多くのMQL5 EAで見られる可能性があることを覚えておいてください。 言い換えれば、これらのEAは、マニュアルトレードや同じシンボルで動作する他のタイプのEAがある場合にも失敗する可能性があります。

以下は、非VOM EAの社会性の失敗の例です。 そのEAの外部での取引(手動および/またはEAが生成した)が合計1.0ロットショートで、EAが50ピップのストップで0.1ロットの買い注文を発行したとします。EAのOrderSend関数が どのように機能するのか(完了するのか、ストップエラーを返すのか)正確には覚えていませんが、確かなことは、0.9ロットショートの 結果ポジションサイズより 50ピップ下には ストップを適用できないということです。

テスト EA は VOM を使用して手動取引を管理することができますが、状況がブローカーの決済注文に及んだ場合、VOM はコントロールを失い、口座の慎重な評価が必要になります。

VOMがVOM以外のアクティビティと交際的でない主な理由の1つは、顧客ベースの取引終了プロセスにおいて絶対的なリスク管理である災害保護ストップの管理です。

ポール

 
phampton:

mbt22さん、こんにちは、

口座で稼働しているすべてのEAはVOMを使用する必要があり、これには手動取引も含まれます。

しかし、VOM EAのこの社会性の制限は、多くのMQL5 EAで見られる可能性があることを覚えておいてください。 言い換えれば、これらのEAは、マニュアルトレードや同じシンボルで動作する他のタイプのEAが発生した場合にも失敗する可能性があります。

以下は、非VOM EAの社会性の失敗の例です。 そのEAの外部での取引(手動および/またはEAが生成した)が合計1.0ロットショートで、EAが50ピップのストップで0.1ロットの買い注文を発行したとします。EAのOrderSend関数が どのように機能するのか(完了するのか、ストップエラーを返すのか)正確に覚えていませんが、確実なのは、0.9ロットショートの 結果としてのポジションサイズより 50ピップ下には ストップを適用できないということです。

テストEAはVOMを使用して手動取引を管理することができますが、状況がブローカーのクローズ注文になった場合、VOMはコントロールを失い、口座の慎重な評価が必要になります。

VOM が VOM 以外の活動とは無縁である主な理由の 1 つは、顧客ベースの取引クローズ・プロセスにおいて絶対的なリスク管理であるディザスター・プロテクション・ストップの管理です。

ポール


オーケー。

迅速な回答をありがとう。