Preguntas de los principiantes MQL4 MT4 MetaTrader 4 - página 248

 
makssub #:

Muchas gracias por sus respuestas. He puesto en práctica algunas de tus sugerencias.
He escrito una función que encuentra la garrapata correcta.
He escrito una función que calcula la ganancia de todas las órdenes cerradas después del tick de orden requerido de la función seleccionada. Ahora sólo tengo que corregirlo según tus recomendaciones y añadir un control por tiempo, etc.

Lo único que me confunde ahora es que no lo calcula correctamente. Si el TP sale 0,02 como resultado de la prueba, calcula y escribe 0,1300 en Comment. Por favor, indíqueme qué es lo que le pasa.

El tick y el ticket son cosas diferentes, un tick es un nuevo precio de entrada de las operaciones... Es mejor no confundirse de inmediato.

El TP y el SL se cierran en los niveles de precio y el precio más o menos. El precio es discreto y también lo es el precio de los niveles de parada. Si no supera los niveles, la orden vive, si lo hace, se cierra. En el probador se modelan 4 ticks, hay menos de ellos que en la situación real y por lo tanto la brecha entre los precios de los ticks es más amplia.

Los errores y el curso de las operaciones es mejor escribirlos o bien en el diario, pero hay mucha información innecesaria allí, debe encontrar las líneas necesarias, o en el archivo. No habrá cosas innecesarias en el archivo.

 
Valeriy Yastremskiy #:

Tick y ticket son cosas diferentes, un tick es un nuevo precio de acuerdo... Es mejor no confundirse de inmediato.

El TP y el SL se cierran en los niveles de precio y el precio más o menos. El precio es discreto y también lo es el precio de los niveles de parada. Si no supera los niveles, la orden vive, si lo hace, se cierra. En el probador se modelan 4 ticks, hay menos de ellos que en la situación real y por lo tanto la brecha entre los precios de los ticks es más amplia.

Los errores y el curso de las operaciones es mejor escribirlos o bien en el diario, pero allí hay mucha información innecesaria, hay que encontrar las líneas necesarias, o bien en el archivo. No habrá cosas innecesarias en el archivo.

Me gustaría mostrarlo en el registro hoy. En todo caso, volveré a hacer preguntas.

 
Buenas tardes.

¿Cuál es la diferencia entre una función y un operador?

¿Por qué "if()" es un operador, y"Alert()" es una función, si ambos tienen paréntesis después de sus nombres? Estoy estudiando el tutorial de mql4, pero no entiendo los signos y las propiedades
 
Ivan Butko #:

¿Cuál es la diferencia entre una función y un operador?

Nunca me he hecho esta pregunta, pero sé que sólo hay una docena de operadores en todos los lenguajes de programaciónhttps://www.mql5.com/ru/docs/basis/operators

y el resto son bibliotecas incorporadas o funciones definidas por el usuario cuya sintaxis se parece a ()

S : en teoría todas las librerías se escriben desde operadores..... al menos así era en C. MQL es una envoltura en algún compilador, ahora es como LLVM y algunas bibliotecas ya hechas, que dan las funciones incrustadas .... pero es sólo una idea, en principio no importa, puede hacer frente a las tareas

 
Ivan Butko "Alert()" una función, si ambos tienen paréntesis después del nombre? Estoy estudiando el tutorial de mql4, pero no entiendo los signos y las propiedades

"if" se traduce directamente en el ensamblador como un comando, mientras que "Alert" es una función que envía notificaciones.

 
Taras Slobodyanik #:

"if" se traduce directamente en el ensamblador como un comando, mientras que "Alert" es una función que envía notificaciones.

hmm... ¿Y switch o new también se traducen en un comando de ensamblador?

;)


la cartilla de programación es el mejor lugar para buscar, allí en el prefacio y en los primeros capítulos suelen escribir algo sobre este tema, tendrás que buscar una cartilla para escolares, seguro que estará allí


UPD: y si la memoria no me falla, si será reemplazado por el ensamblador XOR / CMP y luego JNE / JNZ ... es decir, para la comparación y las transiciones de banderas, no es exactamente el mismo comando de ensamblador, aunque no es el punto

 
Ivan Butko "Alert()" una función si ambos tienen paréntesis después de sus nombres? Estoy estudiando el tutorial de mql4, pero no entiendo los signos y las propiedades

diferencias sólo en la semántica de la lengua concreta. En esta caja de arena, es común llamar a un operador if. Mientras hagas títeres aquí, que así sea :-)

En realidad es lo mismo. Conozco lenguajes en los que no hay "operadores", sólo funciones por ahí... y viceversa (no se usan en la práctica, pero los hay)

 
Igor Makanu #:

hmm... ¿también se traducen switch o new en un comando de ensamblador?

;)


en general, deberías consultar una cartilla de programación, en el prefacio y en los primeros capítulos suelen escribir algo sobre este tema, tendrás que buscar cualquier cartilla para escolares, allí será exacto


UPD: y si la memoria no me falla, si será reemplazado por el ensamblador XOR / CMP y luego JNE / JNZ ... es decir, para la comparación y para los interruptores de bandera, no es exactamente el mismo comando de ensamblador, aunque no es el punto.

Si la memoria no me falla de BASIC los operadores son simples una acción, y las funciones son más complejas, varias acciones.

Esta es históricamente una buena explicación)

 
Igor Makanu #:

UPD: y si la memoria no me falla, si será reemplazado por el ensamblador XOR / CMP y luego JNE / JNZ ... es decir, para la comparación y para los pases de bandera, no es exactamente el mismo comando de ensamblador, aunque no es el punto

Esa es la cuestión, puedes traducir los operadores en ensamblador sin usar funciones, con simples comandos de la CPU.

Y cualquier cosa más complicada, cualquier cosa que requiera llamar a procedimientos complejos, son funciones.

Y las que son aún más complejas son las clases-estructuras.

 

Si no hay más remedio, hay que leer la Wiki ))))

Operador (programación)

y hay un enlace a un artículo relacionado

Operador (programación)

Razón de la queja: