Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 765

 
На одном ноутбуке стоИт два терминала МТ4: один с 4-мя знаками после запятой, второй - с 5-тью знаками. За одно и то же время трафик на первом 105/0 kb, на втором  3450/0 kb. Первый грухит процессор на 6%, второй - на 39%. В чем проблема? Это вообще норма?
 
видимо мне здесь ни кто не поможет! все только тыкают на учебник. это равносильно тому что ученик спрашивает учителя чтоб помог изучить тему которую он не понимает а тот ему говорит смотри в книгу. возникает вопрос зачем учитель также этот форум и эта тема!!!
 
logut:
видимо мне здесь ни кто не поможет! все только тыкают на учебник. это равносильно тому что ученик спрашивает учителя чтоб помог изучить тему которую он не понимает а тот ему говорит смотри в книгу. возникает вопрос зачем учитель также этот форум и эта тема!!!

Ветка очень хорошая и полезная. Здесь много добрых людей. Повторите мне Ваш вопрос.

 
ikatsko:
На одном ноутбуке стоИт два терминала МТ4: один с 4-мя знаками после запятой, второй - с 5-тью знаками. За одно и то же время трафик на первом 105/0 kb, на втором  3450/0 kb. Первый грухит процессор на 6%, второй - на 39%. В чем проблема? Это вообще норма?
За шесть лет можно было понять что на котировки с лишним знаком нужно больше ресурсов. Если конечно они чаще приходят и меньше различаются.
 
Vinin:
За шесть лет можно было понять что на котировки с лишним знаком нужно больше ресурсов. Если конечно они чаще приходят и меньше различаются.

Спасибо. Я Вас тоже давно знаю. 

Про трафик, конечно, объяснение принимается и "за шесть лет", в принципе, я это понял.

А что можно сказать о загрузке процессора? Не уж то общение терминала с инетом (с целью обеспечения инфой/трафиком/котировками) так сильно влияют на загрузку процессора терминалом? (напомню, 4-х значный грузит на 6%, 5-ти значный на 39%. Заранее уточню, ноут Samsung X15, процессор 1400 МГц) 

 
ikatsko:

Ветка очень хорошая и полезная. Здесь много добрых людей. Повторите мне Ваш вопрос.

 

мне input double lots = 0.01;
input int takeprofit = 100;
input int stoploss = 100;
 extern int magic = 123;
//----------------+
int start()
{


 


//---------------+


int ticket=OrderSend(Symbol(),OP_BUYLIMIT,lots,Ask,3,Ask +stoploss* Point, Ask + takeprofit* Point,NULL,123,120,CLR_NONE);






return(0);

нужна подсказка как написать советник с отложкой я в этом деле новичок месяц голову ломаю есть набросок
 
ikatsko:

Спасибо. Я Вас тоже давно знаю. 

Про трафик, конечно, объяснение принимается и "за шесть лет", в принципе, я это понял.

А что можно сказать о загрузке процессора? Не уж то общение терминала с инетом (с целью обеспечения инфой/трафиком/котировками) так сильно влияют на загрузку процессора терминалом? (напомню, 4-х значный грузит на 6%, 5-ти значный на 39%. Заранее уточню, ноут Samsung X15, процессор 1400 МГц) 

Похоже просто индикаторы кушают ресурсы. Расчетов стало больше. Хотя - ну не нужны они особо, но требуют
 
logut:
мне input double lots = 0.01;
input int takeprofit = 100;
input int stoploss = 100;
 extern int magic = 123;
//----------------+
int start()
{


 


//---------------+


int ticket=OrderSend(Symbol(),OP_BUYLIMIT,lots,Ask,3,Ask +stoploss* Point, Ask + takeprofit* Point,NULL,123,120,CLR_NONE);






return(0);

нужна подсказка как написать советник с отложкой я в этом деле новичок месяц голову ломаю есть набросок

Вам давали наводку на документацию.

Отложка срабатывает при достижении какого-то уровня (отклонения от текущей цены). А Вы пытаетесь использовать текущую.  Поищите в поиске гридеры или сеточники

 

Здравствуйте, вопрос такой: всегда ли параметр prev_calculated в индикаторах передаётся правильно?

Вот простейший пример: (здесь Extern Int BarsAtOnce = 3)

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   //bool success;
   int tocalc; // сколько должно быть посчитано
   int i;
//---

   if (ArraySetAsSeries(time,true) & ArraySetAsSeries(open,true) & ArraySetAsSeries(high,true) & ArraySetAsSeries(low,true) & ArraySetAsSeries(close,true))
   {
      tocalc=prev_calculated+BarsAtOnce;
      if (tocalc>rates_total) tocalc=rates_total;
      
      Print("rates_total "+IntegerToString(rates_total)+" prev_calculated "+IntegerToString(prev_calculated)+" tocalc "+IntegerToString(tocalc));
      
      for (i=prev_calculated; i<tocalc; i++)
      {
         Label1Buffer[i]=open[i];
      }
      return(tocalc);
   }
   else
   {
      Alert("Fail");
      return(0);
   }
  }

 Результат:

2014.11.06 20:35:07.984 Analysis EURUSD,M1: initialized
2014.11.06 20:35:08.000 Analysis EURUSD,M1: rates_total 65013 prev_calculated 0 tocalc 3
2014.11.06 20:35:08.015 Analysis EURUSD,M1: rates_total 65013 prev_calculated 65013 tocalc 65013

Т.е. управляющая система считает, что буфер был посчитан полностью?

Необходимо отметить связь между значением, возвращаемым функцией OnCalculate() и вторым входным параметром prev_calculated. Параметр prev_calculated при вызове функции содержит значение, которое вернула функция OnCalculate() на предыдущем вызове. Это позволяет реализовать экономные алгоритмы расчета пользовательского индикатора с тем, чтобы избежать повторных расчетов для тех баров, которые не изменились с предыдущего запуска этой функции.

Для этого обычно достаточно вернуть значение параметра rates_total, которое содержит количество баров при текущем вызове функции.

 Задача - сделать "постепенный" расчёт индикатора, чтобы не тормозить приложение в момент его запуска.

 
Awwl:

Здравствуйте, вопрос такой: всегда ли параметр prev_calculated в индикаторах передаётся правильно?

Вот простейший пример: (здесь Extern Int BarsAtOnce = 3)

 Результат:

Т.е. управляющая система считает, что буфер был посчитан полностью?

 Задача - сделать "постепенный" расчёт индикатора, чтобы не тормозить приложение в момент его запуска.

 

Вы уверены что ArraySetAsSeries() возвращает то что Вам надо. Или думаете то что нужно. Может до расчета и дело не доходит

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