[¡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 583

 
rigonich:

Es fácil de leer y tiene ejemplos para todo, pero no todo lo que te gustaría ver. Cuando lo cogí, yo también era un tonto, pero todo estaba claro para mí.

lottamer:

entiendo que estoy "fuera de onda"...trato de entrar en ella...... pero 1) si estuviera en onda", no estaría haciendo preguntas aquí, y segundo, si pudieras explicaren OTROlenguaje(no con citas formales del libro de texto que tengo) , no estarías escribiendo sobre los cuentos de Anderson aquí :)))))))


void,int,bool que están en una línea antes de la función que se está inicializando, indican el tipo de variable, cuyo valor es devuelto por la función al programa para que siga trabajando con él. void indica que la función no devuelve ningún valor (si el resultado de la función es, por ejemplo, cerrar o abrir órdenes, o cambiar valores de variables globales que no deben ser devueltos porque son "mixtos").

En cuanto alOTROidioma, existe una versión en inglés del foro. Si no usas los nombres que te gustan, no te entenderán.

 
lottamer:


no lo vas a creer: ¡soy mejor programando que cualquier otra cosa! :))))))))))

así que... ¿puedo quedarme aquí? :))) y seguir mejorando mis habilidades ? :)))


Sería interesante saber cómo haces "todo lo demás".
 
lottamer:

Lo siento, no entiendo... ¿qué significahabilitar o no habilitar la "música"?? en el código cómo se ve?

Así if (UseSound) PlaySound ("alert.wav"); break; Explicación UseSound es una variable booleana externa. Si es verdadero, juega; si es falso, no juega.
 
Usual_Trader:


A simple vista, lo que veo en la función de cierre de órdenes, necesitas seleccionar la orden por el ticketOrderSelect(Ticket, SELECT_BY_TICKET), el número de lotes no lo indica la variable Lts, porque se recalcula cada vez, sino que usas OrderLots() Y otra cosa, sigues trabajando en la barra 0, respectivamente, los criterios en una barra pueden desaparecer, tus órdenes pueden no abrirse donde te gustaría. Sustituya la barra 0 por la 1 y la 1 por la 2 en los parámetros del indicador



Muchas gracias por la respuesta), pero el criterio no funciona como me gustaría (no todos los cruces de estocásticos muestran órdenes ( ) y me gustaría abrir órdenes en la barra 0, pero supongo que necesito una condición adicional: después de abrir una orden en la barra actual no tengo que hacer nada hasta que la barra se cierre, pero no tengo ni idea de cómo hacerlo (¿puede ser usando arrays de series temporales?) Por favor, aconsejen.
Archivos adjuntos:
qccltotmvrgqnuccd.mq4(13.66 KB)
 

¿Qué significa este dicho en lenguaje sencillo?

"Esta función devuelve el precio de apertura de la posición más cercana"

 
Equilibrium:
Usual_Trader:


A simple vista, lo que veo en la función de cierre de órdenes, necesitas seleccionar la orden por el ticketOrderSelect(Ticket, SELECT_BY_TICKET), el número de lotes no lo indica la variable Lts, porque se recalcula cada vez, sino que usas OrderLots() Y otra cosa, sigues trabajando en la barra 0, respectivamente, los criterios en una barra pueden desaparecer, tus órdenes pueden no abrirse donde te gustaría. Sustituya la barra 0 por la 1 y la 1 por la 2 en los parámetros del indicador



Muchas gracias por la respuesta), pero el criterio de nuevo no funciona como debería, en la captura de pantalla se puede ver (no todos los cruces estocásticos trabajo orders( ), y me gustaría seguir trabajando en 0 bar, pero para esto como yo entiendo que necesita una condición adicional: después de la apertura de una orden en la barra actual, no hacer nada hasta que la barra se cierra, pero la forma de implementar esto no sé (tal vez a través de series de tiempo arrays??) ¿Me puede decir por favor
Archivos adjuntos:
qccltotmvrgqnuccd.mq4(13.66 KB)

Declare una variable de tipo datetime, asígnele el valorTime[0], después de abrir una orden, entonces si no es igual aTime[0, puede abrir la siguiente orden, si es igual a -- Exit start. En cuanto al criterio, no he mirado el código, pero parece que si es un estocástico, debería dispararse al cruzar en niveles de sobrecompra/sobreventa (normalmente >80 y <20%). Para mayor claridad, establezca los niveles de 20 y 80 % en los ajustes estocásticos.
 
qwanya:

¿Qué significa este dicho en lenguaje sencillo?

"Esta función devuelve el precio de apertura de la posición más cercana"


Depende de qué función. O bien el último que se haya abierto, o bien el precio de apertura que más se acerque al precio actual. Sólo que no dice qué eje está más cerca, si el tiempo o el precio. Si esta función se utiliza en un software de gestión comercial que funciona con el ratón, es sin duda en el precio.
 
rigonich:


No es una función, sino una forma de comparar números no normalizados. No pueden compararse entre sí, pero el resultado de restar uno a otro puede compararse con el cero.

Y la prueba que tengo es esta:


y esta condición no ayuda...
 
rigonich:

Buscará el índice de barras con el precio máximo en las últimas 9 barras, suponiendo que ejecute el programa a las 10 horas. Hour() es la hora de inicio del programa (hora del servidor).

P.S. Más precisamente, no el índice, sino el precio máximo (High) de esta barra.

La esencia del trabajo del EA es simple: para un cierto tiempo (01.00 a 10.00) determinar el precio mínimo y máximo y poner las órdenes pendientes.
Archivos adjuntos:
wfweja10.mq4  10 kb
 
Ekburg:

y esta condición no ayuda...

Entonces no lo sé. Tienes que buscar en el código, no sólo en la función, sino en todo el programa, insertar la comprobación de errores, imprimir los valores de las variables y el último error y buscar un lugar específico de error en el código. Cuando depuraba mis propios programas, si eran bastante grandes (unas 1000 líneas), a veces me llevaba semanas, es decir, más tiempo que cuando los escribía.