ロボットのこと、どうして動かないのか、誰が助けてくれるの? - ページ 4

 
GIM:

for(int i=0;i<OrdersTotal();i++)

エラー:"i".

エラーは何ですか?

//+------------------------------------------------------------------+
//|                                                          123.mq4 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

input double  lots       = 0.01;   // Лот
input int     stop_loss      = 10; // Указываем в валюте депозита
input int     take_profit    = 20; // Указываем в валюте депозита
extern int    Slippage = 3;        // Допустимое проскальзываение цены в пунктах
input int     Magic = 16384;       // Уникальный номер эксперта

int            last_bar       = 0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
// ===== Пересчет под пятизнак =========
   if(Digits()==3 || Digits()==5)
     {
      Slippage           *= 10;
     }   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if (last_bar == Bars) {return;}
   last_bar = Bars;
   if (OrdersTotal() == 0){
          int ticketbuy = OrderSend(Symbol(), OP_BUY, lots ,Ask, Slippage, 0, 0,  "", Magic, 0, clrBlue);
            if(ticketbuy<0)
               Print(Symbol()," OpenPosition. OrderSend Buy fail #",GetLastError());
            else
               Print(Symbol()," OpenPosition. OrderSend Buy successfully");
          int ticketsell = OrderSend(Symbol(), OP_SELL, lots ,Bid, Slippage, 0, 0,  "", Magic, 0, clrRed);
            if(ticketsell<0)
               Print(Symbol()," OpenPosition. OrderSend Sell fail #",GetLastError());
            else
               Print(Symbol()," OpenPosition. OrderSend Sell successfully");      
}
 double profit=0;
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==_Symbol && OrderMagicNumber()== Magic)
        {
         profit+=OrderProfit()+OrderSwap()+OrderCommission();
        }
     }
 int requot=0;
 if(profit>=take_profit || (-profit)>=stop_loss)
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==_Symbol && OrderMagicNumber()== Magic)
        {
         if(OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,clrRed))
               requot=0;
            else
              {
               requot++;
              }
         if(requot>10)
              {
               i++;
               requot=0;
              }
            i--;
        }
     }
 
  }
//+------------------------------------------------------------------+

 
GIM:
自分の命令だけってどういうこと...。
どのEAが注文を開けたか混乱しないように、1つのアカウントに複数のEAを配置する場合は、識別番号が使用されます。
 
取引回数 や通貨ペアのせいでしょうか?
 
GIM:
自分の命令だけってどういうこと...。
もしEAが口座内の自分の注文に対してのみ動作するのであれば、この書き方が正しいです。複数のストラテジーやエキスパートがいる場合、自分の注文と他の人の注文を混同してはならない。
 
Sergey Gritsay:
1つの口座に複数のEAがある場合、どのEAが注文を開いたか混乱せず、固有の識別番号を使用します。
すべてがクリアに、心から!
 
Vladimir Zubov:

何が間違いなのか?

ここでのエラーは、最初のforループと2番目のforループで変数iが2回初期化されていることです。2回目の初期化を削除するか、変数名を変更する必要があります。
 
皆さん、ありがとうございました。
 
Sergey Gritsay:
ここでのエラーは、最初のforループと2番目のforループで変数iが2回初期化されていることで、2回目の初期化を削除するか、変数名を変更する必要があります。
そうなんです、彼のコンパイラは戦っていると思ったんです。
 
Vladimir Zubov:
そうなんです、彼のコンパイラは戦っていると思ったんです。
コンパイラはおそらくそうでしょうが、エラーではなく、警告を出すはずです。
 

とか、いや、取り出したら

#property strict

と表示され、エラーになる。