エキスパートアドバイザー - 雑多な質問 - ページ 40

 
Max Enrik:


いいえ、すべてのチャートシンボル注文を終了する必要があります。
はい、正しいマジックナンバーを使用してください。

if(closeallsymbols==false && OrderSymbol()!=Symbol()) 
これはちょっと変ですね。
 
Marco vd Heijden:
これってちょっと変ですよね。

そうだ!
こっちも同じ!クローズ・オーダーの この部分、すごく変だと思ってたんだけど、ちゃんと機能してるんだね。

 
Predefined Variables (Bid/Ask) を使用する場合はスリープ後、複数のサーバー呼び出しの間に、OrderClosePrice() を使用する場合はOrderSelect の 前にRefreshRates する必要があります」のどの部分が 不明だったのでしょうか?
 

以下はその例です。

https://docs.mql4.com/series/refreshrates

RefreshRates - Timeseries and Indicators Access - MQL4 Reference
RefreshRates - Timeseries and Indicators Access - MQL4 Reference
  • docs.mql4.com
RefreshRates - Timeseries and Indicators Access - MQL4 Reference
 

申し訳ありませんが、私を責めないでください。まだ混乱しています。
私のコードの知識が不足しているため、段階的に行う必要があります。

Q1: while()は使えないのでしょうか?
Q2:sleep()は使えますか?
Q3: RefreshRates()は私の問題を解決できますか?( 最後の1つは、私の問題を解決することですか? )

私のクローズオーダー機能を 傷つけたくないので、どうか、そのことについて教えてください。

 

whileを使うこともできますが、X回試行したらループから抜け出すカウンターを追加する必要があります。そうしないと、エキスパートが無限ループに陥る危険性があります。

そして、あなたは問題を指摘しましたが、私は何が問題なのかわかりません。

もし、終値が 問題なら、"respectively "を使えばいいのです。

MarketInfo(OrderSymbol(),MODE_ASK);
MarketInfo(OrderSymbol(),MODE_BID);

また、OP_BUYとOP_SELLにOrderType()スイッチを追加してください。

 
Marco vd Heijden:

そして、あなたは自分の問題について話して くれましたが、私は何が問題 なのかわかりません。

私の問題は、「未決済注文を閉じる」機能で、未決済注文が残ってしまうことがあることです。私は常にすべての未決済注文を一度に決済したいのです。

---

2回目の編集

BidとAskの関数をすべてMarketInfo()に置き換えていただけませんか?

MarketInfo(OrderSymbol(),MODE_BID);
MarketInfo(OrderSymbol(),MODE_ASK);
 
whroeder1:
Predefined Variables (Bid/Ask) を使用する場合はスリープ後、複数のサーバー呼び出しの間に、OrderClosePrice() を代わりに使用する場合はOrderSelectの 前にRefreshRates しなければなりません」のどの部分が 不明だったのでしょうか?


RefreshRates() どこに入れればいいのかわかりません。

コメントありがとうございます。

 
Max Enrik:

未決済注文を閉じる機能で、未決済注文が残ってしまうことがあります。常にすべての未決済注文を一度に決済したいのですが。

---

2回目の編集

BidとAskの関数を全てMarketInfo()に置き換えていただけませんか?

チャートシンボルでないポジションを扱う場合は可能です。
 
Marco vd Heijden:
はい、チャートシンボルでないポジションを扱っている場合です。


ありがとうございます、全部入れ替えてみます。

良い週末をお過ごしください。