一度に大量の取引を閉じる

これを行うための良い方法はありますか?今、私は次のコードを使用しています。int numOrders = OrdersTotal(); for(int i = 0; i numOrders; i ){OrderSelect(0、SELECT_BY_POS、MODE_TRADES); if(Symbol()== OrderSymbol()){if(OrderType()== OP_BUY){OrderClose(OrderTicket()、OrderLots()、Bid、3、Violet); else {OrderClose(OrderTicket()、OrderLots()、Ask、3、Violet);しかし、それらすべてをワンティックで閉じているようには見えません…これには何か理由がありますか?ありがとう – Shane

「すべての注文を閉じるときの問題」を参照してください。

クローズループは端から端まで向けられるべきであることに注意してください。


あなたは1秒の睡眠なし 任修譴鬚垢襪海箸できますか?私が多くの取引を終わらせているとき、それらが終わっている間に価格は変わります。これは避けられますか?

あなたは睡眠を取り除くことができますが、価格の変更を確認する必要があります

どのようにそれをしますか?睡眠時間を短くしただけでもうまくいきますか。

「EAで複数の注文を出す(そして正しく閉じる)方法」

Sleep関数呼び出しで行を削除またはコメントアウトするだけです


私はこの問題に対して全く異なるアプローチを取った。私はどこで抜けたいかを計算し、その時点までのテイクプロフィット値を更新します。利益目標が変更された場合は、OrderModifyを使用してテイクプロフィット値を変更します。現在の価格から最小値を超える前に、これを行うように注意しなければなりません(通常EURUSDでは約.0005)。私はこれを使って1$ BIC0JFb$K2?==$b$NCmJ8$r=*N;$7$^$7$?!#

テイクプロフィットの値を前もって簡単に計算できない場合は、ヘッジ注文を市場の反対方向(ロングの場合)に置いて、出口の直前に移動して、実際の出口にOrderCloseByを使用することもできます。ほとんどのブローカーはクローズオーダーでスプレッドを請求しないため、追加のスプレッドコストは発生しません。



ループにRefreshRatesを追加する必要があります。これはあなたに最新のビッドを与えます/各取引のスプレッドを尋ねます。

こんにちはスコット、

どのように機能し、どのようにOrderCloseByを使用するのか説明していただけますか?
私は、ドキュメントの中で明確な説明もサイトの詳細な例も見つけていません。

ありがとう




387: https://www.mql5.com/en/forum/100792


Originally posted 2019-08-02 20:10:52.

Translate »