[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 632
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Por ejemplo, necesita calcular una media móvil simple con PeriodSMA. Para calcular el SMA, sume los valores de las últimas barras del PeriodSMA y divídalos por el PeriodSMA. Es obvio que para las barras con números Bars-1, Bars-2, ..., Bars-PeriodSMA+1 no funcionará, porque simplemente no tenemos la cantidad necesaria de barras para el cálculo (la barra más a la izquierda tiene el índice Bars-1). Por lo tanto, tenemos que empezar el cálculo del indicador no con la última barra del gráfico, sino con la barra con el índice Bars-PeriodSMA.
¿Por qué escriben este valor y no uno arbitrario? Y es que este desplazamiento del inicio del cálculo nos permite calcular la cantidad máxima de barras sin perjuicio de la corrección del cálculo.
Pero ten en cuenta que este es el caso más sencillo. A veces puede que no quede claro en el código cuántas barras pasadas necesita el programa para el cálculo y de dónde procede exactamente este desplazamiento. Bueno, probablemente deberías preguntarle al desarrollador que escribió el código. Pero en general, hay una manera universal - sólo mira el código, lo que en principio el índice máximo de la barra se puede obtener utilizando los datos del precio y los datos de los búferes de índice durante la operación del programa, por lo general ya en esta etapa se hace evidente...
Gracias por la aclaración.
Y sólo para aclarar, si añado mecánicamente 0, ¿funcionarán los TP y SL en este tipo de terminal?
Lo harán, por supuesto que lo harán.
Para eso están las variables externas, para establecer cualquier valor.
Pero es más fácil colocar en el módulo de inicialización lo que te han aconsejado.
O de esta forma:
Las variables se ajustarán automáticamente, y para otras necesidades utilice el multiplicador "decimal"
Спасибо за разъяснения!
И просто чтобы уточнить, если я механическим путем добавлю 0, то TP и SL будут работать в данном типе терминалов?
prorab:
Lo harán, por supuesto.Para eso están las variables externas, para establecer cualquier valor.
Pero es más fácil aún poner lo que te han aconsejado en el módulo de inicialización.
O de esta forma:
Las variables se ajustarán automáticamente, y para otras necesidades utilice el multiplicador "decimal"
Esta tarea necesita ser aclarada:
Buenas tardes...
¡¡SOS!! BUENA GENTE, ¡¡¡AYUDA!!! Soy un principiante en programación en general (soy autodidacta), y en MQL en particular. Escribí un indicador simple: RSI + Bandas de Bollinger en una persona. Pero aquí está el problema: si no especifico expresamente la cantidad de elementos del array Buf_std_dev (es decir, la línea de declaración del array tiene el siguiente aspecto: double Buf_std_dev[]), al mostrar este indicador en la ventana del terminal del cliente(CT) obtengo la siguiente imagen:
Explicación de la imagen:
a) en la parte superior se encuentra el RSI, que está disponible en el conjunto de indicadores suministrados con CT, y las Bandas de Bollinger han sido arrastradas a la ventana de este RSI mediante el arrastre de y drop);
b) en la parte inferior está el RSI, que está programado por mí;
El compilador no detecta ningún error ni advertencia.
Si, por el contrario, al declarar el array Buf_std_dev, especifico explícitamente el número de elementos que contiene (es decir, la línea de declaración del array tiene el siguiente aspecto: double Buf_std_dev[5502], donde 5502 es el número de barras, que se obtiene mediante la variable Bars), entonces todo vuelve a la normalidad (pues como se ve en la comparación de dos indicadores: todos los valores son iguales):
Me puedes decir qué hacer para guardar la imagen, como en la segunda imagen, pero explícitamente NO establecer el número de elementos en el array Buf_std_dev.
P.S. Gracias de antemano por la respuesta.
Código adjunto (sin algunas partes - ¡¡no cabe en 4 MB!!):
Mostrar todo el código
Por favor, indique si hay formas de volcar el código de más de 4Mb aquí (¿o volcarlo aquí en partes?) ?
Si su Buf_std_dev no es un buffer indicador (uno de los ocho), necesita especificar su tamaño, o cualquier tamaño (si tiene intención de cambiarlo (tamaño) más tarde), al declararlo.
Cierto, no es... Si se me permite, dos preguntas más a la vez:
1. Si le asigno un buffer (el array Buf_std_dev) , ¿significa que también se mostrará en la ventana del indicador?
Si no le asigno un buffer, entonces (si entiendo bien) se producirá la siguiente situación: supongamos que he especificado el tamaño de 100 barras. Entonces, cuando aparezcan nuevas barras (es decir, si por ejemplo Bars=101), realizaremos los cálculos sólo para las últimas 100 barras que hayamos especificado (es decir, la barra más antigua -101- se descartará). Entonces, al cargar el historial, el tamaño del array será siempre igual a 100 barras solamente (o algún otro valor, que especificaré al declarar)?