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

 
//+------------------------------------------------------------------+
//| Check for close order conditions                                 |
//+------------------------------------------------------------------+
void CheckForClose()
  {
   double ma;
//--- go trading only for first tiks of new bar
   if(Volume[0]>1) return;
//--- get Moving Average 
   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
      //--- check order type 
      if(OrderType()==OP_BUY)
        {
         if(Open[1]>ma && Close[1]<ma)
           {
            if(!OrderClose(OrderTicket(),OrderLots(),Bid,3,White))
               Print("OrderClose error ",GetLastError());
           }
         break;
        }
      if(OrderType()==OP_SELL)
        {
         if(Open[1]<ma && Close[1]>ma)
           {
            if(!OrderClose(OrderTicket(),OrderLots(),Ask,3,White))
               Print("OrderClose error ",GetLastError());
           }
         break;
        }
     }
//---
  }
for(int i=0;i<OrdersTotal();i++)
 

新しいタイプのアート。

トレーディングの風刺。

私はそれが好きだ。

 
boopa26:

1.C言語の知識は必要ない。MQL4は異なる機能である。

boopa26は人の時間を無駄にしない。

  1. コードの書き方を知らずにコードを書けると思っているのでしょう。関数は関係ない。
    boopa26 : forサイクルやwhileサイクルを使わずに注文をクローズする注文選択関数を書きたいのですが。
    それならなぜループを使ったコードを投稿 したのですか?時間を無駄にしています。
  2. 複数の注文がある場合(1つのEA複数のチャート、複数のEA、手動取引)には
 
for(last_index_inside_trade_pool=OrdersTotal()-1;last_index_inside_trade_pool>=0;last_index_inside_trade_pool--)

   {if(OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES)==1&&
       OrderMagicNumber()==magic_number&&
       OrderType()==OP_SELL)

       OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Red);


    if(OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES)==0)

       Print("OrderSelectError: ",GetLastError());}

時間を無駄にした?上のコードがあなたの時間を無駄にしているように見えますか? ええと...おそらく違います WHRoeder

これは簡単なタスクではありませんでしたが、上のコードは注文を閉じることができます。

boopa26が思うに

静的 int last_index_inside_trade_pool = OrdersTotal()-1

while last_index_inside_trade_pool >=0 do 以下のコード。

以下のコードは、注文を見つけ、注文をチェック し、注文をクローズし、GetLastError()を実行する。

は理解できないが

if(OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES)==1&&
 
boopa26: 上のコードは、私があなたの時間を浪費しているように見えますか?
そうだ、2つ質問したんだが、君は完全に無視したね。
 

では、なぜループを使ったコードを投稿 したのでしょうか?

サイクルコードは、サイクルを使わずに同じことをするために別の書き方をすることができます。

static int last_index_inside_trade_pool;
//below start()
last_index_inside_trade_pool=OrdersTotal()-1;

  if(OrdersTotal()>0&&
     iMA(NULL,0,1,0,MODE_SMMA,PRICE_CLOSE,1)>iMA(NULL,0,10,0,MODE_SMMA,PRICE_CLOSE,1)&&
     OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES)==1&&
     OrderMagicNumber()==99999&&
     OrderType()==OP_SELL)

    {last_index_inside_trade_pool--;
     OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Red);}

boopa26はfor cycles while cyclesよりif条件の方が好きです。

コードの書き方を知らずにコードを書けると思っているのか?関数は関係ない。

私はif条件whileサイクルを行う方法を知っているサイクルの基本的な数学。mql4はC言語プログラミングの例 * () == などはできますが、関数のため同じではありません。

 

0から1を選択するスイッチは何ですか?

if(OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES))==1

オーダーセレクトファンクションは、オーダー合計が0より大きくなると、0から1に切り替わるのですか?


ドキュメント

"戻り値

関数が成功した場合はtrueを、そうでない場合はfalseを返します。エラー 情報を得るには、GetLastError() 関数を呼び出す必要があります。"

関数が成功した場合、1を返すのですか?

 

私はこの人が大好きです :-)

この掲示板にしか書いていないのですか、それとも他にリンクがあるのですか?

もしステージでやるのであれば、どこでチケットを入手できますか?

 

このフォーラムだけ

eddieさんは、オーダーセレクト機能について 何かご存知でしょうか?

 
boopa26:

では、なぜループを使ったコードを投稿 したのですか?

サイクルコードは、サイクルを使わずに同じ機能を実現するために別の書き方をすることができます。

boopa26はforサイクルよりifサイクル、whileサイクルの方が好きです。

コードの書き方を知らないのに、コードを書けると思っているのか。関数は関係ない。

このような場合、「if条件」「whileサイクル」「forサイクル」「基本的な数学」をどうするかは知っています。なぜかというと、関数のせいです。

なぜ、あなたのコードがまだ動かないか不思議ですか?ステップ1」に従って「C」で適切にコーディングすることを学んでいれば、MQLでのコーディングはもっと上手になったはずです(CやC++に似ているからです)!あなたはまだ「基本」を知らないからです。

あなたは「関数」(ステップ3)さえも理解できていません!OrderSelect()」はいつから整数を返すようになったのか、ドキュメントには明確にブール値を返すと書いてあるのに。OrderClose()」の結果や、コードのどこかで実行時エラーが発生したかどうかのチェックもしない!

あなたの結果。そして、私たちのアドバイスに従わないので、私たちの時間も無駄にしています。

理由: