[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 381

 
moskitman:

Esto es de la ayuda, pero ¿es posible usar NULL como símbolo para "vigilar" sólo el instrumento en el que se está ejecutando el EA?

Así, por ejemplo:

Parece que NULL no funcionará.

Pero Symbol() funcionará =)

 

Buenas tardes. Tengo la siguiente pregunta. Ellibro MQL4que se encuentra en MQL4.community, en la sección "Programas MQL simples ", contiene un ejemplo de tradingexpert.mq4 con el siguiente contenido (ver archivo adjunto). En el bloque 1-2 se declaran las variables externas extern double StopLoss =200 y extern double TakeProfit =39. El bloque 8-9 llama a las funciones New_Stop(StopLoss) y New_Stop(TakeProfit) para calcular los parámetros SL y TP. Hay una descripción de la función en el bloque 11-12.

Pregunta: El parámetro formal de la función New_Stop tiene tipo int(int Parametr), mientras que los parámetros pasados en la llamada a la función New_Stop(StopLoss)(New_Stop(TakeProfit)) tienen tipo double... En el libro MQL4, que se encuentra en MQL4.community en la sección "Language Basics", subsección "Functions", "Function Properties" dice "El número, el tipo y el orden de los parámetros pasados en una llamada a la función deben coincidir con el número, el tipo y el orden de los parámetros formales pasados en la descripción de la función (la excepción es una llamada a la función que tenga parámetros por defecto - véase Llamada a la función y Descripción de la función y operador de retorno. ¿Cómo explicar esta contradicción: según esto último, al declarar las variables StopLoss y TakeProfit, debería haber declarado el tipo int, no double(el compilador no ha generado ningún error)?

Para no ensuciar el foro, gracias de antemano por la respuesta.

Archivos adjuntos:
 

Hola, puedes darme una pista... He buscado en medio internet, y la información varía

La esencia del Asesor Experto es abrir posiciones en diferentes instrumentos. "En la vida real, funciona y muestra los precios actuales, pero no puedo pasarlo por el historial... La función devuelve cero.

Quiero mostrar la cotización actual de dos divisas EURUSD y EURCHF, por ejemplo.

Estoy llamando a la cotización actual con esta función (estoy siguiendo el historial cuando el gráfico EURUSD está activo):

MarketInfo("EURUSD",MODE_BID) ---> obtener el precio actual

MarketInfo("EURCHF ",MODE_BID) ---> devuelve cero

He encontrado en este foro que MarketInfo no funciona en el historial, utiliza "iClose".

Pero cuando llamo a la cita utilizando el

iClose("EURUSD",PERIOD_M1,0) ---> Obtengo el precio actual

iClose("EURCHF",PERIOD_M1,0) ---> devuelve cero

¿Cómo puedo obtener las cotizaciones actuales de los diferentes instrumentos en el probador de estrategias? Gracias

 
faton:

El probador de MT4 no es multidivisa. En otras palabras, sólo se pueden probar los EA de una sola moneda.

 
moskitman:

El probador de MT4 no es multidivisa. En otras palabras, sólo se pueden probar los EA de una sola moneda.


gracias
 
faton:

gracias

Más concretamente, haz la prueba con una herramienta y podrás utilizar otras para el análisis.
 
sergeev:


gracias por su ayuda))
 
DhP:

O eso parece:

gracias por su comentario!!! muy útil!
 
7777877:

Buenas tardes. Tengo la siguiente pregunta. Ellibro MQL4que se encuentra en MQL4.community, en la sección "Programas MQL simples ", contiene un ejemplo de tradingexpert.mq4 con el siguiente contenido (ver archivo adjunto). En el bloque 1-2 se declaran las variables externas extern double StopLoss =200 y extern double TakeProfit =39. El bloque 8-9 llama a las funciones New_Stop(StopLoss) y New_Stop(TakeProfit) para calcular los parámetros SL y TP. Hay una descripción de la función en el bloque 11-12.

Pregunta: El parámetro formal de la función New_Stop tiene tipo int(int Parametr), mientras que los parámetros pasados en la llamada a la función New_Stop(StopLoss)(New_Stop(TakeProfit)) tienen tipo double... En el libro MQL4, que se encuentra en MQL4.community en el capítulo "Language Fundamentals" en la sección "Functions", subsección "Function Properties" dice "El número, el tipo y el orden de los parámetros pasados en una llamada a la función deben coincidir con el número, el tipo y el orden de los parámetros formales pasados en la descripción de la función (la excepción es una llamada a la función que tenga parámetros por defecto - véase Llamada a la función y Descripción de la función y operador de retorno. ¿Cómo explicar esta contradicción: según esto último, al declarar las variables StopLoss y TakeProfit, debería haber declarado el tipo int, no double(el compilador no ha generado ningún error)?

Gracias de antemano por la respuesta, para no ensuciar el foro.

Los parámetros externos (extern double StopLoss =200; extern double TakeProfit =39; ), en principio, deberían ser de tipo entero (más exactamente, según la idea del autor - es un valor en puntos). Al llamar a la función, se utiliza la conversión de tipo implícita. El tipo de punto flotante se convierte en tipo entero con pérdida de precisión. En este caso no importa: el tamaño de la parada y el beneficio como se pretende se establece en pips - es siempre entero.

En mi opinión, el código de ejemplo está mal escrito.

Usar el valor absoluto de las constantes es un estilo muy malo y equivocado, con nombres mnemónicos.

         if (OrderType()>1)                     // Попался отложенный
           {
 

La peor implementación de la enumeración de órdenes: es difícil pensar en una más "retrasada". Parece ser deliberadamente lento: cálculos extra, llamadas a funciones innecesarias - la operación más cara en términos de tiempo, y en cada iteración del bucle. Y esto a pesar de que el número de pedidos no cambia dentro del bucle.

   for(int i=1; i<=OrdersTotal(); i++)          // Цикл перебора ордер
     {
      if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
        {                                       // Анализ ордеров:
 
Lo siento, pero antes trabajaba en Rumuse y ahora estoy aprendiendo MT4. Sigo siendo un "Dummie" aquí . 11 .09 . No puedo empezar las citas. Por favor, dígame qué es lo que está mal. Estaré encantado de ayudarle.
Razón de la queja: