[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 1126
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
El código está mal. En primer lugar, si la función start() es de tipo int, debería devolver un valor entero. Tiene una devolución devuelta sólo por condición. Y si la condición no se cumple, ¿qué debe devolver la función start() al terminal?
Además, es demasiado complicado de comprobar - mejor hacer lo siguiente: creamos un contador de órdenes, abiertas y cerradas hoy. Si el número de órdenes cerradas hoy es mayor que cero, entonces no se negocia. De lo contrario, se nos permite comerciar.
cambió int por void... no ayudó
Para ser honesto, no entiendo muy bien cómo hacer un contador para las órdenes y seguir siendo capaz de activar/desactivar la opción de comercio diario único....
....pensar-pensar-pensar lo intentaré así
if(CalculateCurrentOrders(Symbol())==0 && Orders==0)
{
CheckForOpen();
if(WaitForNewDay) {Ordenes++;}
volver;
}
Poner a cero el contador:
if(WaitForNewDay)CheckForNewDay();
void CheckForNewDay()
{
tm=iTime(Symbol(),PERIOD_D1,0);
if (bt!=tm) {bt=tm; Pedidos=0;}
}
De todos modos, volví a lo que estaba huyendo de ))))
cambió int por void... no ayudó
Sinceramente, no entiendo cómo hacer un contador de órdenes y a la vez poder activar/desactivar la opción de operar un solo día....
-------------
De todos modos, volviendo a lo que estaba huyendo de ))))
Por favor, ayúdame con el código. Dibujo y muevo manualmente una línea horizontal y cuando el precio la toca, se activa una señal.
El precio toca la línea - hay una señal. Lo entiendo. ¿Qué ocurre con el código?
Lo siento, he configurado la tarea de forma incorrecta)). Lo que necesitas es un código que haga esto.
Lo primero que hay que entender es que una línea es un objeto. El código de programación distingue los objetos por sus nombres. Tienes que escribir el nombre de la línea en el código, y luego cuando sueltes la línea en un gráfico, tienes que ir a sus propiedades y cambiar el nombre por el que escribiste en el código. Sólo entonces el código entenderá que necesita procesar las lecturas tomadas de este objeto.
A continuación, en el código hay que consultar el precio en el que se encuentra la línea. La solicitud se realiza mediante la función doble ObjectGet(string name, int prop_id). En lugar de nombre debe especificar el nombre de su línea, y en lugar de prop_id especificar OBJPROP_PRICE1. De este modo, puede obtener mediante programación el precio al que se fija esta línea. Luego, en el código, hay que comprobar si el precio toca esta línea. Por ejemplo: Si el precio en el tick anterior es inferior al nivel con la línea, y es más o igual a este nivel en el tick actual, entonces se ha producido el contacto.
Alexander, si no consigues hacer algo con el código, pueden ayudarte. Si necesita que el código se implemente para usted, diríjase a https://www.mql5.com/ru/job.
Lo he hecho pero la señal no funciona cuando Close[0]==n. ¿Cómo solucionarlo?
Bueno, a juzgar por el código, has hecho un indicador. Por lo tanto, para comprobar si esta parte del código funciona, tendrá que sentarse y esperar a que el siguiente tick toque la línea. Es mejor crear un script para probar esta parte del código, ya que le dará resultados instantáneos.
Lo primero que debes asegurarte es que el código realmente vea tu línea. ¿Cómo se hace eso? Hay que preguntar por su precio y mostrarlo como una alerta. Hacerlo.
Ahora que el script ha sido recompilado, abrimos cualquier gráfico y dibujamos una línea horizontal en él. A continuación, introducimos sus propiedades y, puesto que en el código hemos dado el nombre "1" a la línea, establecemos también este nombre en las propiedades de la línea:
Haga clic en Aceptar. Dejamos caer el script en el gráfico y nos aseguramos de que la alerta ha devuelto el precio correcto. Movemos la línea en el gráfico a otro lugar y de nuevo lanzamos el script al gráfico y nos aseguramos de que si cambiamos la posición de la línea manualmente, el código la sigue viendo y reconociendo.
Procedemos de la misma manera.
El indicador se comprueba a través del comprobador con la visualización encendida. He corregido un poco el código, porque para que se active la alerta los valores deben estar normalizados. Pero si se mueve la línea en la barra actual, digamos una hora, entonces la alerta se activará sólo 1 vez con el movimiento posterior de la línea en la alerta de la barra actual por alguna razón no funciona. Tengo que esperar a otro bar.