[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 1109

 
kolyango:
Dígame, qué significa al compilar el EA: Al principio del EA hay: ¿Es una referencia a un archivo en las bibliotecas? ¿Y el EA funcionará correctamente con esta referencia y 2 advertencias en la compilación?
Sólo un mensaje diciendo que estas dos funciones presentes en el código fuente serán eliminadas del código ejecutable, porque no se han detectado referencias a ellas (intentos de referencia).
 
Sergey_Rogozin:

Buenas noches a todos.

¿Cómo se calcula el Stop Loss? Fórmula de cálculo.

Número de monedas multiplicado por el precio y dividido por el tiempo
 
Sergey_Rogozin:

Buenas noches a todos.

¿Cómo se calcula el Stop Loss? Fórmula de cálculo.


Tal vez http://masterforex-v-forex.narod.ru/post_1263305503.html ayude

Aunque yo mismo no uso. Lo tengo todo más fácil.

 

abolk:

Sergey Rogozin:

Buenas noches a todos.

¿Cómo se calcula el Stop Loss? Fórmula de cálculo.

Número de monedas multiplicado por el precio y dividido por el tiempo

No, tengo una sugerencia mejor. Para empezar, ve a la escuela.
 
sergeev:

No, tengo una sugerencia mejor. Para empezar, ve a la escuela. No soy lo suficientemente inteligente.

Estoy de acuerdo. Sólo estaba jugando con los paréntesis.
 
Abzasc:

https://www.mql5.com/ru/forum/123941

y con el código, obtuve un consejo como este.

y lo utilizó para diferentes nombres.


VladislavVG:
Borrar (objetos) en orden inverso (del número más alto al más bajo), porque después de borrar la numeración se cambia .... Esto se ha discutido cientos de veces.

¡¡¡Muchas gracias por su pronta ayuda !!!

Sí, efectivamente se trataba de la secuencia de borrado de objetos, desgraciadamente no lo sabía antes - es mi primer indie escrito desde cero por mí mismo.

Este es el código que hace todo lo que necesito que haga

for(int j = ObjectsTotal() - 1; j >= 0; j--)       //Анализируем объекты ОТ ПОСЛЕДНЕГО К ПЕРВОМУ
   if(!StringFind(ObjectName(j), "Skalomer_"))     //Если StringFind() вернёт 0, то...
      ObjectDelete(ObjectName(j));		   //Тогда удаляем этот объект
 
ALEX_SPB_RU:

¡¡¡Muchas gracias por su pronta ayuda !!!

Sí, efectivamente se trataba de la secuencia de borrado de objetos, desgraciadamente no lo sabía antes, es mi primer indie escrito desde cero por mí mismo.

Este es el código que hace todo lo que necesito

En mi opinión, esto es mejor:

/// Удаление всех объектов с префиксом prefix
int deleteObjectsByPrefix(string prefix)
{
        int obj_total = ObjectsTotal();
        string name="";
        int err = GetLastError();
        int Delcount = 0;
        int Objcount = 0;
        for (int i = obj_total - 1; i >= 0; i--)
        {
                name = ObjectName(i);
                if (StringFind(name, prefix) != -1)
                {
                   Objcount++;
                        if(ObjectDelete(name))Delcount++;
                        else
                        {
                            err = GetLastError();
                            Print("Error(",err,") ",ErrorDescription(err)); 
                        }
                }                       
        }
        return(Delcount-Objcount);
}

Funciones similares han sido publicadas muchas veces - podrías simplemente usar la búsqueda ;)......

Pero en cualquier caso es mucho más útil averiguarlo por tu cuenta.

Buena suerte.

 
VladislavVG:

En mi opinión, esto es mejor:

Funciones similares han sido publicadas muchas veces - podrías usar la búsqueda ;)......

Pero en cualquier caso, es mucho más útil averiguarlo por tu cuenta.

Buena suerte.

Vaya, has lanzado una función universal a la vez - lo tendré en cuenta pero permíteme hacer dos observaciones:

1. StringFind(nombre, prefijo) != -1

La verdad es que no me gusta porque si el nombre del objeto resulta ser ya_Prefijo_78, también se borrará, pero lógicamente creo que no debería, porque en ningún lugar del texto se encontrará esa combinación de caracteres que ponemos como etiqueta al principio. ¡IMHO!

2. Ya que esta es una rama para dummies, vale la pena mencionar, que tu función no fallará al compilar, debes especificar antes (ayer, cuando buscaba un error, me golpeé la cabeza al encontrar lo que debería haber ocluido 8-)) )

#include <stdlib.mqh>

Gracias.

 
ALEX_SPB_RU:

Vaya, acabas de lanzar una función universal a la vez - lo tendré en cuenta, pero permíteme hacer dos observaciones:

1. StringFind(nombre, prefijo) != -1

La verdad es que no me gusta porque si el nombre del objeto fuera ya_Prefijo_78, también se borraría. Y lógicamente no debería tener esa combinación de caracteres que ponemos como etiqueta al principio. IMHO

2. Ya que esta es una rama para dummies, vale la pena mencionar, que tu función no fallará al compilar, debes especificar antes (ayer, cuando buscaba un error, me golpeé la cabeza al encontrar lo que debería haber ocluido 8-)) )

Gracias.

Puedes corregir como creas conveniente, es sólo una demostración del enfoque...

Si quiere que la cadena a eliminar sea sólo un prefijo, puede especificar que la búsqueda sea a partir de la posición nula de la cadena, como ha hecho originalmente.

Buena suerte.

 
VladislavVG:

Usted puede corregir como lo considere oportuno - esto es sólo una demostración del enfoque...

Si quiere que la cadena a eliminar sea sólo un prefijo, puede especificar que se busque a partir de la posición nula en la cadena - como ha hecho originalmente.

Buena suerte.

Todavía no lo entiendo.

Aunque especifique explícitamente que la búsqueda debe comenzar en la posición cero, el objeto llamado ya_Prefix_78 se borrará porquela función devuelve el número 4

¡En concreto, para borrar por prefijo, hay que especificar ==0 o poner !

Sin ánimo de ofender, sólo estoy aprendiendo, así que quiero desempacar todo por mí mismo.

Gracias de nuevo por su ayuda.

Buena suerte.

Razón de la queja: