Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1154

 
SEM:

Intentando normalizar el TakeProfit para la venta

SYMBOL_DIGITS también es una constante. NO devuelve"el número de decimales de una comilla con símbolo". Indica a SymbolInfoInteger() qué valor de la propiedad de carácter entero debe devolver.
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как...
 
Artyom Trishkin:
SYMBOL_DIGITS también es una constante. NO devuelve el valor del "número de decimales en una comilla de símbolo". Indica a SymbolInfoInteger() qué valor de la propiedad de carácter entero debe devolver.

Bien, entonces ¿cómo se normaliza el TP para la venta?

  Print(NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_POINT),(int)SymbolInfoInteger(Symbol(),SYMBOL_DIGITS)));

también devuelve un valor poco claro = (EURUSD,M15) 1e-05

 
SEM:

Bien, entonces ¿cómo normalizar el TP para la venta?

también devuelve unclear = (EURUSD,M15) 1e-05

1e-05 es uno a la quinta potencia, es decir, 0,00001. ¿Qué te enseñaron en el instituto?

 
SEM:

Bien, entonces ¿cómo normalizar el TP para la venta?

también devuelve un incomprensible = (EURUSD,M15) 1e-05

Lo has normalizado para el robot.

Es necesario utilizarDoubleToString para dar salida a las impresiones

 Print(DoubleToString(SymbolInfoDouble(Symbol(),SYMBOL_POINT),(int)SymbolInfoInteger(Symbol(),SYMBOL_DIGITS)));
 
Vitaly Muzichenko:

Para el robot que ha normalizado.

Es necesario utilizarDoubleToString para dar salida a las impresiones

Gracias por su ayuda. El resultado final:

double _SYMBOL_POINT_ = SymbolInfoDouble(Symbol(),SYMBOL_POINT);
int _SYMBOL_DIGITS_   = (int)SymbolInfoInteger(Symbol(),SYMBOL_DIGITS);


{
  double _PriceCurrent_TakeProfit =NormalizeDouble(m_position.PriceOpen()-(TakeProfit*_SYMBOL_POINT_),_SYMBOL_DIGITS_) ;
  double _PriceCurrent=NormalizeDouble(m_position.PriceCurrent()-(TakeProfit*_SYMBOL_POINT_),_SYMBOL_DIGITS_);
}
 
Franklins100:

Es una idea, pero las pruebas cruzadas no producirán resultados precisos, en mi opinión. Las pruebas, de nuevo en mi inexperta opinión, deberían hacerse en una versión final y completa. Y aquí la cuestión es: cómo y con qué parámetros informáticos es posible acelerar al máximo las pruebas, sin recurrir al uso de la energía de terceros. ¿GPU o CPU?

Las pruebas cruzadas son tan precisas como las directas. Si entiendes todas las variables, especifica un paso aceptable para las variables al dividirlas en grupos. A continuación, en función de la imagen 3D, puede seleccionar uno o varios grupos de valores para cada grupo de variables como resultado de las pruebas. Y, por último, se realiza una prueba completa con un rango estrecho y una alta discreción de los parámetros.

Yo ejecuto un Asesor Experto como este todos los sábados. Más de 300 variables. Durante el día, hago pruebas cruzadas. Luego, hago funcionar la principal durante la noche. El domingo analizo los resultados. Analizo lo que ha cambiado en comparación con el conjunto de la semana pasada. Y luego, dependiendo de la situación, a veces hago pruebas adicionales. Estoy ejecutando todo en dos ordenadores.

Al final, se necesitan unas 30 horas de máquina. Si lo ejecutara directamente creo que el ordenador se congelaría :) durante unas dos semanas. Tendrás que hacer lo que puedas para que funcione.

La velocidad de las pruebas afecta al núcleo del procesador (exactamente para MT5).

Me llevó mucho tiempo hacer las primeras pruebas. Ahora lo he estado ejecutando durante la última semana. Creo que cada EA tiene sus propias sutilezas. Simplemente he introducido coeficientes y los parámetros básicos se modifican muy poco. Resulta que, sobre todo, me ajusto a la volatilidad. Además, tengo un módulo de noticias serio con desglose individual por tipos de noticias, en lugar de las simples tres estrellas :) En general, creo que las "noticias" son el punto más débil de todos los EA. Además, existen los periodos de "cambio de contrato", "vencimiento de la opción". También vale la pena trabajar con ellos.

 
Franklins100:

Es una idea, pero las pruebas cruzadas no producirán resultados precisos, en mi opinión. Las pruebas, de nuevo en mi inexperta opinión, deberían hacerse en una versión final y completa. Y aquí la cuestión es: cómo y con qué parámetros informáticos es posible acelerar al máximo las pruebas, sin recurrir al uso de la energía de terceros. ¿GPU o CPU?

Hay un tema sobre las pruebas:Evaluación de los núcleos de la CPU para su optimización

Оцениваем ядра CPU для оптимизации
Оцениваем ядра CPU для оптимизации
  • 2019.08.09
  • www.mql5.com
Предлагаю собрать статистику по производительности разных процессоров с целью оценки их эффективности для работы тестера стратегий в режиме оптимиз...
 
Vladimir Karputov:

Hay un tema sobre las pruebas:Evaluación de los núcleos de la CPU para su optimización

BenditO:

La validación cruzada es tan precisa como las pruebas directas. Si entiendes todas las variables, especifica un paso aceptable para las variables al agruparlas. Según la vista 3D, puede seleccionar uno o más grupos de valores para cada grupo de variables en función de los resultados. Y, por último, se realiza una prueba completa con un rango estrecho y una alta discreción de los parámetros.

Yo ejecuto un Asesor Experto como este todos los sábados. Más de 300 variables. Durante el día, hago pruebas cruzadas. Luego, por la noche, hago funcionar la principal. El domingo analizo los resultados. Analizo lo que ha cambiado en comparación con el conjunto de la semana pasada. Y luego, dependiendo de la situación, a veces hago pruebas adicionales. Estoy ejecutando todo en dos ordenadores.

Al final, se necesitan unas 30 horas de máquina. Si lo ejecutara directamente creo que el ordenador se congelaría :) durante unas dos semanas. Tendrás que hacer lo que puedas para que funcione.

La velocidad de las pruebas afecta al núcleo del procesador (exactamente para MT5).

Me llevó mucho tiempo hacer las primeras pruebas. Ahora lo he estado ejecutando durante la última semana. Creo que cada EA tiene sus propias sutilezas. Simplemente he introducido coeficientes y los parámetros básicos se modifican muy poco. Resulta que, sobre todo, me ajusto a la volatilidad. Además, tengo un módulo de noticias serio con desglose individual por tipos de noticias, en lugar de las simples tres estrellas :) En general, creo que las "noticias" son el punto más débil de todos los EA. Además, también existen los periodos de "cambio de contrato", "vencimiento de la opción". Yo también los tengo para trabajar.

Muchas gracias.

 

¡Buenos días a todos!

Estoy tratando de aprender cosas elementales en MQL5, pero de repente me encontré con un mensaje de advertencia que aparece en la imagen adjunta al compilar el código copiado de MQL5 Reference.

Me pregunto si hay algunos errores en MQL5 Reference también. Por favor, ¿podríais decirme qué hay que arreglar en el código (la propiaReferencia MQL5 también sería útil) para evitar esa advertencia?

Sinceramente, Vladimir.




Документация по MQL5 - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Документация по MQL5 - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
  • www.mql5.com
MetaQuotes Language 5 (MQL5) - язык программирования технических индикаторов, торговых роботов и вспомогательных приложений для автоматизации торговли на финансовых рынках. MQL5 является современным языком высокого уровня и разработан MetaQuotes Software Corp. для собственной торгово-информационной платформы. Синтаксис языка максимально близок...
 
MrBrooklin:

¡Buenos días a todos!

Estoy tratando de aprender cosas elementales en MQL5, pero de repente me encontré con un mensaje de advertencia que aparece en la imagen adjunta al compilar el código copiado de MQL5 Reference.

Me pregunto si hay algunos errores en MQL5 Reference también. Por favor, ¿podríais decirme qué hay que arreglar en el código (la propia Referencia MQL5 también sería útil) para evitar esa advertencia?

Sinceramente, Vladimir.

Sí, hay algunas inexactitudes en la Ayuda.

Razón de la queja: