Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1507

 
MakarFX:

А можно как-то определить кол-во открытых графиков?

Исправил на 100.

Если нужно что-то найти одно, тогда после того как нашли - return, чтобы дальше не гонять цикл

 
Vitaly Muzichenko:

Исправил на 100.

Если нужно что-то найти одно, тогда после того как нашли - return, чтобы дальше не гонять цикл

мне надо гонять цикл на каждом тике, поэтому сделал так

   long currChart=ChartFirst();
   double pr;
   int vdigits;
   int i=0; while(i<=CHARTS_MAX)
     {
      if(currChart<0) break;
      if(ObjectFind(currChart,ChartSymbol(currChart)+" BUY")==0) 
        { 
         pr=ObjectGetDouble(currChart,ChartSymbol(currChart)+" BUY",OBJPROP_PRICE1);
         vdigits = (int)MarketInfo(ChartSymbol(currChart),MODE_DIGITS); 
         Print(i," ",ChartSymbol(currChart)," ",DoubleToStr(pr,vdigits));
        }else{Print(i," ",ChartSymbol(currChart)," 0");}
      currChart=ChartNext(currChart);  i++;
     }
 

а если два "чего то одного" открыто?
почему дальше то не гонять?

 
MakarFX:

мне надо гонять цикл на каждом тике

может подумать как-то при помощи CHARTEVENT_CUSTOM что-то сделать.

 
Aleksei Stepanenko:

может подумать как-то при помощи CHARTEVENT_CUSTOM что-то сделать.

Не вариант...надо проверять без моего участия.

выше написанный код вроде правильно работает, но так как я слабый программист, хотел увидеть мнение более опытных и знающих.

...до понедельника ждать долго, чтоб проверить (

 
Так слушать эфир вместо цикла  программа может тоже без Вашего участия, не?
 
Aleksei Stepanenko:
Так слушать эфир программа может тоже без Вашего участия, не?
Я не понял...
 
Я не изучал вопрос, но думаю можно назначить событие каждому графику, а потом ждать его в OnChartevent... Не знаю, но надеюсь
 
MakarFX:

мне надо гонять цикл на каждом тике, поэтому сделал так

не обязательно таскать фигню из справки, пишите очевидный цикл...вам-же потом с этим жить :-)

   for(long chartId=ChartNext(0);chartId>0 &&!IsStopped();chartId=ChartNext(chartId)) {

      if (ChartSymbol(chartId)=="") continue;

      DoChart(chartId);

   }

 
Aleksei Stepanenko:
Я не изучал вопрос, но думаю можно назначить событие каждому графику, а потом ждать его в OnChartevent...

Алексей, если честно, то с моими познаниями это звучит страшно...

Мне надо проще, нашел объект на покупку-купил, нашел объект на продажу-продал.

Причина обращения: