[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 1109

 
kolyango:
Скажите, а что означает надпись при компиляции советника: Вначале советника есть: Это что, обращение к файлу в libraries? И будет ли правильно работать советник с данным обращением и 2-мя предупреждениями при компиляции?
Всего-навсего сообщение о том, что эти две функции, присутствующие в исходном коде, будут удалены из исполняемого кода, поскольку ссылки на них (попытки обращения) не обнаружены.
 
Sergey_Rogozin:

Всем добрый вечер!

Как рассчитать Стоп-лосс? Формула рассчета.

число валют умножить на цену и поделить на время
 
Sergey_Rogozin:

Всем добрый вечер!

Как рассчитать Стоп-лосс? Формула рассчета.


Может поможет http://masterforex-v-forex.narod.ru/post_1263305503.html

Хотя сам не пользуюсь. У меня всё попроще.

 

abolk:

Sergey_Rogozin:

Всем добрый вечер!

Как рассчитать Стоп-лосс? Формула рассчета.

число валют умножить на цену и поделить на время

не, у меня предложение лучше было. пойти вопрощающему поучится в школе для начала. ума на грош.
 
sergeev:

не, у меня предложение лучше было. пойти вопрощающему поучится в школе для начала. ума на грош.

согласен. я просто со скобками намудрил
 
Abzasc:

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

а с кодом мне тут такой подсказали

и для разных имен использовал


VladislavVG:
Удалять (объекты\ордера) нужно в обратную сторону (от большего номера к меньшему), поскольку после удаления меняется нумерация .... Сотни раз обсуждалось.

Огромное спасибо за оперативную помощь !!!

Да, действительно, дело было в последовательности удаления объектов, к сожалению, я раньше об этом не знал - это мой первый индюк написанный с нуля самостоятельно.

Вот код который делает всё что мне нужно

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

Огромное спасибо за оперативную помощь !!!

Да, действительно, дело было в последовательности удаления объектов, к сожалению, я раньше об этом не знал - это мой первый индюк написанный с нуля самостоятельно.

Вот код который делает всё что мне нужно

ИМХО - так лучше:

/// Удаление всех объектов с префиксом 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);
}

Подобные функции неоднократно выкладывались - можно было просто поиском воспользоваться ;)......

Но в любом случае гораздо полезней разобраться смостоятельно.

Удачи.

 
VladislavVG:

ИМХО - так лучше:

Подобные функции неоднократно выкладывались - можно было просто поиском воспользоваться ;)......

Но в любом случае гораздо полезней разобраться смостоятельно.

Удачи.

Ого, Вы прям универсальную функцию сразу накидали - беру её на заметку, но позволю себе 2 замечания:

1. StringFind(name, prefix) != -1

Мне вот это не очень нравится, т.к. если, вдруг, объект будет называться яяя_Prefix_78, то он тоже удалится, а по моей логике не должен, малоли где в середине текста встретится та комбинация символов которую мы ставим, как метку, в начало. ИМХО!

2. Т.к. это ветка для чайников, то не лишне упомянуть, что чтобы ваша функция при компиляции не ругалась надо указать перед ней (Я вчера когда ошибку искал, набил небольшую шишку пока нашёл что нужно было заинклюдить 8-)) )

#include <stdlib.mqh>

Спасибо!

 
ALEX_SPB_RU:

Ого, Вы прям универсальную функцию сразу накидали - беру её на заметку, но позволю себе 2 замечания:

1. StringFind(name, prefix) != -1

Мне вот это не очень нравится, т.к. если, вдруг, объект будет называться яяя_Prefix_78, то он тоже удалится, а по моей логике не должен малоли где в середине текста встретится та комбинация символов которую мы ставим, как метку в начало. ИМХО

2. Т.к. это ветка для чайников, то не лишне упомянуть, что чтобы ваша функция при компиляции не ругалась надо указать перед ней (Я вчера когда ошибку искал, набил небольшую шишку пока нашёл что нужно было заинклюдить 8-)) )

Спасибо!

Вы можете поправить как считаете нужным - это просто демонстрация подхода...

Если нужно, чтобы удаляемая строка была только префиксом, то можно указать, что поиск от нулевой позиции в строке - как у Вас изначально.

Удачи.

 
VladislavVG:

Вы можете поправить как считаете нужным - это просто демонстрация подхода...

Если нужно, чтобы удаляемая строка была только префиксом, то можно указать, что поиск от нулевой позиции в строке - как у Вас изначально.

Удачи.

Всё равно не понимаю!

Даже если я явно укажу, что поиск надо начинать с нулевой позиции, то удалится объект с именем яяя_Prefix_78, т.к. функция вернёт число 4

А именно для удаления по префиксу надо указать либо ==0 либо перед функцией поставить !

Без обид, я только учусь и поэтому хочу всё для себя разложить по полочкам.

Ещё раз благодарю за помощь!

Удачи!

Причина обращения: