こんにちは、mql4のターミナルで現在開いているすべての注文からネットピップカウントを取得するにはどうすればよいですか?
わかりました。これは実際には機能しませんでした。正しいフローティングピップカウントではないことがわかっていても、何らかの理由で常に35.xxが表示されます。Originally Posted by ;
OrderSelectはブール値なので、#8220; == 1#8221; isn#8217;必要ありません。 0.1を掛けて、ポイントからピップに変換します。また、ブラケットが1つだけ続く場合は、ブラケットは必要ありません。また、常に注文をカウントダウンしてください。しかし、はい、私はいくつかのタイプミスがありましたOriginally Posted by ;
私の電話でそれをやっています。今編集しました。
このようなもの:挿入されたコードdouble sum = 0; for(int o = OrdersTotal()-1; ogt; = 0; o#8212;)if(OrderSelect(o、SELECT_BY_POS、MODE_TRADES){RefreshRates(); if(OrderType()== 0)sum =Bid-OrderOpenPrice (); if(OrderType())sum = OrderOpenPrice()-Ask;} sum * = 0.1; Print(#8220; Order Pip Sum =#8220; (string)sum);Originally Posted by ;
なぜ合計に0.1を掛けているのですか?そして、forループに欠けているように見えるブラケットはどうですか?これが私の試みです...挿入されたコードdoublecalcNetPips(){double sum = 0; for(int i = 0; ilt; OrdersTotal; i ){if(OrderSelect(i、SELECT_BY_POS、MODE_TRADES)== 1){RefreshRates(); if(OrderType == 0)sum = Bid-OrderOpenPrice(); else sum = OrderOpenPrice()-質問; }} return sum * = 0.1; }Originally Posted by ;
コード、特に#8220; else#8221 ;を使用しましたか? #8220; else#8221;を使用する場合次の#8220; if(OrderType()== 0)#8221;その後、合計に保留中の注文も含まれます。挿入されたコードif(OrderType()== 0)//成行注文を購入else {}/他のすべての注文市場 保留中I#8217;それが問題かどうかはわかりませんが、問題がある場合は、注文タイプを明示的に指定する必要があります個別に。挿入されたコードif(OrderType()== 0)//成行注文を購入if(OrderType()== 1)//成行注文も販売if(OrderType())//成行注文を販売//列挙型も使用できます://OP_BUY = 0、OP_SELL = 1 if(OrderType()== OP_BUY)if(OrderType()== OP_SELL)また、割り当てを返すことはできないため、次のようになります。return sum * = 0.1;動作しないでしょう;最初に乗算を実行してから、値を返す必要があります。挿入されたコードsum * = 0.1;合計を返す;/またはsum*0.1を返します;Originally Posted by ;