Errores, fallos, preguntas - página 1700

 
fxsaber:

Esta es la idea que hay detrás del indicador no extraíble.

¿Se trata de organizar un vínculo con "sí mismo"? Así que no es "conseguido", eres tú quien ha escrito el indicador de forma tan exótica.

Si te confunde este comportamiento del indicador, no lo hagas.

Dónde añadirlo y cómo podría, al menos en teoría, ayudar. Se trata de un error en el terminal. Es un error grave. He tenido suerte: veo en el registro que el indicador funciona. Sin embargo, hay muchos indicadores que funcionan en el terminal sin ninguna información sobre ellos. Pero el tema surge, ¿y por qué mi CPU está tan cargada en un terminal vacío?

Hay muchas maneras de "dispararse en el pie". El indicador puede trivializarse. Y es mucho más fácil hacerlo por accidente que escribir accidentalmente su diseño. ¿Es esto también un "error terminal"?

 
Anton:

¿Se trata de organizar una referencia a "ti mismo"? Así que no es "conseguido", eres tú quien ha escrito el indicador de forma tan exótica.

Si te confunde este comportamiento del indicador, no lo hagas así.

Hay muchas maneras de "dispararse en el pie". El indicador puede trivializarse. Y es mucho más fácil hacerlo por accidente que escribir accidentalmente su diseño. ¿Es esto también un "error terminal"?

Se trata de un error de terminal cuando es posible ejecutar un indicador pesado sin saberlo en un terminal completamente vacío (sin gráficos abiertos). Y luego hay preguntas, ¿por qué su terminal carga la CPU en un punto plano? ¡Es un error! No hay gestor de tareas interno, no hay control.
 
Anton:

¿Se trata de organizar una referencia a "ti mismo"? Así que no es "lo tengo", eres tú quien ha escrito el indicador de forma tan exótica.

No es exótico, es un intento de identificarse en el indicador. Tratar de hacerlo de una manera más civilizada resultó ser un fastidio.
#property indicator_separate_window
#property indicator_buffers 0
#property indicator_plots   0

bool WhereIAm( long &Chart_ID, int &Sub_Window )
{
  const string PrevShortName = MQLInfoString(MQL_PROGRAM_NAME);  
  
  MathSrand((int)TimeCurrent());
  const string ShortName = (string)MathRand();
    
  IndicatorSetString(INDICATOR_SHORTNAME, ShortName);    
  
  Chart_ID = ChartFirst();

  Print(Chart_ID);
  
  while (Chart_ID > 0)
  {
    const int Total = (int)ChartGetInteger(Chart_ID, CHART_WINDOWS_TOTAL);
    
    for (Sub_Window = 0; Sub_Window < Total; Sub_Window++)
    {
      const int TotalIndicators = ChartIndicatorsTotal(Chart_ID, Sub_Window);
      
      for (int i = 0; i < TotalIndicators; i++)
        if (ShortName == ChartIndicatorName(Chart_ID, Sub_Window, i))
        {
          IndicatorSetString(INDICATOR_SHORTNAME, PrevShortName);
          
          return(true);
        }
    }
    
    Chart_ID = ChartNext(Chart_ID);
  }

  IndicatorSetString(INDICATOR_SHORTNAME, PrevShortName);
  
  return(false);
}


#define  TOSTRING(A) #A + " = " + (string)A + " "

void OnInit( void )
{
  long Chart_ID;
  int Sub_Window;
  
  if (WhereIAm(Chart_ID, Sub_Window))
    Print(TOSTRING(Chart_ID) + TOSTRING(Sub_Window));
    
  return;
}
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[] )
{
  return(rates_total);
}
Así que es una putada, porque el Service Desk ha sido engañado, por decirlo suavemente.
 
fxsaber:
Hace tiempo que no escribo en MQL5, no soy programador. Conozco MQL4 y ahora conozco un poco MQL5. ¿Por qué encuentro errores en MT5 casi todos los días? De hecho, ¡casi todos los días un hombre en la calle encuentra accidentalmente bichos! ¿De qué se trata todo esto, por qué es tan crudo? ¿No hay probadores en absoluto? No mentiría si dijera que la MT empieza a ser molesta. Y aún más molesto es darse cuenta de que no puedo programar nada más.

¿De verdad? Es difícil de creer :)

Prueba con

 
pako:

¿De verdad? Es difícil de creer :)

Prueba con

Sólo lo necesito para comerciar. No me colocaré si construyo un terminal, un probador y otras cosas. Mi vida no se mide en cientos de años.
 
fxsaber:
No es exótico, es un intento de autoidentificarse en un indicador. Tratar de hacerlo de una manera más civilizada fue un fastidioEso es porque Servicedesk fue engañado, por decirlo suavemente.

Tenga en cuenta el punto 2:

https://www.mql5.com/ru/docs/chart_operations/chartwindowfind

Sobre la respuesta en el servicedesk - todas las personas se equivocan a veces.

Документация по MQL5: Операции с графиками / ChartWindowFind
Документация по MQL5: Операции с графиками / ChartWindowFind
  • www.mql5.com
Операции с графиками / ChartWindowFind - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
fxsaber:
Sólo necesito uno para comerciar. No me va a dar por construir un terminal, un probador y demás. Mi vida no se mide en cientos de años.
Tomamos las fechas de MT, las procesamos en un dll.
 
pako:
Tomó las fechas de mt , procesado en dll.
Ningún problema con el lenguaje, problemas con la visualización (indicadores) y la fecha (copyticks). Escribir esto en una DLL es una pérdida de tiempo.
 
Anton:

Tenga en cuenta el punto 2:

https://www.mql5.com/ru/docs/chart_operations/chartwindowfind

Sobre la respuesta en el servicio de atención al cliente: todas las personas cometen errores a veces.

Gracias, lo único que queda por hacer es resolver la ambigüedad de ShortName.
 
fxsaber:
Ningún problema con el lenguaje, problemas con la visualización (indicadores) y la fecha (copyticks). Escribir esto en una DLL sería una patada en los dientes.
¿Hay un pez en las garrapatas?