Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1813

 
Alexander Avksentyev #:

Precio - Nivel SL

y luego

se compara con la SL mínima permitida.

Suponiendo que se vea con claridad más adelante.

Si no está bien, entonces está mal.

¿Quieres que normalice lo que he calculado, pero la información obtenida por MarketI ya es legible? Será una comparación normal.

¿Sí?

No

doubleNormalizeDouble(
doublevalue,

(Bid - sl_lev)

// número a normalizar


intdígitos

Digits

// número de dígitos después del punto decimal
);

 
Kedrov #:

Hola a todos.

¡Por favor, ayuda!

El indicador common_sr muestra el máximo/mínimo de ayer sólo hoy, en el período actual. Es decir, estos niveles, los límites no se muestran en el día de ayer - sólo hoy. ¡Y esto es correcto!

Y el mismo indicador, que muestra los niveles máximos de la semana anterior, los dibuja también en la semana anterior. Aunque, lógicamente, debería sacar sólo la semana actual.

He intentado representar estas ideas en la captura de pantalla. Si tiene alguna pregunta, le daré las respuestas.

¿Podrá corregirlo de alguna manera?

¡Muchas gracias por la ayuda!

Archivos adjuntos:
common_sr.mq4  39 kb
 

Alexander Avksentyev #:

Suponemos que a partir de ahora se ve más claro.


double price=NormalizeDouble(Bid - sl_lev,Digits);
if(price < MarketInfo(Symbol(),MODE_STOPLEVEL) * Point) return;
 
Tretyakov Rostyslav #:

¡Rostislav!

Muchas gracias por su preocupación.

¡Y por el resultado!

Muchas gracias.

Buena suerte.

 
Tretyakov Rostyslav #:

¡Rostislav!

Y esta "corriente" puede insertarse permanentemente en el código mq4. Para no poner la TF requerida cada vez. No lo he conseguido.

 
Kedrov #:

¡Rostislav!

Y esta "corriente" puede insertarse permanentemente en el código mq4. Para no poner la TF requerida cada vez. No lo he conseguido.

Esta línea en el comienzo del código

input ENUM_TIMEFRAMES Precision=PERIOD_D1; // Precision   PERIOD_H1

Sustitúyalo por


input ENUM_TIMEFRAMES Precision=PERIOD_CURRENT; // Precision   PERIOD_H1
 
Tretyakov Rostyslav #:

Esta línea al principio del código

sustituirlo por...


¡Muchas gracias, Rostislav!

Todo ha funcionado.

Buena suerte.

 

Además, dime cómo MakarFH se convirtió en Rostislav.

¿Dónde hay alguna consonancia... algo en absoluto?

 
Maxim Kuznetsov #:

Además, dime cómo MakarFH se convirtió en Rostislav.

Donde hay incluso una consonancia ... algo-allí.

descompilar)

 

Hola a todos. ¿Puede aconsejarme, por favor?

Estoy tratando de calcular un cruce en un MACD estándar de una línea de señal y un histograma. La idea es la siguiente: en cada nueva barra tomamos las dos velas anteriores y obtenemos los valores del indicador en cada una de ellas. Si el valor del MACD en la segunda vela es mayor que el valor de la señal y el valor del MACD en la primera vela ya está por debajo de la señal y todos los valores están por encima de cero, significa que hay un cruce al alza y viceversa.

Pero, en el momento de obtener el valor se convierte en algo enorme. Y sólo una: la línea de señal de la segunda vela. Puede ser 8 hasta qué punto, 4,5, 7, etc. Cuando aparece la siguiente barra, el valor de la línea de señal de la segunda barra desde la nueva barra puede ser ya normal. Todos los demás resultan ser correctos. Y en la ventana de datos, el valor también es correcto. No puedo entender por qué. ¿Qué estoy haciendo mal?

PrevMACD = iMACD(_Symbol,_Period,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
PrevSignalMACD = iMACD(_Symbol,_Period,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);
CtrlMACD = iMACD(_Symbol,_Period,12,26,9,PRICE_CLOSE,MODE_MAIN,2);
CtrlSignalMACD = iMACD(_Symbol,_Period,12,26,9,PRICE_CLOSE,MODE_SIGNAL,2);

Сomment(CtrlMACD+" "+CtrlSignalMACD+" "+PrevMACD+" "+PrevSignalMACD);

Tengo la sensación de que se trata de un doble variable. Porque el valor en la ventana de datos es 0,000081, pero resulta 8,1....., lo mismo noté con otro valor - en la ventana de datos 0,000071, pero en la variable 7,1..... Pero todas están definidas como variables dobles.

Archivos adjuntos: