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

 
Vitaly Murlenko #:
Модератор, Вы часто бываете в этой ветке. Посмотрите пожалуйста https://www.mql5.com/ru/forum/457132/page3#comment_51864568

Это скорее всего связано с переделкой "Сервис сигналов" - с терминала выброшено лишнее.

 
Сохранилa профили в файл.CSV.
Копирую на другом компьютере- другой ко компьютер не видит файлы CSV.
Как перенести профили mt5 между компьютерами?
 
Margarita I #:
Сохранилa профили в файл.CSV.
Копирую на другом компьютере- другой ко компьютер не видит файлы CSV.
Как перенести профили mt5 между компьютерами?

Профили не надо сохранять в каких-то файлах. Они сохраняются в папке терминал\MQL5\Profiles\Charts\папка с именем профиля и в ней по каждому графику свой файл со всеми настройками.

 
Margarita I #:
Сохранилa профили в файл.CSV.
Копирую на другом компьютере- другой ко компьютер не видит файлы CSV.
Как перенести профили mt5 между компьютерами?

папку профиль перенести.

 

Подскажите, пожалуйста, как програмно вызвать вот эту кнопку?


Без её нажатия буферные линии индикатора при переинициализации (смене ТФ) не прорисовываются. И справа панель тоже не прорисовывается (графические объекты)

А когда нажимаешь обновить - всё прорисовывается. 

Или подскажите, пожалуйста, как решить эту проблему, индикатор считывает данные машек со всех доступных валют. При первой инициализации (накидывании на график) - всё работает без проблем, делал на шаблоне стандартного терминального индикатора. Но, стоит вставить вызов что-то из других валют, то при смене ТФ они не хотят прорисовываться (я так понял, не загружаются данные). 

 
Ivan Butko #:
Или подскажите, пожалуйста, как решить эту проблему
Вы или код покажите, или обратитесь к телепатам.
 
Tretyakov Rostyslav #:
Вы или код покажите, или обратитесь к телепатам.
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
...
...
// Инициализация машек
   MA();
...
...
  }



//+------------------------------------------------------------------+
//|  Fractals on 5 bars                                              |
//+------------------------------------------------------------------+
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[])
  {
   if(rates_total < Bars_show + Period_calc + Period_slow)
      return(0);

   int start;
//--- clean up arrays
   if(prev_calculated == 0)
     {
       start = Bars_show + Period_calc + Period_slow;
       ArrayInitialize(USD,EMPTY_VALUE);
       ArrayInitialize(EUR,EMPTY_VALUE);
       ArrayInitialize(GBP,EMPTY_VALUE);
       ArrayInitialize(JPY,EMPTY_VALUE);
       ArrayInitialize(CHF,EMPTY_VALUE);
       ArrayInitialize(CAD,EMPTY_VALUE);
       ArrayInitialize(AUD,EMPTY_VALUE);
       ArrayInitialize(NZD,EMPTY_VALUE);
       
       ArrayInitialize(usd,EMPTY_VALUE);  
       ArrayInitialize(eur,EMPTY_VALUE);   
       ArrayInitialize(gbp,EMPTY_VALUE);
       ArrayInitialize(jpy,EMPTY_VALUE);   
       ArrayInitialize(chf,EMPTY_VALUE);
       ArrayInitialize(cad,EMPTY_VALUE);   
       ArrayInitialize(aud,EMPTY_VALUE);
       ArrayInitialize(nzd,EMPTY_VALUE);
       
            
     }
   else
      start = rates_total - prev_calculated;
//--- main cycle of calculations
        
...
   
    
    for (int i = start; i >= 0 && !IsStopped(); i--)                                             
      {  
        // ------------ USD ------------          
        
        sum = 0;    
        
        sum -= Calc("EURUSD", tf, MA1_EURUSD, MA2_EURUSD, i); 
        ...    

        usd[i]   = sum;
        usd_last = EMA(i, sum, usd);
        USD[i] = usd_last;
        USD_info[i] = usd_last;
...
...
  
}




double Calc(string sym, ENUM_TIMEFRAMES timeframe, int handle1, int handle2, int i)
  {
    double x = 0;
    
    for (int j = 0; j < Period_calc && !IsStopped(); j++)
      {
        CopyBuffer(handle1, 0 , i + j , 1, ma1);
        CopyBuffer(handle2, 0 , i + j , 1, ma2);
                 
        sizes[j] = ma1[0] - ma2[0];
      }
        
    x_min = sizes[ArrayMinimum(sizes)]; //минимальное значение на интервале
    x_max = sizes[ArrayMaximum(sizes)]; //максимальное значение на интервале 
    
    //Comment(x_max + "\n" + x_min);
    x = (sizes[0] - x_min) / (x_max - x_min) * 2.0 - 1.0;   
    
    return x;
  }  



void MA()
  {
    // Машки
   
    // --------------------------- USD ---------------------------
   
    MA1_EURUSD = iMA("EURUSD", PERIOD_CURRENT, 5, 0, MODE_EMA, MODE_CLOSE);
    MA1_GBPUSD = iMA("GBPUSD", PERIOD_CURRENT, 5, 0, MODE_EMA, MODE_CLOSE);
    MA1_AUDUSD = iMA("AUDUSD", PERIOD_CURRENT, 5, 0, MODE_EMA, MODE_CLOSE);
    MA1_NZDUSD = iMA("NZDUSD", PERIOD_CURRENT, 5, 0, MODE_EMA, MODE_CLOSE);
    MA1_USDCHF = iMA("USDCHF", PERIOD_CURRENT, 5, 0, MODE_EMA, MODE_CLOSE);
    MA1_USDCAD = iMA("USDCAD", PERIOD_CURRENT, 5, 0, MODE_EMA, MODE_CLOSE);
    MA1_USDJPY = iMA("USDJPY", PERIOD_CURRENT, 5, 0, MODE_EMA, MODE_CLOSE);

...
...
}



Вот примерно такая белиберда происходит при смене ТФ



А такая штука происходит, когда перезапускаешь терминал МТ5 с накинутым индикатором


Часть линий нарисовалось - часть нет

 
Ivan Butko #:

Подскажите, пожалуйста, как програмно вызвать вот эту кнопку?


Без её нажатия буферные линии индикатора при переинициализации (смене ТФ) не прорисовываются. И справа панель тоже не прорисовывается (графические объекты)

А когда нажимаешь обновить - всё прорисовывается. 

Или подскажите, пожалуйста, как решить эту проблему, индикатор считывает данные машек со всех доступных валют. При первой инициализации (накидывании на график) - всё работает без проблем, делал на шаблоне стандартного терминального индикатора. Но, стоит вставить вызов что-то из других валют, то при смене ТФ они не хотят прорисовываться (я так понял, не загружаются данные). 

Почитайте о принципах создания мультисимвольных индикаторов.
Готовим мультисимвольные мультипериодные индикаторы
Готовим мультисимвольные мультипериодные индикаторы
  • www.mql5.com
В статье рассмотрим принципы создания мультисимвольных мультипериодных индикаторов и получение от них данных в советниках и индикаторах. Рассмотрим основные нюансы использования мульти-индикаторов в советниках и индикаторах, и их отрисовку через буферы пользовательского индикатора.
 
Valeriy Yastremskiy #:

папку профиль перенести.

Не вижу ничего в папках профиля
Файлы:
 
Я не вижу ничего в папке терминала
Alexey Viktorov #:

Профили не надо сохранять в каких-то файлах. Они сохраняются в папке терминал\MQL5\Profiles\Charts\папка с именем профиля и в ней по каждому графику свой файл со всеми настройками.

Файлы:
Причина обращения: