[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 362
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Aquí, sólo en código de Pr0t0tip (bueno, y apodo - se cansó de volver a escribir : )) ) Estas variables extern int sl=100; (etc.) son mapeadas. Por lo tanto, es necesario declarar una variable, entonces aparecerá en la configuración del búho, entonces su valor puede ser cambiado y optimizado.
Lo sé. Pero las variables externas no funcionan dentro de una función de usuario. declaran sus propias variables. ese es el problema.
Y no puedo deshacerme de la función. hay una modificación de orden....
Y por encima de eso sólo está el INICIO y NADA más
Ahhhhhhhh - aquí vamos... Lo puse en el lugar equivocado - debería haber puesto una variable detrás de un paréntesis:
Y había más en la parte inferior y otro paréntesis rizado. No has seguido los márgenes y una única estructura (estilo) de tu texto. Cuando se escribe todo correctamente, todos los errores (incoherencias) son visibles. Tenga cuidado al escribir el código. - No debería jurar.
Eso es raro. Estoy recibiendo este error de su código
'bool' - se esperaba un punto y coma C:\NDocumentos y Ajustes\NUser\NMis Documentos\NFxClub\NTeleTRADE\Nexperts\dot.mq4 (33, 4)
En realidad en bool have = true;
Ahhhhhh - ahí, lo encontré... Lugar equivocado - debería haber puesto la variable detrás del soporte:
Y había un extra en la parte inferior de otro y otro soporte cuadrado. Estás escribiendo sin respetar los márgenes. Cuando se pone todo correctamente, todos los errores (incoherencias) son inmediatamente visibles. Ten cuidado con la forma en que escribes tu código. - No debería ser una regañina.
Lo sé. Pero las variables externas no funcionan dentro de una función de usuario. declaran sus propias variables. ese es el problema.
Y no puedo deshacerme de la función. modifica la orden....
¿Por qué no funciona? - Si llevas cualquier variable global a una función personalizada, funcionará igual que la declarada dentro. Los datos de la variable interna sólo son visibles para esta función - además su acción es limitada. Y los valores de la variable global(externa) son visibles para todo el programa. Esta es la diferencia. Pero en el caso de una variable externa -de nuevo, externa- , la variable también aparecerá en la configuración. - Esto es un libro de texto. Vuelve a leerlo, ayuda. : )) Por supuesto, al declarar una variable externa, se debe referenciar dentro de la función a esta variable global. Y asegúrese de que los nombres no son idénticos. De lo contrario, declarará tanto el externo como el interno con el mismo nombre. - Aunque, se puede hacer así, pero parece que la función tomará el valor de la variable interna - no recuerdo exactamente. Aquí es donde hay que repasar un libro de texto. Hazlo tú mismo, si quieres experimentar. Suelo poner nombres diferentes para evitar confusiones y ya está.
Muchas gracias... pensé que si el interior no es visible en el exterior, entonces el exterior tampoco es visible en el interior...
Hola. He escrito un simple EA (tratando de aprenderlo yo mismo). El robot sólo abre operaciones para vender, pero no quiere comprar. Entiendo que no escribí bien las condiciones de compra o no las dividí correctamente. Estoy pidiendo ayuda. Aquí está:
extern int tp=100;
extern int sl=100;
extern int H=14;
extern int M=00;
doble ma1, ma2;
int inicio()
{
ma1=iMA (NULL,0,18,0,MODE_SMA,PRICE_CLOSE,0);
ma2=iMA (NULL,0,36,0,MODE_SMA,PRICE_CLOSE,0);
if (OrdersTotal ()==0 && iStochastic (NULL,0,50,30,3,0,1,MODE_MAIN,4)<iStochastic (NULL,0,50,30,3,0,1,MODE_SIGNAL,4) && ma1<ma2)
OrderSend ("EURUSD", OP_SELL,0.1,Bid,0,Ask+sl*Point,Ask-tp*Point,",123,Red);
if (OrdersTotal ()==0 && iStochastic (NULL,0,50,30,3,0,1,MODE_MAIN,4)>iStochastic (NULL,0,50,30,3,0,1,MODE_SIGNAL,4) && ma1>ma2)
OrderSend ("EURUSD", OP_BUY,0.1,Ask,0,Bid+sl*Point,Bid-tp*Point,",123,Red);
}
retorno (0);
Hm, ¿alguien puede ayudarme?
Vamos a echar un vistazo, no tengo mucha experiencia. Pero lo intentaremos... : ))
Mientras tanto, deberías aprender a usar el botón SRC - te permite insertar el código de forma correcta, bonita y clara. Para que los que te ayuden (ahora y en el futuro), sea más fácil leerlo. Puedes romperte los ojos si lo haces. : ))