エラー、バグ、質問 - ページ 1914

 
nys2000:

もう少し具体的に教えてください。


一からやり直す

 
nys2000:

もう少し具体的に教えてください。

for(i=1; i <=OrdersTotal(); i++) このリストの注文は、0からOrdersTotal()-1まで(Artem Trishkinに許してもらおう、ちょうどnys2000の待ち時間が短くなった)、包括的に番号が付けられている。
 
Aleksei Beliakov:

一からやり直す


この2つは同等の選択肢です。If for (i=1...) thenOrderSelect(i-1,...), if for (i=0,...) - OrderSelect(i,...).

 
Vladimir:
for(i=1; i <=OrdersTotal(); i++) このリストの注文は、0からOrdersTotal()-1まで(Artem Trishkinに許してもらおう、ちょうどnys2000の待ち時間が短くなった)、包括的に番号が付けられている。

ありがとうございます。しかし、OrderSelect(i-1,...)では0からOrdersTotal()-1までの注文番号が考慮されます。

 
int OrdersTotalT(int _type)
  {
   int _total=0;
   for(int cnt=OrdersTotal()-1;cnt>=0;cnt--)
     {

      bool select=OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
      if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol() && OrderType()==_type)
        {
           _total++;
        }
     }
   return(_total);
  }
 
nys2000:

ありがとうございます。しかし、0からOrdersTotal()-1までの注文の番号付けは、OrderSelect(i-1,...)で説明されているのです。


検索の逆順で行う ...

 
nys2000:

こんな感じの簡単なコードです。

機能を開始した時点では、2つのBuyポジションが開いています。この関数は、2つのオーダーの存在を、Passage 1, Passage 2の2回に分けて表示します。

コメントを削除して、再度関数を実行します。勢いよく1枚の買い注文を取り下げ、「Passage #1」を宣言してループを抜ける。Passage #2 "のメッセージは表示されません。

マジックとは何でしょうか?


1. i=1では、オーダーを計算した ...check condition 1<= 2 ?はい。選択し、注文を終了した。

2. i++ (i=2)

3.OrdersTotal()=1<----------ループ内で注文を閉じることで、実際にループを抜ける条件を変更した

4.2<=1 ? no <----------- ここであなたの "マジック "とそれに応じてループから終了します。

void CloseAllOrders()
{
bool Ans;
int total=OrdersTotal();
   for(int i=1; i <=total; i++)     
      {      
      Print("Проход № ", i);      
      if (OrderSelect(i-1,SELECT_BY_POS)==true) 
         {  
         if (OrderSymbol() != Symbol())
            continue;
         if (OrderType()==0)
             {
//            Ans=OrderClose(OrderTicket(),OrderLots(), NormalizeDouble(Bid,Digits),25);
             }           
         if (OrderType()==1)
             {
//            Ans=OrderClose(OrderTicket(),OrderLots(), NormalizeDouble(Ask,Digits),25);
             } 
         }
      }      
         
return;
   
}
 

CHART_WINDOW_HANDLE チャート ID が追加された理由とその目的

 
Konstantin:

CHART_WINDOW_HANDLE チャート ID が追加された理由とその目的

チャートIDはmql環境用、HWNDはwinapi用と仮定して説明します。
 

実行中のエラー

int f( int t )
{
union U {
        U( int t ) : t1( t ) {}
        int t2;
        int t1;
};
	U u( t );
        return u.t2;
}
void OnStart()
{
        Print( f( 3 ));
}

結果:乱数(3でないことは確実)