Ошибки, баги, вопросы - страница 1290

 
Tapochun:
Спасибо, как я понимаю функции OnTrade() и OnTradeTransaction() все равно нельзя использовать?
Вы правильно понимаете. Нельзя.
 

1. Почему при смене языка на одном терминале, он меняется на всех остальных после их перезагрузки?

Подробно: запущено 10 терминалов MT4/765, в одном сменил язык рус. на англ. и перезапустил его. После перезапуска других терминалов, у них так же меняется язык!

2. Почему автоматически не запоминается профиль, когда в нем производятся изменения - настройки индикаторов, экспертов, графиков?

Подробно: вчера настроил профиль, торговал на нем, а сегодня вырубили свет и при повторном запуске терминалов, никакие изменения не были сохранены, а загрузились те, которые были до внесения изменений.
Не помешало бы автоматически запоминать профиль через какое то определенное время, например каждые 10 мин или каждый 1 час.

 
Novikov:

2. Почему автоматически не запоминается профиль, когда в нем производятся изменения - настройки индикаторов, экспертов, графиков?

Профиль сохраняется при нормальном завершении приложения.
Если нужно сохранить, то закройте терминал и откройте заново, тогда будет счастье :)
 
fyords:
Профиль сохраняется при нормальном завершении приложения.
Если нужно сохранить, то закройте терминал и откройте заново, тогда будет счастье :)

"что бы я без вас делал" :)

3. Куда деваются котировки?

подробно: загружаю котировки m1 для построения РЕНКО графиков, после не корректного завершения работы терминала (отключение электричества), котировки приходится заново подгружать!

 
почему когда с мобилы андроид заходиш в профиль другого человека нет кнопки написать сообщение? из сообщений нужно набирать руками логин нового корреспондента.... неудобняк пипец..
 
Novikov:

"что бы я без вас делал" :)

3. Куда деваются котировки?

подробно: загружаю котировки m1 для построения РЕНКО графиков, после не корректного завершения работы терминала (отключение электричества), котировки приходится заново подгружать!

вам же говорят все изменения сохраняются при корректном завершении.... в том числе и подгруженные котировки
 

Так понимаю, что член структуры нельзя использовать в качестве буфера индикатора, например так:

struct Buffers
{
    double buffer [];
};

но как тогда быть, если буферов нужно несколько десятков, и не получается работать например так:

struct Buffers
{
    double buffer [];
};

Buffers IndBuff;

void Func()
{
  IndBuff[0].buffer[0]=3.1415926;
}
 
paladin800:
Да, я на эту функцию тоже наткнулся. Не могу сообразить как во внешних параметрах одну переменную сделать как 4AM а вторую как 5PM и потом просто результат TimeGMT() сравнивать с ними.

Давно не заглядывал.

4АМ - это 04:00
5РМ - это 17:00

 
joo:

Так понимаю, что член структуры нельзя использовать в качестве буфера индикатора, например так:

Можно
 
joo:

Так понимаю, что член структуры нельзя использовать в качестве буфера индикатора, например так:

но как тогда быть, если буферов нужно несколько десятков, и не получается работать например так:

Вот такой пример нашёл от небезызвестного автора. )

//+------------------------------------------------------------------+
//|                                                  EMA_Rainbow.mq5 |
//|                                       Copyright 2012, MetaDriver |
//|                                            MetaDriver@rambler.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaDriver"
#property link      "MetaDriver@rambler.ru"
#property version   "1.00"
//---
#define CountLine  50
//---
#property indicator_chart_window
#property indicator_buffers CountLine
#property indicator_plots   CountLine

//--- Внешние параметры
input int   FastPeriod   =5;
input int   PeriodStep   =5;
input color FastColor    =clrAqua;
input color MiddleColor  =clrDodgerBlue;
input color SlowColor    =clrBlue;
input color LFastColor   =clrYellow;
input color LMiddleColor =clrOrange;
input color LSlowColor   =clrOrangeRed;
//--- 
struct SBuffer
  {
   double            B[];
  };
//--- indicator buffers
SBuffer       EmaBuffer[CountLine];
//---
color Colors[CountLine];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   InitColors();
//---
   for(int i=0; i<CountLine; i++)
      InitBuffers(i);
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int    rates_total,
                const int    prev_calculated,
                const int    begin,
                const double &price[])
  {
//---
   int limit=rates_total-prev_calculated;
//---
   if(limit==1)
      limit++;
//---
   if(prev_calculated==0)
     {
      limit-=begin+1;
      for(int i=0; i<CountLine; i++)
         EmaBuffer[i].B[limit]=price[limit];
     }
//---
   if(limit!=0)
     {
      for(int i=0; i<CountLine; i++)
        {
         double p=2./(FastPeriod+PeriodStep*(CountLine-i)+1);
         //---
         for(int j=limit-1; j>=0; j--)
            EmaBuffer[i].B[j]=price[j]*p+EmaBuffer[i].B[j+1]*(1.-p);
        }
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| Инициализация цветных буферов                                    |
//+------------------------------------------------------------------+
void InitColors()
  {
   int Half=CountLine/2;
//---
   for(int i=0; i<Half; i++)
     {
      if(i%4==3)
         Colors[i]=MixColor(LSlowColor,LMiddleColor,i*1.0/Half);
      else
         Colors[i]=MixColor(SlowColor,MiddleColor,i*1.0/Half);
     }
//---
   for(int i=Half; i<CountLine; i++)
     {
      if(i%4==3)
         Colors[i]=MixColor(LMiddleColor,LFastColor,(i-Half)*1.0/Half);
      else
         Colors[i]=MixColor(MiddleColor,FastColor,(i-Half)*1.0/Half);
     }
  }
//+------------------------------------------------------------------+
//| Определение цвета                                                |
//+------------------------------------------------------------------+
color MixColor(color A,color B,double mix)
  {
   int r = (int)MathRound((B     & 0xFF) * mix + (A     & 0xFF) * (1. - mix));
   int g = (int)MathRound((B>>8  & 0xFF) * mix + (A>>8  & 0xFF) * (1. - mix));
   int b = (int)MathRound((B>>16 & 0xFF) * mix + (A>>16 & 0xFF) * (1. - mix));
   return color(r|g<<8|b<<16);
  }
//+------------------------------------------------------------------+
//| Инициализация индикаторных буферов                               |
//+------------------------------------------------------------------+
void InitBuffers(int index)
  {
   SetIndexBuffer(index,EmaBuffer[index].B,INDICATOR_DATA);
   PlotIndexSetInteger(index,PLOT_DRAW_TYPE,DRAW_LINE);
   PlotIndexSetInteger(index,PLOT_LINE_COLOR,Colors[index]);
   PlotIndexSetDouble(index,PLOT_EMPTY_VALUE,EMPTY_VALUE);
//---
   if(index%8==7) PlotIndexSetInteger(index,PLOT_LINE_WIDTH,1);
  }
//+------------------------------------------------------------------+
Причина обращения: