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

 
rigonich:

Compruebe si los sonidos están permitidos para la MT en el windup, y si hay archivos en la carpetaSound. Pero en el mercado bstrom el sn funcionará como despertador.


no, bueno aunque soy principiante, pero no cometo esos errores. :))

otros expertos están cantando como ruiseñores! en la misma terminal!

 
Desead:

Maldita sea, ese es mi problema. Me pregunto cómo puedo evitarlo si sólo tengo que borrar toda la cuadrícula cuando descargo el robot... No se me ocurre nada aquí :(

coloque la misma condición antes de llamar a deinit en la misma condición en la que llama a deinit.
 
lottamer:


No, soy un principiante, pero no cometo ese tipo de errores. :))

los otros expertos están cantando como ruiseñores! en la misma terminal!


Y si se trata de un script - es necesario tener habilitado el permiso de comercio para Asesores Expertos, y en la ventana, donde se pone, no debe haber otros scripts de trabajo o Asesores Expertos, además de que "zing" si hay operaciones abiertas en cualquier instrumento.
 
rigonich:

Coloque un deinit antes de llamar al deinit por la misma condición que llama a deinit.


Así que se llama a deinit cuando elimino un robot de un gráfico - no puedo seguir esta condición de ninguna otra manera..... probablemente sea más fácil escribir un script separado que elimine todos los robots pendientes restantes, no hay otra manera.

Por cierto, otra reflexión sobre el tema:

Creo que he resuelto el problema de la eliminación de los pedidos pendientes. Determino la cantidad de órdenes "necesarias" (a eliminar) en una función separada, llamo a esta función y luego while con una condición (Total>0), luego el ciclo de eliminación for(int i=Total-1;i<=0l; i--), nuevamente calculando la cantidad de "necesarias", contador de intentos de eliminación con salida dewhile cuando se alcanza el nivel dado. De esta manera se borra todo.

aquí puede producirse un bucle infinito en caso de que una de las órdenes desaparezca después del momento del recuento por cualquier motivo.

 
rigonich:

Y si se trata de un script, necesita tener habilitados los permisos de negociación del Asesor Experto.


esto es un EA.

todos los permisos están, por supuesto, habilitados (hay otros EAs - que funcionan - NO al mismo tiempo)

hay un problema en el código. algo está mal allí.....

 
Desead:

Gracias por la respuesta. No los necesito todos, solo bylimit y selllimit, y también los pongo solo, el mago también está presente en todas partes igual. Miré el código dado por usted, hay tantas cosas allí, me sentí a entenderlo, en general, si no puedo resolver el problema por mí mismo, voy a tener que desmontar sus scripts más a fondo, no hay otra manera, no se borra y eso es todo (

Estaba pensando en algo. He configurado la eliminación de todos los robots pendientes en un solo lugar: cuando descargue mi robot, se colocará en deinit. ¿Tal vez esta sección tiene algún tipo de limitación de tiempo? Cuando sólo se eliminan unos pocos pedidos, todo va bien, pero cuando descargo una cuadrícula entera, entonces qué demonios pasa - siempre quedan unos diez pedidos y no hay opción de limpiarla manualmente.

Mi script utiliza esta biblioteca. La función responsable de borrar los pedidos en ella:

/*int fClose_AllOrders (double& fd_Pribul,         // Возвращаемый профит закрытых ордеров
                        int fi_Type = -1,          // тип закрываемых ордеров: -1 - все; -2 - рыночные; 7 - отложенные или OrderType()
                        int fi_NBars_Life = 0,     // минимальная "жизнь" ордера в барах на fi_Period: 0 - параметр не учитывается
                        int fi_Period = 0,         // Период
                        int fi_OrderProfit = 0)*/  // Идентификатор профитности ордера: > 0 - профитный; < 0 - лоссовый
                                     // Функция закрытия "своих" ордеров по признаку

Se necesitan algunos conocimientos para arrancar la función de la biblioteca, pero el uso de toda la biblioteca es bastante aceptable para un novato.

 
rigonich:

Hurra, parece que he resuelto el problema de la eliminación de los pedidos. He calculado el número de órdenes "necesarias" (a eliminar) en una función separada, llamada esta función, luego while con una condición (Total>0), luego el ciclo de eliminación for(int i=Total-1 ;i<=0l; i--), de nuevo, la función de contar las "necesarias", contador de intentos de eliminación con la salida dewhile cuando se alcanza el nivel especificado. De esta manera, todo se borra.
Cuando se utilizan bucles, SIEMPRE hay que tener cuidado: poner el recuento de iteraciones y la condición de salida cuando el EA tiene prohibido operar.
 
TarasBY:
SIEMPRE hay que tener cuidado al usar bucles: poner un contador de iteración y una condición de salida al prohibir que el EA opere.


Gracias por el consejo. Me había olvidado de la condición de salida cuando no se permite el comercio.
 
Desead:

Joder, ese es mi problema, me pregunto cómo puedo obviarlo si sólo tengo que borrar toda la parrilla cuando descargo el robot... No se me ocurre nada que hacer con él :(

Se puede cargar un script en deinit() a través de la biblioteca para graficar:

 // 7.9. Функция загружает на указанный график скрипт по его имени.
 void ServiceLoadScript(int    hwndChart,    // Системный дескриптор окна графика, куда загружается скрипт.
                        string szNameScript, // Имя загружаемого скрипта.
                        int    bOK);         // Подтверждение запуска скрипта, при наличии диалогового окна свойств скрипта. Скрипт может не иметь окна свойств!
                                             // При использовании функции для загрузки скрипта из скрипта на текущем графике параметр не работает из-за
                                             // невозможности одновременной работы двух скриптов на одном графике.
                                             // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.

con la función de borrar todos los pedidos.

P.S. Con unos u otros costes y energía se puede resolver CUALQUIER deseo exótico de un comerciante, pero si se necesita este "exotismo" a veces ... :)))

 

eh... por qué no se podría escribir así la condición para comprobar las órdenes abiertas:

si OrdersTotal() > 0

todo es claro y comprensible... sería...

Llevo una hora intentando averiguar cómo escribir esta condición...