[¡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 20

 
Prix:
Buenas tardes. Si alguien sabe dónde se puede descargar un indicador de ZIGZAG que marque el punto en el que aparece un nuevo rayo (por ejemplo, en un color diferente). Si es que hay uno...

Buscar DT_ZZ_Nen
 
Vinin:

Buscar DT_ZZ_Nen

Gracias, lo probaré ahora.
 
Ayúdame a tratar con arrays pasados a la función iMAOnArray.
Por alguna razón, esta función sólo funciona con un array de buffers (en el ejemplo de VMA)
y no funcionará con los "normales" (SMA, por ejemplo).

A continuación se presenta un esquema de cómo lo hago en mis programas. ¿Qué pasa?

double MA1[],MA2[],VMA[],SMA[];

int init()
{

   SetIndexBuffer(0,MA1);
   SetIndexBuffer(1,MA2);
   SetIndexBuffer(2,VMA);
   SetIndexEmptyValue(0,0.0);
   SetIndexEmptyValue(1,0.0);
   SetIndexEmptyValue(2,0.0);  
   ArrayResize(SMA,1);  
   ArrayInitialize(SMA,0);

 return(0);
}

int start() 
{  
 
SMA[i]=...........;
VMA[i]=...........;

MA1[i]=iMAOnArray(SMA,0,8,0,0,0); //----этот вариант НЕ работает
MA2[i]=iMAOnArray(VMA,0,8,0,0,0); //----этот вариант всегда работает  
   
  return(0);
}

 

Ya te he escrito sobre esto, pero has preferido ignorarlo:

Al declarar un array, que no es un buffer indicador, DEBE especificar su tamaño, preferiblemente mayor, para que el intérprete asigne espacio de memoria.

 
Vinin:

Buscar DT_ZZ_Nen

Si he entendido bien, el punto no muestra cuándo aparece el nuevo rayo, sino el máximo o el mínimo de la vela en la que apareció... Pero tampoco está mal... gracias...
 
Fox_RM:
Ayúdame a tratar con arrays pasados a la función iMAOnArray.
Por alguna razón, esta función sólo funciona con un array de buffers (en el ejemplo de VMA)
y no funcionará con los "normales" (SMA, por ejemplo).

A continuación se presenta un esquema de cómo lo hago en mis programas. ¿Qué pasa?

La secuencia de preparación de los arrays SMA[] y VMA[] no queda clara en este fragmento de código, suponiendo que hayas declarado el tamaño de un array "no-buffer".

Estas matrices deben ser llenadas con datos primero, y luego las matrices MA1[] y MA2[] deben ser creadas usando iMAOnArray().

 
FAQ:

Ya te escribí sobre esto, pero decidiste ignorarlo:

Al declarar un array, que no es un buffer indicador, DEBE especificar su tamaño, preferiblemente mayor, para que el intérprete asigne espacio de memoria.

Le he dado un tamaño de 1 a Bares. Tanto durante la declaración como durante el ArrayResize, nada cambió;(
 
double SMA[];

int init()
{
   ArrayResize(SMA,1);     //--- Размер различный задавал от 1 до Bars 
   ArrayInitialize(SMA,0);

 return(0);
}

int start() 
{  
 
SMA[i]=...........; // --- Заполнение массива.

MA1[i]=iMAOnArray(SMA,0,8,0,0,0); //----MA1 буферный.
   
  return(0);
}

Yo suelo hacerlo con uno sin búfer.

 
double MA1[],MA2[],VMA[],SMA[3000];<= вписать размер!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
FAQ:

Veo lo que quieres decir). Le he dado un tamaño de 1 a Bares. Tanto en AD como en ArrayResize. ¿Quizás el error está en otra cosa?