Todos estos parámetros deben aparecer después de la coma en iCustom() tras el nombre del indicador, y tras ellos dos parámetros más: número de búfer y número de barra, de los que se toman los datos. Es decir
Todos los valores listados pueden ser establecidos por variables externas del EA y los nombres de estas variables pueden ser escritos en iCustom() en lugar de los valores codificados.
Tenga en cuenta que cuando se envía a Journal utilizando Print(), un número normalizado puede contener un número mayor de decimales del que se espera. Por ejemplo,
double a=76.671; // нормализованное число с 3 знаками после запятойPrint("Print(76.671)=",a); // выведем его как естьPrint("DoubleToString(a,8)=",DoubleToString(a,8)); // выведем с заданной точностью
Tenga en cuenta que el número normalizado cuando se imprime en el libro de registro utilizando Print() puede contener más decimales de los que espera. Por ejemplo,
se mostrará en la terminal:
Por lo tanto, para la impresión, la salida de valores adicionales no es un problema.
Gracias, es que cuando intento abrir una posición con el lote 0.07 me da error (pensé que era la razón), así que intentaré averiguar más.
pusheax: Gracias, es que cuando intento abrir una posición con 0,07 de lote da error (creía que ese era el problema), debe ser otra cosa, lo investigaré más.
Lo primero que hay que hacer es mirar la descripción del número de error. Esto acortará la ruta de búsqueda.
Todos estos parámetros deben aparecer después de la coma en iCustom() tras el nombre del indicador, y tras ellos dos parámetros más: número de búfer y número de barra, de los que se toman los datos. Es decir
Todos los valores listados pueden ser establecidos por variables externas de EA y escribir los nombres de estas variables en iCustom() en lugar de los valores codificados.
Gracias por su respuesta. Pero el hecho es que lo hice al principio, pero al recibir valores erróneos, decidí eliminar los parámetros de iCustom, para que el Asesor Experto utilice los parámetros estándar del indicador. En ambos casos, sin embargo, EA obtiene valores erróneos. Por ejemplo, Alert da 30,32362 para la línea azul, pero cuando miro el gráfico del indicador tiene 22,3320 en el mismo lugar. Y lo mismo con otras líneas.
E_Ghazaryan: Gracias por la respuesta. Pero el caso es que al principio lo hice así, pero al obtener valores erróneos, decidí eliminar los parámetros de iCustom para que el EA utilizara los parámetros estándar del indicador. Sin embargo, en ambos casos, el Asesor Experto recibe valores erróneos. Por ejemplo, Alert da 30,32362 para la línea azul, pero cuando miro el gráfico del indicador tiene 22,3320 en el mismo lugar. Y lo mismo con las otras líneas.
Muéstrame el código donde tomas los datos del indicador.
Artyom Trishkin: Muéstrame el código donde tomas los datos del indicador.
El código era grande. Pero para averiguar cuál es el problema, el Asesor Experto no funciona según las reglas, corté esta parte en una separada y comencé a probarla.
Sí, claro =D )))) Ya se adjunta.)))
Todos estos parámetros deben aparecer después de la coma en iCustom() tras el nombre del indicador, y tras ellos dos parámetros más: número de búfer y número de barra, de los que se toman los datos. Es decir
iCustom(Symbol(), Period(), "_MTF_ADX3", 0, 500, 6, 6, 8, 14, 6, 6, 2, true, false, buffer_number, bar_number).
Todos los valores listados pueden ser establecidos por variables externas del EA y los nombres de estas variables pueden ser escritos en iCustom() en lugar de los valores codificados.
¿Puede decirme por qué?
doble d = 0,07;
d = NormalizarDoble(d,2);
en ambos casos d== 0,07000000000000001
¿cómo puedo dejar 2 decimales?
¿Puede decirme por qué?
doble d = 0,07;
d = NormalizarDoble(d,2);
en ambos casos d== 0,07000000000000001
¿cómo dejar 2 decimales?
Tenga en cuenta que cuando se envía a Journal utilizando Print(), un número normalizado puede contener un número mayor de decimales del que se espera. Por ejemplo,
se mostrará en la terminal:
Es decir, para la impresión la salida de los valores extra no es un problema.
Tenga en cuenta que el número normalizado cuando se imprime en el libro de registro utilizando Print() puede contener más decimales de los que espera. Por ejemplo,
se mostrará en la terminal:
Por lo tanto, para la impresión, la salida de valores adicionales no es un problema.
Gracias, es que cuando intento abrir una posición con 0,07 de lote da error (creía que ese era el problema), debe ser otra cosa, lo investigaré más.
buenas noches
He declarado un array dinámico
double all_order[][10];
He redefinido en OnInit
ArrayResize(all_order, 20);
Introduzco los datos en la función
void OR_spisok(double a0, double a1, double a2, double a3, double a4, double a5)
{
int a10=int(a0);
all_order[a10][0]=a0;
all_order[a10][1]=a1;
all_order[a10][2]=a2;
all_order[a10][3]=a3;
all_order[a10][4]=a4;
all_order[a10][5]=a5;
}
tres líneas funciona bien, en la 4 se bloquea
2015.10.09 20:13:47.908 3102 EURUSD,H1: array fuera de rango en '3102.mq4' (393,10)
393,10 es:
all_order[a10][0]=a0;
¿qué ocurre?
Se ha eliminado la línea#property strict
El script funciona, ¿puedo continuar sin esta línea?
buenas noches
declaró una matriz dinámica
Se ha eliminado la línea#property strict
El script funciona, ¿puedo continuar sin esta línea?
Todos estos parámetros deben aparecer después de la coma en iCustom() tras el nombre del indicador, y tras ellos dos parámetros más: número de búfer y número de barra, de los que se toman los datos. Es decir
iCustom(Symbol(), Period(), "_MTF_ADX3", 0, 500, 6, 6, 8, 14, 6, 6, 2, true, false, buffer_number, bar_number).
Todos los valores listados pueden ser establecidos por variables externas de EA y escribir los nombres de estas variables en iCustom() en lugar de los valores codificados.
Gracias por la respuesta. Pero el caso es que al principio lo hice así, pero al obtener valores erróneos, decidí eliminar los parámetros de iCustom para que el EA utilizara los parámetros estándar del indicador. Sin embargo, en ambos casos, el Asesor Experto recibe valores erróneos. Por ejemplo, Alert da 30,32362 para la línea azul, pero cuando miro el gráfico del indicador tiene 22,3320 en el mismo lugar. Y lo mismo con las otras líneas.
Muéstrame el código donde tomas los datos del indicador.
El código era grande. Pero para averiguar cuál es el problema, el Asesor Experto no funciona según las reglas, corté esta parte en una separada y comencé a probarla.
double Ind_Blue=iCustom(NULL, 0, "_MTF_ADX3",1,0);
double Ind_Red=iCustom(NULL, 0, "_MTF_ADX3",2,0);
Alert(" Ind_Blue= " , Ind_Blue , " Ind_Red= " , Ind_Red);
También adjunto el archivo del Asesor Experto. No quiero hacerte perder el tiempo, pero no encuentro el problema.
Y hay un indicador similar con el mismo problema (Adx mtf). Tengo un archivo mq4 para ello. Pero parece que no hay ningún problema en el código.