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

 
miha-28:

Hola señores. Pregunta, si hay una función o algo para determinar cómo se cerraron las posiciones anteriores con más o menos???? Si el tema se ha planteado deja el enlace. Gracias de antemano....


https://www.mql5.com/ru/forum/107476/page21#79649

https://www.mql5.com/ru/forum/107476/page21#79908

 
Hay una matriz PeakUP[]. Escribimos en él los valores de los extremos en el bucle. Si en la salida después del bucle, el tamaño del array ==1 (es decir, si sólo se encuentra un valor), hacemos un bucle adicional para buscar más valores y añadir los valores adicionales encontrados al mismo array. Hago lo siguiente:
BubleUP=TempIND[i-2];               // Возьмём значение "бугорка" - Это найденное дополнительное значение, которое нужно вписать в массив
                              
asize=ArraySize(PeakUP);           // Размер массива значений пичков... (именно он содержит только одно значение, а нужно минимум два)
ArrayResize(PeakUP, asize+1);       // ... увеличим его на 1
PeakUP[0]=BubleUP;                  // ... и впишем в него значение "бугорка"

En la salida después de todas estas manipulaciones en la impresión vemos:

PeakUP Size = 3 - significa que se han encontrado dos valores adicionales y el tamaño del array de picos se ha incrementado a 3 - todo es correcto aquí, siguiente:
PeakUP[0] = 49,9119 - este es el valor encontrado al buscar valores adicionales. aquí debería estar; siguiente:
PeakUP[1] = 0 - este debería ser el valor del primer extremo encontrado (unos 82 peniques)
PeakUP[2] = 0 - este debería ser el valor de un solo extremo encontrado (unos 173 peniques)

Pregunta - ¿dónde perdí dos valores? Y en general, ¿estoy tratando de colocarlos correctamente? El código que llena inicialmente la matriz PeakUP con valores de extremos funciona correctamente,
la segunda parte - adición repetida de valores adicionales a la matriz - no funciona.

¿Puede decirme qué ocurre?

 
artmedia70:


Pregunta: ¿dónde he perdido dos valores? Y en general, ¿estoy tratando de colocarlos correctamente? El código que rellena inicialmente el array PeakUP con valores extremos funciona correctamente,
la segunda parte -la adición repetida de valores adicionales a la matriz- no funciona.

¿Podría decirme qué pasa?



Ya está, no hace falta, gracias, lo tengo solucionado...
 
cyclik33:

Por favor, dígame cómo hacerlo. He intentado copiarlo como un informe, pero da en htm y no muestra el número de operaciones perdedoras seguidas todas iguales.

No necesito copiar nada. En deinit() se inserta el código necesario que analiza los resultados y los guarda en el archivo. A veces utilizo este método cuando necesito obtener mi propio criterio de optimización.
 
No puedo entenderlo. Sólo necesito visualizar los cálculos colocando puntos en el gráfico del indicador AD en los lugares donde se encuentran los extremos.
La función
bool ObjectCreate( string name, int type, int window, datetime time1, double price1, datetime time2=0, double price2=0, datetime time3=0, double price3=0)
Estoy perplejo... :(

Está escrito en blanco y negro que OBJ_ARROW utiliza sólo una coordenada. ¿QUÉ? ¿De dónde saco el valor de la fecha del indicador? ¿O debo memorizarlo junto con el extremum encontrado? En resumen - una montaña de preguntas y malentendidos, y no encontré una respuesta en el sitio, excepto para trabajar con otros tipos de elementos gráficos...

Ayuda, señale con el dedo por favor... :)

 
artmedia70:

Está escrito en blanco y negro que OBJ_ARROW utiliza sólo una coordenada. ¿QUÉ? ¿De dónde saco el valor de la fecha del indicador? ¿O debo memorizarlo junto con el extremum encontrado? En resumen - una montaña de preguntas y malentendidos, no encontré una respuesta en el sitio, excepto para trabajar con otros tipos de elementos gráficos...

Ayuda, señale el dedo por favor... :)

Cuando se encuentra un extremo, se sitúa en una barra determinada y se pega:

datetime time1=valor extremo, double price1=Time[número de barra].

 
Roger:

Cuando encuentras un extremo, está en una barra determinada, así que lo insertas:

datetime time1=valor extremo, double price1=Time[número de barra]

No, busco los extremos en el gráfico del indicador, en este caso A/D
 
artmedia70:

Está escrito en blanco y negro que OBJ_ARROW utiliza sólo una coordenada. ¿CUÁL?

Se trata de una inexactitud del Helpe. Por supuesto, no una coordenada, sino un punto (que tiene dos coordenadas).
 
Mathemat:
Esta es una inexactitud de Helpe. Por supuesto, no una coordenada, sino un punto (que tiene dos coordenadas).

Gracias, Alexey, la mitad se ha aclarado :) Ahora quiero saber cómo tomar y de dónde sacar estas coordenadas para dibujarlas en el gráfico del indicador. El gráfico de precios es claro y comprensible, pero el indicador es un desastre...
 

¿Un gráfico de un indicador? Es esencialmente lo mismo. De todos modos, los extremos sólo están en las barras, no en el medio.

El inductor es una ventana separada (si se dibuja por separado, debajo de la ventana de precios). Esta ventana tiene las mismas coordenadas: valor del indicador y hora.