Errores, fallos, preguntas - página 378

 

Por qué la expresión "if(ichi.TenkanSen(i)< ichi.KijunSen(i))" SIEMPRE (en todas las velas) devuelve falso, incluso cuando "if(ichi.TenkanSen(i)> ichi.KijunSen(i))"? Parece un fallo en la biblioteca estándar. El código completo está en el archivo.

Comment(DoubleToString(ichi.TenkanSen(0),5));

En el euro-dólar sale

Archivos adjuntos:
Ich_1.mq5  3 kb
 
Graff:

Por qué la expresión "if(ichi.TenkanSen(i)< ichi.KijunSen(i))" SIEMPRE (en todas las velas) devuelve falso, incluso cuando "if(ichi.TenkanSen(i)> ichi.KijunSen(i))"? Parece un fallo en la biblioteca estándar. Código completo en el archivo

En primer lugar, TerminalInfoInteger(TERMINAL_MAXBARS) - no puede hacerlo.

sustituir por rates_total


En segundo lugar, sí, hay un error que m_data_total todo el tiempo =0. Por lo tanto, no tenemos valores.

 
sergeev:

en primer lugar TerminalInfoInteger(TERMINAL_MAXBARS) - no puede hacer esto.

sustituir por rates_total

Lo he sustituido por for(int i=0; i<=total_de_tarifas-1; i++) en esencia, no ha cambiado nada.
 
En segundo lugar, sí, hay un error, m_data_total =0 todo el tiempo. Por eso no hay valores.
 
sergeev:

En segundo lugar, sí, hay un error, m_data_total =0 todo el tiempo. Por lo tanto, no hay valores.
Traté de cambiar los valores en Comment(DoubleToString(ichi.TenkanSen(3),5)); en 1,2,3 en Comment es constantemente el mismo. Tal vez impulsar ese ajuste para que funcione, y el arreglo oficial esperar a que no hay oportunidad.
 
Graff:
Intenté cambiar los valores en Comment(DoubleToString(ichi.TenkanSen(3),5)); a 1,2,3 en Comment muestra constantemente lo mismo. ¿Puede sugerir que pellizcar para que funcione, entonces el arreglo oficial esperar a que no hay oportunidad.
No utilice esta clase. Coge la manivela de siempre.
 
sergeev:
No utilices esta clase. Coge el mango normal.

No te sientes muy cómodo usándolo...

OK, gracias por su atención, a la espera de la solución.

 
Graff:

No es muy cómodo de usar...

OK, gracias por su atención, a la espera de la solución.

¿No crees que es cómodo? :)

int ich;

//+------------------------------------------------------------------+
int OnInit()
  {
   ich=iIchimoku(_Symbol,_Period, TenkanSen, KijunSen, SenkoSpan);
   return(0);
  }
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
    IndicatorRelease(ich);
  }
//+------------------------------------------------------------------+
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[])
  {
   double ten[]; CopyBuffer(ich, 0, 0, rates_total, ten);
   double kij[]; CopyBuffer(ich, 1, 0, rates_total, kij);
   for(int i=0; i<rates_total; i++)
     {
      if(ten[i]<kij[i]) { up.Create(0,"Tenkan>Kijun"+IntegerToString(i),0,time[i],low[i]); up.Color(clrLimeGreen); }
      else { down.Create(0,"Tenkan<Kijun"+IntegerToString(i),0,time[i],high[i]); down.Color(clrTomato); }
     }
   return(rates_total);
  }
 
sergeev:

¿no es cómodo? :)


No soy programador y no me siento muy cómodo con este arreglo.

¿Tiene sentido cambiar

CopyBuffer(ich, 1, 0, rates_total, kij);

¿Sustituir rates_total por BarsCalculated(ich)?

PD: ¿Y de qué ciudad es usted, si no es un secreto?

 
Graff:


Bien, gracias por la atención, a la espera de que se arregle.

Por cierto, ¿estás seguro de que no necesitas llamar a ninguna función adicional?

La biblioteca tiene tanto Refresh como BufferResize. Me parece que son necesarios para el funcionamiento normal.