OrderSelect関数に関する質問 - ページ 3

 

"OrderSelect()"は、ドキュメントではBooleanを返すと明記してあるのに、integerを返すのですか?

ブール値は0か1です

OrderClose()の結果やランタイムエラーが発生したかどうかのチェックもしてないじゃないか!オーダーセレクトFMICを理解してからコードを書こう。

C言語プログラミングは、理解することが重要 です。

 
boopa26:

"OrderSelect()"は、ドキュメントではBooleanを返すと明記してあるのに、integerを返すのですか?

ブール値は0か1です

OrderClose()」の結果も、ランタイムエラーが発生したかどうかもチェックしていない!そうだけど、それはFMICの後の話。

これはすでにブール値 であり、他のブール定数や型キャストされた整数値と比較する必要はない。内部で表現されるブール値をハードコードしてはいけません。true" や "false" は使うべきですが、比較のためではなく、変数を初期化するときだけ使うのが理想的です。

if(  OrderSelect( ... ) )  // instead of "if( OrderSelect( ... ) == true )"
if(  OrderSelect( ... ) )  // instead of "if( OrderSelect( ... ) == 1 )"
if( !OrderSelect( ... ) )  // instead of "if( OrderSelect( ... ) == false )"
if( !OrderSelect( ... ) )  // instead of "if( OrderSelect( ... ) == 0 )"

C言語を勉強していれば、こんなことはすぐにわかるはずです。

 

質問です。

注文の選択関数を falseからtrueに切り替えるにはどうしたらいいでしょうか?

私は理解している!イコールではない

の例

もしオーダーセレクト なければ、またはオーダーセレクトBUTであれば

デフォルトではorder selectは0なので、order selectを0から1に切り替えるものは何ですか?

ドキュメントには

「戻り値

この関数が成功した場合、trueが返さ れます。

それは私が理解するのに十分な情報ではありません


FMICに感謝します。

 
boopa26:

このフォーラムだけ

eddieはオーダーセレクト機能について何か知っていますか?

もちろん知っています。

他のコーダーから学んだし、MQLの本やマニュアルも読むことができます。

でも一番重要 のは、デバッガの使い方を覚えたことです。デバッガのおかげで、MY解析やコーディングのミスを探す時間が大幅に短縮されました。

 
おつかれさま
 
boopa26: わかった!イコールじゃない

理解できたなら、なぜ最初に正しくやらなかったのか!?

boopa26 : これは私の質問です。

注文の選択関数をfalseからtrueに切り替えるのは何ですか?

ifnot order select または if order select BUT

デフォルトではorder selectは0なので、order selectを0から1に切り替えるのは何でしょうか?

ドキュメントにはこうあります。

"戻り値関数が成功した場合、trueを返します。"

を理解するための十分な情報ではありません。

デフォルト」もないし、ある値から別の値に切り替わるわけでもない!順序の選択に成功して「真」を返すか、失敗して「偽」を返し、その理由を知るためにエラーコードを チェックしなければなりません

 
  1. boopa26: ということで、forサイクルやwhileサイクルを使わずに注文をクローズする注文選択関数を書きたいと思います。
    その後、サイクルを含むコードを投稿
  2. boopa26: ドキュメントを読んでいるところhttps://docs.mql4.com/trading/orderselect
    読む前に質問を投稿する。
  3. boopa26

    1.C言語の知識は必要ない。

    3.すでにドキュメントを読んでいる

    4.すでにコードが書かれている

    そして、ドキュメントについて自分自身と矛盾することを言い、議論になる。
  4. MusngiがBANされ、boopa26が突然登場。偶然か?そんなことはないでしょう。

荒らしに餌を与えないでください。あなたが反応すると、あなたは荒らしに力を与えてしまいます。無視すれば、荒らしは飢え、やがて死にます。

 

注文 選択を循環させて未決済注文を見つけることはできますが、注文選択を循環させて決済済み注文の 利益を見つけることはできません。

このコードでは、order selectを循環させてopen ordersを探します。

static int a;

//cycle order select

if(OrdersTotal()>0&&
   a<OrdersTotal()&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

   a++;

//close open order

if(OrdersTotal()>0&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==1&&
   OrderMagicNumber()==magic_number&&
   OrderType()==OP_BUY&&
// close order signal)
  
   OrderClose(OrderTicket(),lots_2,Bid,3,Blue);

https://docs.mql4.com/trading/orderselect

https://docs.mql4.com/trading/orderprofit

多分これ

if(OrdersHistoryTotal()>0&&
   b<OrdersHistoryTotal()&&
   OrderSelect(b,SELECT_BY_POS,MODE_HISTORY)==0)

   b++;
 
static int a;

//cycle order select

if(OrdersTotal()>0&&
   a<OrdersTotal()&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

   a++;

//close open order

if(OrdersTotal()>0&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==1&&
   OrderMagicNumber()==magic_number&&
   OrderType()==OP_BUY&&
// close order signal)
  

   OrderClose(OrderTicket(),lots_2,Bid,3,Blue);

static int a;

変数aを初期化せず、静的にしているのはなぜですか?


OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

1や0ではなく、trueやfalseを使うべきであると既に言われています。

OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==false)
// OR
!OrderSelect(a,SELECT_BY_POS,MODE_TRADES))


順序を循環させていない

 
Keith Watford:
static int a;

//cycle order select

if(OrdersTotal()>0&&
   a<OrdersTotal()&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

   a++;

//close open order

if(OrdersTotal()>0&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==1&&
   OrderMagicNumber()==magic_number&&
   OrderType()==OP_BUY&&
// close order signal)
  

   OrderClose(OrderTicket(),lots_2,Bid,3,Blue);

static int a;

変数aを初期化せず、静的にしているのはなぜですか?


OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

1や0ではなく、trueやfalseを使うべきだと、すでに言われているはずです。

OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==false)
// OR
!OrderSelect(a,SELECT_BY_POS,MODE_TRADES))


オーダーを循環させていない

static int a; sit above start(){ GLOBAL VALUE

1か0か、trueかfalseかの違いはありません。

条件が成立した後、値aを増加させている