Errores, fallos, preguntas - página 1290

 
Tapochun:
Gracias, entiendo que OnTrade() y OnTradeTransaction() no se pueden utilizar de todos modos?
Lo has entendido bien. No se puede.
 

1. ¿Por qué cuando cambio el idioma en un terminal, cambia en todos los demás después de reiniciarlos?

En detalle: Tengo 10 terminales MT4/765 funcionando, cambié el idioma en uno de ellos de ruso a inglés y lo reinicié. Después de reiniciar los otros terminales, ¡su idioma también cambia!

2. ¿Por qué no se recuerda automáticamente el perfil cuando lo modifico, es decir, la configuración de los indicadores, los asesores expertos y los gráficos?

En concreto: ayer configuré un perfil, comercié con él, y hoy se ha quedado en negro y al reiniciar los terminales no se han guardado los cambios y sólo se han descargado los que tenía antes de los cambios.
Sería una buena idea recordar automáticamente el perfil después de cierto tiempo, por ejemplo, cada 10 minutos o cada 1 hora.

 
Novikov:

2. ¿Por qué el perfil no se recuerda automáticamente cuando se hacen cambios en él - ajustes de indicadores, Asesores Expertos, gráficos?

El perfil se guarda cuando se cierra la aplicación normalmente.
Si necesitas guardarlo, cierra el terminal y vuelve a abrirlo, entonces serás feliz :)
 
fyords:
El perfil se guarda cuando se cierra la aplicación normalmente.
Si necesitas guardarlo, cierra el terminal y vuelve a abrirlo, entonces serás feliz :)

"qué haría sin ti" :)

3. ¿A dónde van las cotizaciones?

Cuando descargo las cotizaciones de m1 para construir los gráficos de RENCO, después de un apagado incorrecto del terminal (corte de energía), ¡las cotizaciones tienen que ser recargadas!

 
¿por qué cuando accedes al perfil de otra persona desde un móvil android, no hay ningún botón para escribir un mensaje? de los mensajes, tienes que escribir el nombre de usuario del nuevo corresponsal .... esto es muy inconveniente...
 
Novikov:

"qué haría sin ti" :)

3. ¿A dónde van las cotizaciones?

Descargo las cotizaciones de m1 para construir los gráficos de RENCO, pero después de que el terminal termine incorrectamente (corte de energía), ¡las cotizaciones tienen que ser recargadas!

se le indica que todos los cambios se guardan con el cierre correcto .... incluyendo las cotizaciones descargadas
 

Entiendo que un miembro de la estructura no puede ser utilizado como un búfer indicador, por ejemplo, así:

struct Buffers
{
    double buffer [];
};

pero entonces qué hacer si necesitas varias decenas de buffers y no funciona así:

struct Buffers
{
    double buffer [];
};

Buffers IndBuff;

void Func()
{
  IndBuff[0].buffer[0]=3.1415926;
}
 
paladin800:
Sí, yo también me encontré con esta función. No consigo averiguar cómo hacer que una variable de los parámetros externos sea las 4AM y la otra las 5PM y luego simplemente comparar el resultado de TimeGMT() con ellas.

Hace tiempo que no miro.

4AM es 04:00
5PM es 17:00

 
joo:

Tengo entendido que un miembro de la estructura no puede ser utilizado como tampón indicador, por ejemplo

Puede
 
joo:

Entiendo que un miembro de la estructura no puede ser utilizado como un búfer indicador, por ejemplo, así:

Pero qué hacer si se necesitan varias decenas de buffers y no funciona así:

Encontré este ejemplo de un autor no desconocido. )

//+------------------------------------------------------------------+
//|                                                  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);
  }
//+------------------------------------------------------------------+