Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 646
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
No, acabo de comprobarlo. Es cierto, el temporizador se apaga cuando se desconecta Internet.
Ya está). Pensaba que era el único con fallos). ¿Cómo resolvería este problema?
Si los desarrolladores no pretendían que este comportamiento del temporizador fuera "infalible", entonces el fallo es inequívoco. Al fin y al cabo, el temporizador se pone en marcha en el inite, y a partir de ahí debería funcionar de forma autónoma. Tiene que hacer una solicitud a servicedesk.
EventSetTimer(1); stands. Y cuando hay conexión, todo funciona, curiosamente, no hay descarga en OnInit() . No sé por qué es así(...
MetaTrader 4 build 660. De hecho, si no hay conexión en el momento de iniciar el terminal, OnInit() no se produce.
Remedio: volver a colocar el experto o cambiar el marco de tiempo dos veces.
MetaTrader 4 build 660. De hecho, si no hay conexión en el momento de iniciar el terminal, OnInit() no se produce.
Esto se puede curar con una media medida: volver a colocar el Asesor Experto o cambiar el marco temporal dos veces.
problema con eso) tengo un EA diseñado para el funcionamiento autónomo (
Tiene que escribir una solicitud a servicedesk.
Hola. Amigos, por favor, ayuden a un novato. No consigo averiguar cómo cargar las cotizaciones en el terminal, preeditadas en un archivo .xls. He estado luchando con esto todo el día.
¿Puedo descargar las cotizaciones para el terminal?
Hola de nuevo. Lo pregunté yo mismo, lo respondí yo mismo: al editar el nombre, elegí cualquier nombre menos el original. Corregido a - RTSI1440.csv y cargado.
Gracias.
¡Buenos días!
El objetivo es escribir un algoritmo para promediar las operaciones.
Decidí implementarlo rellenando los valores del precio de las posiciones abiertas en un array. Como resultado, llena la matriz sin cambiar. Me he perdido algo en alguna parte.
Puesta a cero de la matriz antes del inicio:
Por cierto, si OrderSelect() devuelve un error en al menos una iteración del bucle, no se puede confiar en los resultados. En otras palabras, no debemos tratar de gestionar las órdenes restantes si algunas de ellas han fallado. Sería más razonable devolver el error inmediatamente. Por ejemplo, un código de nivel superior podría reaccionar a un error de la siguiente manera: intentar repetir un par de veces más con este tick o cancelar las acciones en este tick, posponerlas e intentar de nuevo con el siguiente tick.
Es más lógico unir Usred() y Zapis(), y la condición del filtro debería combinarse de la siguiente manera: "if (OrderSymbol() == Symbol() && OrderType() == type)". De todos modos, no hay necesidad de repetir OrderSelect() en Zapis().
Para calcular el precio medio de una posición para órdenes individuales, no tenemos que guardar todo en un array. Podemos calcularlo sobre la marcha.
S1 = pedido1_lote * pedido1_precio abierto + pedido2_lote * pedido2_precio abierto + ... orderN_lots * orderN_openprice.
S2 = pedido1_lotes + pedido2_lotes + ... + orderN_lots.
El precio de la posición que buscamos = S1 / S2.
Si creamos dos variables, para S1 y para S2, las ponemos a cero, y en el bucle cada vez añadimos un valor correspondiente a cada una de las variables, entonces después del bucle sólo tenemos que dividir S1 entre S2, habiendo comprobado primero que S2 no es 0 (en este caso - error, es decir, el resultado NO se calcula, no existe). Tal vez el valor resultante también debe ser normalizado por NormalizeDouble() - depende del algoritmo si la normalización es necesaria, y de las convenciones del programa, qué función llama o es llamada para normalizar.
En este caso ni siquiera necesitarás un array.
Si necesita cálculos distintos del precio total de la posición, puede "devolver" los valores S1 y S2 a la función llamada, pasando las propias variables por referencia, y devolver el signo de error de la función. Es decir, el prototipo de la función llamada podría tener el siguiente aspecto: "bool fun(double &S1, double &S2);". La función que llama inicia las variables, las pasa a fun() y, si fun() devuelve true, utiliza los valores de las variables pasadas (que a su vez pueden tener nombres diferentes) como S1 y S2.