Привет! Мужики, выручайте! Ни как не могу придумать функцию. Советник открывает одну позицию в день (в промежуток с 00:00 до 23:59), то есть один день-один ордер. Задача такая --> найти серию непрерывных убытков и вывести ее в лог (через команду Print(), вывести один раз). Кол-во элементов в серии вводится с клавиатуры (Например, если с клавы введено значение 5, а серия из 4х убыточных дней, то мы ее игнорируем --> ждем появление 5 и более дней). Серией считается, если убыточные дни идут подряд или ордера закрыты в один день (открываются один раз в день, а уже рыночные могут "висеть" более одного дня). В лог должно выводится (например) " убыточная серия в эти дни: 01.05, 02.05, 03.05, 04.05, 05.05 ". Важное условие: распознавать серию ( и соответсвенно выводить ее в лог), которая больше или равна значению, введенному с клавы (extern). // Лично у меня идея сложена так: 1. Фия заполняет массив Убыточных ордеров значениями их закрытия ( Mass[i] = OrderCloseTime();). То есть в массиве хранятся только даты-время закрытия убыточных ордеров 2. Начинаем сравнивать элемент на позиции i и на позиции i-1 (2 соседних) 2.1 сравниваем их путем преобразования данных ячейки в номер дня года ( TimeDayOfYear(Mass[i]) и TimeDayOfYear(Mass[i-1]) 2.2 такое сравнение позволяет узнать, идут ли убыточные дни друг за другом (Допустим первый убыточный день = 178, а предыдущий = 176 --> серии нет, т.к дни идут неподряд, соответственно если первый = 178, а второй 177 --> серия есть) 2.3 Через цикл for перебираем все ячейки массива и сравниваем соседние. Если есть серия убытков на соседнихэлементах массива--> начинаем гнать пока 1.НЕ дойдем до минимально необходимого кол-ва убыточных дней, чтобы считать это серией. 2. (если выполнен пункт 1) ПОКА серия не прекратиться. 2.4 СЕРИЯ ПРЕКРАЩАЕТСЯ --> запоминаем индекс элемента массива, на котором она закончилась, и запоминаем кол-во элементов в серии (серия может быть == ИЛИ больше значения, введенного с клавы) 3. ---вот здесь начинается проблема реализации--- 3.1 Нужно через for как-то "отшагать" обратно по серии убыточных дней, при этом узнавая у каждого элемента его дату, переводить эту дату из datetime --> string, 3.11 на основе этого заполнить строку ( Не знаю, может как-нибудь через StringAdd()?), и вывести ее в ЛОГ-файл (не миллион раз, а всего-лишь один)
Алгоритм советника не играет роли, важна сама пользовательская функция
Переменные должны быть объявлены перед их использованием. Для идентификации переменных используются уникальные имена. Описания переменных используются для их определения и объявления типов. Описание не является оператором. Индексом массива может быть только целое число. Допускаются не более чем четырехмерные массивы. Нумерация элементов массива...
Здравствуйте. Подписался на сигнал. Но через несколько дней показатель процента общего прироста с нескольких сотен стал всего 58%. Проценты по предыдущим месяцам потеряли синий цвет и стали серыми. Почему так происходит? В чем может быть причина?
Maestro8: Здравствуйте. Подписался на сигнал. Но через несколько дней показатель процента общего прироста с нескольких сотен стал всего 58%. Проценты по предыдущим месяцам потеряли синий цвет и стали серыми. Почему так происходит? В чем может быть причина?
Вы подписались на очередного разводчика депозитов. Видите вертикальную линию на графике слева 76-ой сделки? Эта линия показывает момент подключения к мониторингу. До подключения к мониторингу этот счет был "выведен" из нескольких десятков других, которые не имеют такой красивой картинки (они благополучно слиты). Депозит с красивыми показателями подключается к мониторингу и получает деньги от новичков, которым нравятся красивые картинки. Так что не верьте показателям, которые были получены до подключения к мониторингу.
Если он передаёт копии ссылку на копируемый класс, то какая разница?
Опять оба будут ссылаться друг на друга?
Не будут. Это новый объект. А в конструкторе ты просто заполняешь поля. Там свои тонкости тоже есть, так, что - грызи) В местной справке об этом ничего (хотя может и ошибаюсь), так, что читай, как в с++ это все делается и поправки на местные реалии делай. Удачи)
Не будут. Это новый объект. А в конструкторе ты просто заполняешь поля. Там свои тонкости тоже есть, так, что - грызи) В местной справке об этом ничего (хотя может и ошибаюсь), так, что читай, как в с++ это все делается и поправки на местные реалии делай. Удачи)
Да, так работает.
Спасибо!
Интересно было бы узнать у авторов, как это работает:
{this=mOther;}
Почему происходит передача по значению, когда можно было ожидать передачу ссылки?
К счастью, такой конструктор копирования возможен!
//
Лично у меня идея сложена так:
1. Фия заполняет массив Убыточных ордеров значениями их закрытия ( Mass[i] = OrderCloseTime();). То есть в массиве хранятся только даты-время закрытия убыточных ордеров
2. Начинаем сравнивать элемент на позиции i и на позиции i-1 (2 соседних)
2.1 сравниваем их путем преобразования данных ячейки в номер дня года ( TimeDayOfYear(Mass[i]) и TimeDayOfYear(Mass[i-1])
2.2 такое сравнение позволяет узнать, идут ли убыточные дни друг за другом (Допустим первый убыточный день = 178, а предыдущий = 176 --> серии нет, т.к дни идут неподряд, соответственно если первый = 178, а второй 177 --> серия есть)
2.3 Через цикл for перебираем все ячейки массива и сравниваем соседние. Если есть серия убытков на соседних элементах массива --> начинаем гнать пока 1.НЕ дойдем до минимально необходимого кол-ва убыточных дней, чтобы считать это серией. 2. (если выполнен пункт 1) ПОКА серия не прекратиться.
2.4 СЕРИЯ ПРЕКРАЩАЕТСЯ --> запоминаем индекс элемента массива, на котором она закончилась, и запоминаем кол-во элементов в серии (серия может быть == ИЛИ больше значения, введенного с клавы)
3. ---вот здесь начинается проблема реализации---
3.1 Нужно через for как-то "отшагать" обратно по серии убыточных дней, при этом узнавая у каждого элемента его дату, переводить эту дату из datetime --> string,
3.11 на основе этого заполнить строку ( Не знаю, может как-нибудь через StringAdd()?), и вывести ее в ЛОГ-файл (не миллион раз, а всего-лишь один)
Алгоритм советника не играет роли, важна сама пользовательская функция
Христа ради, помогите!))
Здравствуйте. Подписался на сигнал. Но через несколько дней показатель процента общего прироста с нескольких сотен стал всего 58%. Проценты по предыдущим месяцам потеряли синий цвет и стали серыми. Почему так происходит? В чем может быть причина?
Вы подписались на очередного разводчика депозитов. Видите вертикальную линию на графике слева 76-ой сделки? Эта линия показывает момент подключения к мониторингу. До подключения к мониторингу этот счет был "выведен" из нескольких десятков других, которые не имеют такой красивой картинки (они благополучно слиты). Депозит с красивыми показателями подключается к мониторингу и получает деньги от новичков, которым нравятся красивые картинки. Так что не верьте показателям, которые были получены до подключения к мониторингу.
Копия экземпляра класса.
Если я делаю такое присвоение:
то при последующем изменении Cl1, изменяется и Cl2.
То есть, очевидно, присваивается просто ссылка.
А мне требуется сохранить экземпляр класса, который бы хранил все свойства преданные ему в момент присваивания.
Как это сделать?
Копия экземпляра класса.
Если я делаю такое присвоение:
то при последующем изменении Cl1, изменяется и Cl2.
То есть, очевидно, присваивается просто ссылка.
А мне требуется сохранить экземпляр класса, который бы хранил все свойства преданные ему в момент присваивания.
Как это сделать?
Ты, наверное, это делаешь:
CClass* cl1=new CClass; CClass* cl2=cl1;, а тебе нужно это
Конструктор копирования тебе нужен:
Конструктор копирования тебе нужен:
Спасибо!
Попробую, но не понятно ка это работает.
Если он передаёт копии ссылку на копируемый класс, то какая разница?
Опять оба будут ссылаться друг на друга?
Спасибо!
Попробую, но не понятно ка это работает.
Если он передаёт копии ссылку на копируемый класс, то какая разница?
Опять оба будут ссылаться друг на друга?
Не будут. Это новый объект. А в конструкторе ты просто заполняешь поля. Там свои тонкости тоже есть, так, что - грызи) В местной справке об этом ничего (хотя может и ошибаюсь), так, что читай, как в с++ это все делается и поправки на местные реалии делай. Удачи)
Не будут. Это новый объект. А в конструкторе ты просто заполняешь поля. Там свои тонкости тоже есть, так, что - грызи) В местной справке об этом ничего (хотя может и ошибаюсь), так, что читай, как в с++ это все делается и поправки на местные реалии делай. Удачи)
Да, так работает.
Спасибо!
Интересно было бы узнать у авторов, как это работает:
{this=mOther;}Почему происходит передача по значению, когда можно было ожидать передачу ссылки?
К счастью, такой конструктор копирования возможен!
Добрый день!
Подскажите, пожалуйста, почему у меня МТ4 от точки входа в позицию, я не могу мышкой установить тейк и стоп лосс?
Возможно нужно что то настроить, но я не понимаю что, помогите плиз
Добрый день!
Подскажите, пожалуйста, почему у меня МТ4 от точки входа в позицию, я не могу мышкой установить тейк и стоп лосс?
Возможно нужно что то настроить, но я не понимаю что, помогите плиз
Попробуйте зажать на клавиатуре "Alt" и перетянуть