¡Hola a todos!
Obviamente este no es todo el código, pero esta es la parte principal con la que me estoy tirando de los pelos. Por favor, compruebe el código con el "<<<<<<<<<<<<<". Estos son los puntos en los que estoy confundido.
Gracias RaptorUK - De la manera más amable posible, eso no me explica nada? ¿En términos sencillos?
¿Es este un foro en el que alguien puede ayudarme de verdad, aparte de repetir las definiciones de las funciones (que he leído cientos de veces en la sección de "ayuda"...)?
Después de todo, no creo que lo que estoy pidiendo (en comparación con algunos de los hilos de aquí) sea suficiente para justificar que alguien cobre por su tiempo...
Traducir a términos legos te ayudará... una vez, hoy, con este tema en particular.. y tomar un poco de tiempo para el explicador.
Si dices cuales de las definiciones no entiendes, tal vez la próxima vez puedas resolver tus propios problemas, y después de un tiempo, podrás ser uno de los que resuelvan los problemas de los demás.
Si intentas investigar el problema tú mismo, también aprenderás mucho más. Por ejemplo, prueba esto:
Alert(iHighest(Symbol(), 0, MODE_HIGH, iBarShift(Symbol(), 0, triggerBarTime, true), 0));
y verás qué valor está devolviendo la función... (como dice Raptor, no es un precio).. y probablemente entenderás más fácilmente la definición de la función.
Cosas como esta te ayudarán más que esperar que alguien en el foro tenga tiempo para probar tu código y hacer la misma resolución de problemas que deberías estar aprendiendo a hacer por ti mismo.
"Cosas como esta te ayudarán más que esperar que alguien en la junta tenga tiempo para probar tu código y hacer la misma resolución de problemas que deberías aprender a hacer por ti mismo".
Qué demonios... No esperaba eso de nadie.
Tu post ha arrojado más luz sobre la situación - Te lo agradezco.
Este foro es realmente divertido... No estaba planeando descargarme de nadie. Simplemente quería alguna aclaración sobre cómo identificar correctamente la barra que se cruza con las EMA's...
Jeez....
cuando leo la respuesta de raptor te está diciendo el problema exacto que has hecho.
los precios se almacenan como variables dobles por ejemplo 1.12345
las funciones iHighest devuelven un entero (int) por ejemplo 1 o 2 o -100 .... claramente no un precio.
No sé lo que estás tratando de lograr, pero la función iHighest probablemente no es la que quieres utilizar.
Lo habrías descubierto por ti mismo si en el metaeditor, haces clic en iHighest en tu código, y luego pulsas F1... verás que devuelve un entero (lo que también te dijo Raptor)
No sé el origen de tu confusión. Si no sabes la diferencia entre las variables int y double te faltan algunos conocimientos básicos vitales, es decir, estás intentando correr antes de saber andar, y quieres que otro te lleve :/
EDIT: ¿No esperabas que tuvieras que hacer tu propia resolución de problemas antes de preguntar a otra persona?
Las medias móviles múltiples no se cruzan al mismo tiempo.
¿Por qué estás publicando dos veces? Tu pregunta fue respondida anteriormente.
Encuentre la primera barra en la que todos estaban en el orden correcto.
int DIR = 0; for(int iBar = 0; iBar < Bar; iBar++){ double MA20 = ... iBar), MA5 = ... iBar); : if( MA20 > MA5 && MA5 > ...) DIR = -1; else if(MA20 < MA5 && MA5 < ...) DIR = +1; // All fanning up. else if (DIR != 0){ iBar--; break; } // Last one was cross. }
Entiendo la diferencia entre int y double...
después de que las declaraciones If sean verdaderas, estoy queriendo encontrar la barra que cruzó en el punto donde las MA's están espaciadas. Pensé que si usaba
"triggerBarTime = Time[1];" - después de las declaraciones "If" entonces triggerBarTime podría ser utilizado en conjunto con iBarShift para bloquear la primera barra del rango que me interesa?
Entonces, utilizando el iHighest, me permitiría convertir esta información en un int y utilizarlo en mi función de orden? (Buy_Price)?
Puede que entiendas la diferencia entre int y double pero no entiendes la diferencia entre un número de barra (int) y un precio (double).
iHighest le permitiría convertir su fecha en un número de barra (int.) Pero OrderSend sólo toma un precio (un doble) no tiene sentido abrir una orden a 9
¡Ah! ¡Tengo a la gente!
Muchas gracias :) ¡Realmente lo aprecio!
Gracias por ser paciente conmigo - no quise decir que esperara que alguien hiciera algo por mí; sólo quería que me aclararan la ayuda (pulsar F1 en todo no siempre es tan claro para mí).
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
¡Hola a todos!
Esperaba que me ayudaran con mi código, ya que estoy atascado en esta maldita parte.
Este es el proceso que estoy tratando de escribir en el código de abajo:
1) Si todos los MA's están "abanicados" y cruzados de manera que el precio está por encima de todos los promedios móviles y están indicando un potencial largo.
2) Luego quiero saber la barra exacta (usando el tiempo) en la que las medias móviles se "separan" en el cruce de las medias móviles.
3) Si 1 y 2 son ciertos, entonces espero a que cualquier barra vuelva a bajar (en el caso para una posición larga) y toque la EMA 21.
4) Desde la primera barra (donde las MA's se cruzaron y se abrieron en abanico) hasta la barra que ahora ha tocado la 21 EMA - quiero una orden pendiente O en la operación de mercado colocada POR ENCIMA de los máximos de este rango (1 y 3).
5) Si el precio en CUALQUIER momento CIERRA por debajo de la 60 EMA, ANTES de activar la orden - entonces la orden debe ser cancelada.
Obviamente este no es todo el código, pero es la parte principal con la que me estoy tirando de los pelos. Por favor, compruebe el código con el "<<<<<<<<<<<<<". Estos son los puntos en los que estoy confundido.
Me vendría muy bien que alguien me ayudara, se lo agradecería mucho.
Muchas gracias de antemano.