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

 

y su principal error aquí

      ExtMapBuffer3[i]=iMAOnArray(ExtMapBuffer4,0,МА_ТЛ,0,Вид_МА_ТЛ,0); //рассчет значения для расчета Третьей Линии (ТЛ)

tienes que ir así.

      ExtMapBuffer3[i]=iMAOnArray(ExtMapBuffer4,0,МА_ТЛ,0,Вид_МА_ТЛ,i); //рассчет значения для расчета Третьей Линии (ТЛ)
 
midorum:

En primer lugar, intente vincular el cuarto búfer no visualizable ExtMapBuffer4 al búfer indicador

porque escribes

al principio describes 3 líneas/buffers

por cierto, entonces no será necesario declararlo como una serie temporal y comprobarlo

Gracias por la respuesta... Para acabar de poner los puntos sobre las íes, me gustaría saber más sobre esto:

1. Has escrito: "primero intenta asociar el cuarto buffer no mapeado ExtMapBuffer4 con el buffer indicador". He pensado que sólo se deben vincular las matrices que deben aparecer de una u otra forma en la pantalla de la Terminal del Cliente, y que se debe especificar el número total de todas las matrices que participan en el cálculo del indicador personalizado mediante la función IndicatorBuffers. ¿Así que debo estar equivocado?

2. Si no te importa, ¿por qué no declaras este array como una serie temporal? ¿Se autoorganiza de alguna manera como una serie temporal?

 
7777877:

Gracias por su respuesta... Para finalizar, me gustaría saber una cosa más:

1. Escribes: "primero, intenta conectar el cuarto buffer no mapeado ExtMapBuffer4 al buffer indicador". He pensado que sólo se deben vincular las matrices que deben aparecer de una u otra forma en la pantalla de la Terminal del Cliente, y que se debe especificar el número total de todas las matrices que participan en el cálculo del indicador personalizado mediante la función IndicatorBuffers. ¿Así que estaba equivocado?

2. Si no le resulta difícil, explique por qué no debemos declarar esta matriz como una serie temporal. ¿Se autoorganiza de alguna manera como una serie temporal?

exactamente así, se organiza automáticamente como una serie de tiempo

usted describe los topes indicadores visibles al principio

utilizandoIndicatorBuffers() puede ampliar el número de series temporales organizadas automáticamente a 8 y vincularlas a sus matrices

 
Duplicando pregunta de nuevo, borrando la anterior, ¡ayuda quien pueda!


Bien. Intentaré dar la esencia del problema, quizás alguien lo sugiera o ayude a implementarlo más fácilmente.

Estamos trabajando en el gráfico de 1 minuto. Tomemos la barra de minutos (high+low/2 - valor medio de la barra) en el gráfico del 29/10/12 a las 00:00 - será un punto de referencia.

Luego comprobamos la desviación de este precio hacia arriba en 10 pips (cada desviación correcta es +1).

Cuando alcanzamos la desviación de 10 puntos desde el punto de partida - el contador +1; y empezamos a comprobar otras desviaciones, pero desde el punto, donde alcanzamos la desviación de 10 puntos, y esperamos la siguiente subida de 10 puntos en el precio.

Por ejemplo, obtenemos:

Si (punto de inicio) + 10 pips <= precio (utilizamos todos los precios posteriores de las barras desde el punto de inicio.) Obtenemos un contador = contador +1; y comenzamos el punto de inicio ya desde este punto - (punto de inicio + 10 pips).

Si (punto de inicio + 10 pips) + 10 pips <= precio (se utilizan todos los precios posteriores de las barras desde el punto de referencia) obtenemos contador=Contador +1; y partimos de este punto - (punto de inicio + 10 pips) + 10 pips.

Si (punto de inicio + 10 pips + 10 pips) + 10 pips <= precio (utilizamos todos los precios posteriores de las barras desde el punto de referencia.) obtenemos contador=Contador +1; y partimos de este punto - (punto de inicio + 10 pips + 10 pips) + 10 pips.

y así sucesivamente...

Hasta llegar a un contador de 10 (contador == 10).

Y cada nueva barra formada de 1 minuto (alto+bajo/2 - valor medio de la barra) comprobamos esta condición y esperamos hasta que el contador llegue a 10 (contador == 10). Supongamos que han pasado dos días, cada nueva barra que se forma la comprobamos y cambiamos si las condiciones son correctas .....

Y cuando llegamos al contador =10 - emitimos el mensaje de que "Contador == 10". Movemos el punto de partida 2 días por delante del punto inicial definido por el usuario, es decir, del 29/10/12 a las 00:00 al 31/10/12 a las 00:00 y repetimos el ciclo.

Repite el ciclo y avanza así por el programa.

Es decir, debemos tomar las barras recién formadas y dibujar (alto+bajo/2 - valor medio de la barra). Y comprueba las condiciones y, si son correctas, cámbialas como se ha descrito anteriormente.

¡He intentado implementarlo a través de un array, es muy confuso y da valores erróneos! ¡Ayúdame a implementar este algoritmo!
Archivos adjuntos:
qawer.mq4  3 kb
 
merkulov.artem:

¡¡¡He intentado implementarlo a través de un array, se hace muy confuso y da valores erróneos!!! ¡Ayuda sobre cómo implementar este algoritmo!

Estaría muy bien que comentaras tu algoritmo en detalle (cada comando y los datos utilizados), porque es muy difícil entender qué se hace y para qué.

entonces, tal vez, recibas ayuda, o tal vez encuentres el problema tú mismo

 

Según la ayuda, la funciónSetIndexDrawBegin indica a partir de qué barra empezar a dibujar. Tomé un indicador de CA estándar para probarlo y cambié allí los parámetros

SetIndexDrawBegin(0,8);
   SetIndexDrawBegin(1,38);
   SetIndexDrawBegin(2,38);

a

   SetIndexDrawBegin(0,8);
   SetIndexDrawBegin(1,8);
   SetIndexDrawBegin(2,8);

No ha cambiado nada, empieza a dibujar a partir de ... no de 8 bar a 0 bar, pero a partir de qué bar no está claro.

Puedes ver que no son 8...


 
hoz:

Según la ayuda, la funciónSetIndexDrawBegin indica a partir de qué barra empezar a dibujar. Tomé un indicador de CA estándar para probarlo y cambié allí los parámetros

a

No ha cambiado nada, empieza a dibujar a partir de ... no de 8 bar a 0 bar, pero a partir de qué bar no está claro.

Puedes ver que no son 8...


El número de serie de la barra desde el principio de los datos (léase "desde el principio del gráfico" "desde el lado izquierdo"), a partir de la cual debe dibujarse la línea seleccionada del indicador. El dibujo del indicador se realiza de izquierda a derecha.
 
midorum:
Establezca el número de serie de la barra desde el inicio de los datos (léase "desde el inicio del gráfico" "desde el lado izquierdo del gráfico"), a partir de la cual debe comenzar a dibujarse la línea indicadora indicada. El indicador se dibuja de izquierda a derecha.

Y si necesito dibujar los últimos 30 compases, por ejemplo, ¿cómo debo hacerlo entonces?

 
hoz:

Y si quiero que se dibujen los últimos 30 compases, ¿cómo lo hago entonces?

prueba Bars-30
 
midorum:
pruebe el Bars-30
No, no lo es. Lógicamente, la sangría a la izquierda sería de 30 barras y se dibujaría en la barra 0.