Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 749
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Esta fórmula es bastante fácil de ajustar a las necesidades. Sólo hay que tener en cuenta el lote mínimo
Esto parece un poco diferente
Donde X - Saldo para abrir el lote mínimo,
Pero todavía tenemos que comprobar el lote mínimo.
¿Por qué necesitamos todas estas complejidades, X que deben calcularse por separado? Además, necesitaremos una comprobación adicional...
¿No sería más fácil comprobar directa y honestamente la validez y la aceptabilidad de todos los valores de la fórmula, y luego simplemente calcularla honestamente?
Por cierto, MathRound() redondea al entero más cercano, es decir, puede fácilmente sobreestimar de forma errónea, lo que puede causar consecuencias adicionales.
Pobrecito.
Si puedes explicarlo en una línea de código y con comentarios, como en mi código anterior, te lo agradeceré enormemente.
"Tengo dudas", y no puedo evitar la sensación de que se trata del mecanismo de caché del entorno del mercado.
Para que el terminal no tenga que "correr al servidor" para cada ocasión, como OrdersTotal(), OrderSymbol() etc., el entorno del mercado se copia en algún caché, y parece ser diferente para cada script, pero el script se ocupa sólo de este caché. La caché NO se actualiza automáticamente durante todo el tiempo de ejecución de la función principal del script, incluso después de la ejecución exitosa de funciones como OrderSend() cambiando el entorno del mercado en el servidor, por lo tanto, la orden que aparece en el script "no es visible", es decir, hace una ilusión de su ausencia. Simplemente no se puede detectar en el bucle for, por lo que no se llama a OrderModify(). Se trata de una hipótesis surgida a partir de vagas dudas y sentimientos incomprensibles.
La caché descrita puede actualizarse forzosamente mediante la llamada RefreshRates(), por ejemplo, inmediatamente después de llamar a OrderSend(). Comprueba si la hipótesis es correcta.
Si, entre otras cosas, RefreshRates() devuelve verdadero, esto es una confirmación indirecta adicional de la hipótesis.
Si me lo explicas en una línea de código y con comentarios, como en mi código anterior, te lo agradeceré enormemente.
"Tengo dudas", y no puedo evitar la sensación de que todo tiene que ver con el mecanismo de caché del entorno del mercado.
Para que el terminal no tenga que "correr al servidor" para cada ocasión, como OrdersTotal(), OrderSymbol() etc., el entorno del mercado se copia en algún caché, y parece ser diferente para cada script, pero el script se ocupa sólo de este caché. La caché NO se actualiza automáticamente durante todo el tiempo de ejecución de la función principal del script, incluso después de la ejecución exitosa de funciones como OrderSend() cambiando el entorno del mercado en el servidor, por lo tanto, la orden que aparece en el script "no es visible", es decir, hace una ilusión de su ausencia. Simplemente no se puede detectar en el bucle for, por lo que no se llama a OrderModify(). Esta es la hipótesis que surgió a partir de vagas dudas y sentimientos poco convincentes.
La caché descrita puede actualizarse forzosamente mediante la llamada RefreshRates(), por ejemplo, justo después de la llamada OrderSend(). Comprueba si la hipótesis es correcta.
Si, entre otras cosas, RefreshRates() devuelve verdadero, esto es una confirmación indirecta adicional de la hipótesis.
Hola. Por favor, si lo sé, estoy intentando calcular un StopLoss desde el mínimo y el máximo de la primera barra, después de colocar una orden pendiente, para comprar y vender respectivamente. Pero no tengo nada, sólo 130 de error y nada más. Gracias de antemano.
Comprueba si OrderOpenPrice() está demasiado cerca del SL, y si los stops están "a la derecha del precio". Puede leerlo aquí:
Los precios StopLoss y TakeProfit no pueden estar demasiado cerca del mercado. La distancia mínima del stop en pips puede obtenerse utilizando la función MarketInfo() con el parámetro MODE_STOPLEVEL. El error 130 (ERR_INVALID_STOPS) se generará en caso de paradas erróneas o no normalizadas.
En este caso, es decir, para una orden pendiente, el "mercado" es su "precio abierto pendiente".
Estás normalizando lo que no es.