[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 372

 
Chiripaha:

Артем уже говорил, что Стоп-Левел может тоже плавать - это не постоянная величина! - А размер тика - да, константа.

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

 

Chiripaha:

Вопрос для производительности (оптимизации работы совы) в другом. Я лично все эти функции не пихаю в сову. А беру лишь параметры по необходимости. Да, писать кода приходится больше, зато сова меньше "лишней" библиотечной ерунды обрабатывает, т.к. не все из МаркетИнфо может оказаться нужным в сове.

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

 
tara:


1. Оформите код, не экономя строки (лесенкой).  - можно небольшой пример? 


tara, Chiripaha Спасибо ребята, гораздо быстрее заработало!
 

Написал первый индикатор. Всё считает правильно, только проблема с отображением на последнем баре и с обновлением по приходу нового бара (не обновляется).
Вот такая картинка:

 

В чём может быть проблема? 

Файлы:
 

подскажите пожалуйста, если на новенький (незахлмленный )нетбук  Asus Eee PC 1025C (белый)  Intel® Atom™ 1600 частота, гиг оперативки win 7 Starter поставить  10 МТ4 терминалов, без подкачки исторических котировок, с одной двумя валютными парами, без индикаторов и 1-м торгующим советником на каждый терминал - нетбук потянет их одновременно?

 а если 20 МТ4? 

 а 30 мне вряд ли понадобится когда нибудь :)) 

 

или все-таки надо ноутбук по сильнее брать?  

 

Fox_RM:

1. Оформите код, не экономя строки (лесенкой).  - можно небольшой пример? 
Вот, пример - Ваш код лесенкой. Я чтобы найти то, что Вам подсказал, для этого сам сначала оформил. Иначе мне было сложно найти.
int start()
  {
  
   int    limit;
   int    counted_bars=IndicatorCounted();
   double prev,current;
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;

   for(int i=0; i<limit; i++)   // -------------------------------------------- Основной цикл
     {
     
      //---- Awesom + Volumes
     
      AOBuffer3[i]=iMA(NULL,0,EMA,0,MODE_SMA,PRICE_MEDIAN,i)-iMA(NULL,0,SlowEMA3,0,MODE_SMA,PRICE_MEDIAN,i);
      
      if (Show_Volume==true)
       {
        double nSum = Volume[i]*Point*coaf;
        if (AOBuffer3[i]<=0) ExtMapBuffer1[i] =  nSum;
        if (AOBuffer3[i]>0)  ExtMapBuffer1[i] = -nSum;
      
        double Vol_Arr[];
        if (AOBuffer3[i]<=0) Vol_Arr[i] =  Volume[i]*Point*coaf;
        if (AOBuffer3[i]>0)  Vol_Arr[i] = -Volume[i]*Point*coaf;
       }

//----------------------------- Блок поиска значений -----------------------------------------//
 
      //-- Поиск Low & Time & Min_AO 
      if (AOBuffer3[i] < 0)
       {
        price_up_end = 0; 
        AO_up        = 0;  
        price_dn_start = Low[i]; 
        if (price_dn_end == 0) price_dn_end = Low[i]; 
        if (price_dn_start <= price_dn_end)
         {
          price_dn_end = price_dn_start; 
          time_dn      = Time[i]; 
          shift_dn     = iBarShift(NULL, 0, time_dn);
         }
        if (AOBuffer3[i] <= AO_dn)
         {
          AO_dn = AOBuffer3[i]*0.2+AOBuffer3[i]; 
          AO_time_dn = Time[i];
         }
      
        dn_koaf = dn_koaf_round;
        up_koaf_round++;
       }   
  
      //-- Поиск High & Time & Max_AO  
      if (AOBuffer3[i] > 0)
       {
        price_dn_end = 0; AO_dn = 0;  
        price_up_start = High[i];
        
        if (price_up_start >= price_up_end) 
         {
          price_up_end = price_up_start; 
          time_up      = Time[i]; 
          shift_up     = iBarShift(NULL, 0, time_up);
         }
        if (AOBuffer3[i] >= AO_up) 
         {
          AO_up = AOBuffer3[i]*0.2+AOBuffer3[i]; 
          AO_time_up = Time[i];
         }
      
        up_koaf = up_koaf_round;
        dn_koaf_round++;
       }   
//--------------------------------- Выставляем значения --------------------------------------------//
    
      Vol_AO_up = 0; Vol_AO_dn = 0;
      if (shift_up > shift_dn)
       {
        for (int dn_br = shift_dn; dn_br <= shift_up; dn_br++)            //-------------- Перебор значений внутри основного цикла
          {
           Vol_AO_up += Volume[dn_br]; 
           SetText("Awesome_super_volumes"+up_koaf, DoubleToStr(Vol_AO_up,0), AO_time_dn, AO_dn, Blue);
          }   
       }
 
      if (shift_dn > shift_up)
       {
        for (int up_br = shift_up; up_br <= shift_dn; up_br++)            //-------------- Еще один перебор значений внутри основного цикла
          {
           Vol_AO_dn += Volume[up_br]; 
           SetText("Awesome_super_volumes"+dn_koaf, DoubleToStr(Vol_AO_dn,0), AO_time_up, AO_up, Red);
          }   
       }
     } 
           
//---- done

   return(0);
  }
 
Chiripaha:
Вот, пример - Ваш код лесенкой. Я чтобы найти то, что Вам подсказал, для этого сам сначала оформил. Иначе мне было сложно найти.


ОК! Спасибо!
 
lottamer:

подскажите пожалуйста, если на новенький (незахлмленный )нетбук  Asus Eee PC 1025C (белый)  Intel® Atom™ 1600 частота, гиг оперативки win 7 Starter поставить  10 МТ4 терминалов, без подкачки исторических котировок, с одной двумя валютными парами, без индикаторов и 1-м торгующим советником на каждый терминал - нетбук потянет их одновременно?

 а если 20 МТ4? 

 а 30 мне вряд ли понадобится когда нибудь :)) 

 или все-таки надо ноутбук по сильнее брать?  

Процессора, скорее всего, хватит. Но вот памяти на 30 и больше... Опять же - смотря что Вы с этими терминалами будете делать. Если, как Вы описали, 2-3 валютные пары, просто торговать - памяти больше ставьте из расчета 100-150 мб на 1 терминал (у меня так занимает) и вперед. Но, когда будет больше даже 5-ти, Вы просто замучаетесь между ними переключаться на ноуте. У меня 7 штук бывает, но это на 4-х мониторах (не ноутбучных, т.е. не маленьких). Ваш гиг оперативки только на 7-ку и хватит. : )) Это надо воспринимать буквально. А если еще от этой памяти и видео забирает... Ноут - это для 1-2 мт4. Чтобы оперативно что-то сделать. (имхо)
10 дюймов экран - Вы на нем глаза "сломаете". У меня знакомый себе на подмену использует примерно Вашу модель, правда ХР х86. И настоятельно рекомендует хотя бы 13-14 дюймов. И памяти 2 Гб макс - это мало, если Вы будете действительно по 20 штук ставить, да, наверное, ведь еще что-то будете использовать - хотя бы Инет... Видео память от общей берет. - До 4-х Гб лучше.
 
sv.:

Написал первый индикатор. Всё считает правильно, только проблема с отображением на последнем баре и с обновлением по приходу нового бара (не обновляется).
Вот такая картинка:

В чём может быть проблема? 

А Ваш индикатор у меня вообще никак не показывается... Это теперь не сегодня - потом полажу, если к тому времени кто-то из более опытных не подскажет.
 
Chiripaha:
А Ваш индикатор у меня вообще никак не показывается... Это теперь не сегодня - потом полажу, если к тому времени кто-то из более опытных не подскажет.


странно.
проверил, всё показывает.
может сжать по вертикали график нужно, если канал широкий, то при увеличении может не видно.
 
Chiripaha:
Процессора, скорее всего, хватит. Но вот памяти на 30 и больше... Опять же - смотря что Вы с этими терминалами будете делать. Если, как Вы описали, 2-3 валютные пары, просто торговать - памяти больше ставьте из расчета 100-150 мб на 1 терминал (у меня так занимает) и вперед. Но, когда будет больше даже 5-ти, Вы просто замучаетесь между ними переключаться на ноуте. У меня 7 штук бывает, но это на 4-х мониторах (не ноутбучных, т.е. не маленьких). Ваш гиг оперативки только на 7-ку и хватит. : )) Это надо воспринимать буквально. А если еще от этой памяти и видео забирает... Ноут - это для 1-2 мт4. Чтобы оперативно что-то сделать. (имхо)
10 дюймов экран - Вы на нем глаза "сломаете". У меня знакомый себе на подмену использует примерно Вашу модель, правда ХР х86. И настоятельно рекомендует хотя бы 13-14 дюймов. И памяти 2 Гб макс - это мало, если Вы будете действительно по 20 штук ставить, да, наверное, ведь еще что-то будете использовать - хотя бы Инет... Видео память от общей берет. - До 4-х Гб лучше.

в чем суть идеи: нужен выделенный сервер чтобы советники на нем рубились круглосуточно, и не отвлекали ни меня, ни мой основной комп. Логично купить VPS, но там есть проблемы с безопасностью, плюс он все равно стоит денег - как минимум 400р в месяц. и мне подсказали идею - купи нетбук, и сделай из него подобный сервер только дома, под полным контролем. Отличная идея.

 что он должен делать: на нем стоят ТОЛЬКО МТ4, по максимуму облегченные, без индикаторов, с одним работающим советником. на моем компе пример такого МТ4 занимает 30 метров оперативки. Значит , логично, 10 таких будет занимать 300 метров.

На 10 должно хватить. А вот с учетом и самой WIN7 на 20 Мт4 600 свободных метров может и не быть... видимо надо искать нетбук с 2 гигами оперативки

Больше нетбук ничего делать не будет. ни интернета, ни программ, НИЧЕГО! Вообще , включил в понедельник, и забыл. В пятницу вечером выключил. 11 часов работы от аккумулятора позволят работать в случае чего...+GPRS модем.. 

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