También te recomiendo que sustituyas Comentario por Imprimir - existe la posibilidad de que otro programa sobrescriba trivialmente el comentario en el gráfico.
Maksym Mudrakov: reinicié el EA en un gráfico diferente, está funcionando correctamente. Eso es raro. Pero gracias por la ayuda.
Especialmente tiene una entrada variable - una variable de este tipo no puede ser reasignada en el código - esto deja la opción de un segundo programa (EA o indicador) que secretamente se mete y saca su comentario.
Quien entienda la respuesta, que la explique, por favor. Sigo sin entender por qué OrderSend se considera normal
Por lo que tengo entendido, OrderSend sólo espera hasta que el pedido se pone en cola para ser procesado en el servidor, pero no hasta el resultado del procesamiento.
Комбинатор: Por lo que tengo entendido, OrderSend sólo espera hasta que el pedido se pone en cola para ser procesado en el servidor, pero no hasta el resultado del procesamiento.
Hay un script que reproduce el error de OrderSend en la aplicación. Recorre el Market Watch y abre BuyLimit en cada símbolo. Después de eso, inmediatamente intenta modificarlo (establece TP) y luego lo elimina. Si la modificación o la eliminación de la orden es imposible, el script se detiene con el mensaje correspondiente.
Todo se hace a través de OrderSend sincrónico. Y casi inmediatamente nos encontramos con una situación en la que, después de un OrderSend exitoso (estableciendo BuyLimit), no se puede hacer nada (modificar o eliminar) con la orden pendiente.
cuandose abre unaposición con éxito mediante una orden de mercado, se obtiene siempre un resultado cero.
De la SD
No se garantiza que se llene el billete de la oferta de resultados. El hecho de que se llene o no depende del modo de ejecución del instrumento y de la configuración del servidor concreto.
...
void OnTick(){
Comment(Somevalue);
}
El programa MQL5 imprime el comentario:"1487811600"
¿Por qué ocurre esto? ¿Cómo se puede obtener el valor correcto de la cadena?
Busca un error. O publique el código completo reproducible. Comprobar el código
//| Test.mql5 |
//| Copyright 2017, CompanyName |
//| http://www.companyname.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2017, Vladimir Karputov"
#property link "http://wmua.ru/slesar/"
#property version "1.00"
#property script_show_inputs
//--- input parameters
input string Somevalue="Maxim";
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
Comment(Somevalue);
}
//+------------------------------------------------------------------+
no reproduce el error.
También te recomiendo que sustituyas Comentario por Imprimir - existe la posibilidad de que otro programa sobrescriba trivialmente el comentario en el gráfico.
reinicié el EA en un gráfico diferente, está funcionando correctamente. Eso es raro. Pero gracias por la ayuda.
Quien entienda la respuesta, que la explique, por favor. Sigo sin entender por qué OrderSend se considera normal
Por lo que tengo entendido, OrderSend sólo espera hasta que el pedido se pone en cola para ser procesado en el servidor, pero no hasta el resultado del procesamiento.
Hay un script que reproduce el error de OrderSend en la aplicación. Recorre el Market Watch y abre BuyLimit en cada símbolo. Después de eso, inmediatamente intenta modificarlo (establece TP) y luego lo elimina. Si la modificación o la eliminación de la orden es imposible, el script se detiene con el mensaje correspondiente.
Todo se hace a través de OrderSend sincrónico. Y casi inmediatamente nos encontramos con una situación en la que, después de un OrderSend exitoso (estableciendo BuyLimit), no se puede hacer nada (modificar o eliminar) con la orden pendiente.
Resultado de explotación
2017.02.23 14:24:49.828 OrderSend-StartedBug (Si-3.17,M1) DeleteError GetLastError() = 4756 EnumToString((ENUM_ORDER_STATE)OrderGetInteger(ORDER_STATE)) = ORDER_STATE_STARTED
Estimados desarrolladores, ¿es este un error de OrderSend o no?
SZZ, sin embargo, OrderSend en TRADE_ACTION_DEAL no termina mientras la orden correspondiente tenga el estado STARTED.
Toda la diversión del script se puede experimentar lentamente en el servidor FXOpen-MT5.
cuandose abre unaposición con éxito mediante una orden de mercado, se obtiene siempre un resultado cero.
Error in OpenCL initialization. Error code=5101