ubzen:
記事を更新しました。
手始めに、Integer表現を使ってみて、もう一度テストを実行してみてください。それで問題が解決するかどうか確認してから、もう少し話をしましょう。Edit: これは、ordertypeが0から始まることと関係があると思います。また、orderselectは最後に選択されたオーダーを そのまま保持します。
RaptorUK:
可能性があります ... ...
orderTypeを 、ありえないものとして 宣言してみる. .. ... 例えば。
もし何もメッセージが出なければ、注文の選択が機能していないことになります。
最初にint orderType = 10と宣言しても全く同じように動作します。
また、変数を宣言する代わりに、常にOrderType()を使用してみましたが、同じ問題があります。
また、注文を変更する直前にOrderSelect(...)を呼んで みましたが、変化なし。
バックテスターやデモアカウントでテストしているのでしょうか?
Print();ステートメントをいくつか追加して、何が間違っているのか分かるようにしてください ... ... 例
if(/*OrderMagicNumber()==Magic &&*/ OrderSymbol()==Symbol()) { Print("orderType = ",orderType); if ((orderType == OP_BUY || orderType == OP_BUYSTOP)) {
.その後、「エキスパート」タブで見てみましょう。
サレジオの手動確認を使っていることに起因している可能性はありませんか?
![MQL5 - MetaTrader 5クライアントターミナルにビルトインされたトレードストラテジーの言語](https://c.mql5.com/i/registerlandings/logo-2.png)
取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
EAを作ろうとしているのですが、コード内のある場所で、開いた注文と保留中の注文の ストップロスを更新する必要があります。注文に関する情報とともにアラートを表示しています。
それを実行すると、次のようなメッセージが表示されます: "Count:2 Stoploss 1.44705 for buy order:46450421 orderType:1".
orderType:1は、46450421がOP_SELL注文であることを意味しており、その通りなのですが、なぜ「if ((orderType == OP_BUY || orderType == OP_BUYSTOP))」ではなく「if (orderType == OP_SELL || orderType == OP_SELLSTOP)」のテストを発動させるのですか?
よろしくお願いします :-)
ダニエル