[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 310

 
Vinin:


Te puedo decir que no he leído el libro de texto, pero tampoco he hecho ninguna pregunta.

Si hay preguntas y hay una fuente para resolver el problema, probablemente esté en el lugar equivocado. Tienes que volver al jardín de infancia. No te has enterado de nada.

Yo no he dicho que no lea nada por principio, si el enlace me ayuda, la cuestión deja de serlo. Una pregunta y una fuente no son suficientes para resolver un problema, hay que saber qué buscar en la fuente.
 
Vinin:

Siempre es de izquierda a derecha y no depende de los resultados de las expresiones de entrada. Siempre se comprueba hasta el final.

A este respecto me gustaría añadir que si es necesario utilizar condiciones del tipo if (a>b && c>d), entonces...

Para acelerar la ejecución, utilice la siguiente forma: si (a>b) si (c>d), entonces...

Porque si resulta que a<b, la ejecución saltará inmediatamente a la siguiente si (a>b) si (c>d) pero no comparará completamente las expresiones entre paréntesis, es decir, no comprobará c>d como en el primer caso.

 
GarKain:
No he dicho que no lea nada, si el enlace me ayuda, la pregunta ya no es un problema. Una pregunta y una fuente no son suficientes para resolver un problema, también hay que saber qué buscar en la fuente.

Lee el foro de MQL5 - la gente de allí recomienda correctamente leer TODOS los artículos para entender los fundamentos del lenguaje.

En cualquier caso, hay que conocer (leer) la base en forma de tutorial y los docs ANTES de hacer preguntas.


 
Roman.:


No pasa nada. Gerchik en YouTube, mira y escucha: "30% del mercado - ya más alto que el techo ..." - como esto, pero la conversación es principalmente con BPA de un millón de rublos y por encima ... Es decir, de tales sumas, cuando ya se puede retirar dinero y vivir de él. Como, lo que Soros tiene en diferentes años en promedio 37% un año antes y eso es más de lo normal...

Él y su equipo, por cierto, están aceptando fondos de gestión... de 1 millón de rublos, entonces se interesará por ti. Ver. "La caza de Gerchik" en finam.fm. Todas las piezas.

De hecho, en una de sus últimas "cacerías" dijo que aunque un "novato" le saque al mercado más que los intereses del banco al año, puede estar orgulloso de sí mismo por haber "vencido" al mercado y a todo lo demás... PERO, se trata de derosits más/menos serios, de los cuales el 10,20,30% también es una cantidad seria ...

Si el DEP es mucho más pequeño, utiliza el término - ¡"Desarrollo del Depósito"!

es decir, a partir del 1000% anual...

Estoy de acuerdo con él.

 
MQL414:

Si hay que creer al probador de MT4, dos condiciones son el dinero y el tiempo. 20.000 rublos. 200.000 rublos y 2 millones de rublos.


Duele... :-) imágenes familiares. Publica el código expa en esta rama del foro. Lo mirarán, lo probarán y le propondrán opciones después de optimizarlo...

 

Ayúdame a encontrar un error lógico en el código. Cuando se adjunta a un gráfico, el indicador no dibuja una línea, escribe un error "4002 - Array index - out of range".

//+------------------------------------------------------------------+
//|                                                  +OtherChart.mq4 |
//|                                                       silhouette |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "silhouette"
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Black
//+------------------------------------------------------------------+
extern string Smb="GBPUSD";
extern bool Candles=false;
extern bool Line=true;
//+------------------------------------------------------------------+
double Buffer_ind[];
double Buffer_OHLC[4][];
string Symb;
int init()
  {
   Symb=Symbol();
   
   SetIndexBuffer(0,Buffer_ind);
   SetIndexStyle(0,DRAW_LINE,EMPTY,1);
   
   return(0);
  }

int deinit()
  {

   return(0);
  }

int start()
  {
   int counted_bars=IndicatorCounted();
   int limit=Bars-counted_bars-1;
   if (limit>1) 
      limit=Bars-1;
   for(int i=limit; i>=0; i--)
    {
      Buffer_OHLC[1][i]=iOpen (Smb,Period(),i);
      Buffer_OHLC[2][i]=iHigh (Smb,Period(),i);
      Buffer_OHLC[3][i]=iLow  (Smb,Period(),i);
      Buffer_OHLC[4][i]=iClose(Smb,Period(),i);
      
      if(Line==true)
       {
        double Cls=Buffer_OHLC[4][i];
        Buffer_ind[i]=Cls; 
       }
    }
   Alert("Error: ", GetLastError());
   return(0);
  }
 
silhouette:

Ayúdame a encontrar un error lógico en el código. Cuando se adjunta a un gráfico, el indicador no dibuja una línea, escribe un error "4002 - Array index - out of range".


1. La variable Velas no se utiliza en ninguna parte.

2. La línea

double Cls=Buffer_OHLC[4][i];

no está escrito correctamente. Se encuentra en el bucle - en cada iteración del bucle, se crea una nueva variable Cls. Y no es necesario allí. Basta con escribir

Buffer_ind[i]=Buffer_OHLC[4][i];
 

Y prueba la línea

double Buffer_OHLC[4][];

sustitúyalo por

double Buffer_OHLC[][];
 
Aunque, es mejor establecer el tamaño del array explícitamente - o cambiar el tamaño del array en el código ya al inicio del indicador.
 
Ah, y aquí hay otra cosa. Al declarar la dimensión de 4 celdas en una de las dimensiones del array, no se puede llamar a Buffer_OHLC[4][] - la cuestión es que la numeración empieza por cero, no por uno. Así que lo máximo que se puede llamar es Buffer_OHLC[3][];