[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 367
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Три максимума за период, не последних. Вернее не обязательно последних.
Смотрите: у вас есть массив со значениями. Вам нужно найти в этом массиве три максимума. Они не обязаны быть ни последними, ни первыми в массиве таймсерии. Нужно просто найти три максимума.
1. Копируем ваш массив во временный (искать будем во временном массиве):
int ArrayCopy( object &dest[], object source[], int start_dest=0, int start_source=0, int count=WHOLE_ARRAY)
Копирует один массив в другой. Массивы должны иметь одинаковый тип. Массивы типа double[], int[], datetime[], color[], и bool[], можно копировать как массивы одного типа.Возвращает количество скопированных элементов.
2. Ищем во временном массиве максимальное значение:
int ArrayMaximum( double array[], int count=WHOLE_ARRAY, int start=0)
Поиск элемента с максимальным значением. Функция возвращает позицию максимального элемента в массиве.3. Сохраняем найденный индекс в массиве (напр. MassIndexMaxValue[])
4. Обнуляем значение найденного максимума во временном массиве - просто пишем туда ноль
5. Опять ищем во временном массиве следующее максимальное значение (индекс первого найденного у нас уже сохранён в MassIndexMaxValue[] и значение этого максимума обнулено)
Этот цикл продолжаем до тех пор, пока не найдём нужное количество максимальных значений во временном массиве.
Теперь массив MassIndexMaxValue[] будет содержать индексы нужного количества максимальных значений в вашем массиве.
Размер временного массива после завершения поиска обнуляем - память незачем засорять
Вот как-то так...
ЗЫ... тут вот на коленке набросал по-быстрому... может где и ошибся - писал спросонья и не проверял ничего, но функция примерно такого содержания:
При её вызове:
FindMaxValue(Ваш_Массив_Значений, MassIndexMaxValue, 3);
... ранее определённый массив int MassIndexMaxValue[] должен содержать индексы найденных трёх максимальных значений в Ваш_Массив_Значений[];
Не могу понять как вычисляется процент прибыли на сделку и процент убытка на сделку. Подскажите?
http://www.assessor.ru/forum/index.php?t=822
Смотрите: у вас есть массив со значениями. Вам нужно найти в этом массиве три максимума. Они не обязаны быть ни последними, ни первыми в массиве таймсерии. Нужно просто найти три максимума.
Артём, спасибо Вам большое!
Рада, что моя мысль с обнуленим максимального значения массива была правильной, а Вы расписали всё в деталях, с копированием в другой массив, теперь буду разбираться в мелочах
и по совету Владимира начну с алгоритма программы, обработаю Вашу информацию и уверена всё получится - учителя хорошие.
ОТДЕЛЬНОЕ СПАСИБО ЗА СТАТЬЮ https://www.mql5.com/ru/articles/1357
Добрый день!
Подскажите пожалуйста, как можно получать сигналы из пользовательского индикатора в эксперт?
Я воспользовался iCustom, но сов все равно не получает сигнала
Добрый день!
Подскажите пожалуйста, как можно получать сигналы из пользовательского индикатора в эксперт?
Я воспользовался iCustom, но сов все равно не получает сигнала
Возможно код индикатора iCustom не поддается... слишком мало в Вашем вопросе информации для ответа.
Добрый день!
Подскажите пожалуйста, как можно получать сигналы из пользовательского индикатора в эксперт?
Я воспользовался iCustom, но сов все равно не получает сигнала
А с другими индикаторами такая же история? Если да, то Вы не верно задействуете функцию iCustom(). Если нет, то попробуйте посмотреть код индикатора - вполне может так случиться, что Ваш индикатор ввобще не задействует ни одного индикаторного буффера - работает с построением графических объектов.
Здравствуйте. Имеется функция:
Но она почему-то не работает. Вызывается в советнике сразу в начале после int start() следующим образом:
Во вкладках Журнал и Эксперты советник loaded successfully, и больше ничего. Хотя должно появиться "В выходные не торгуем.", т.к. 26.11.2011 - суббота.
Где ошибка и что я делаю не так?
Возможно код индикатора iCustom не поддается... слишком мало в Вашем вопросе информации для ответа.
Здравствуйте. Имеется функция:
Но она почему-то не работает. Вызывается в советнике сразу в начале после int start() следующим образом:
Во вкладках Журнал и Эксперты советник loaded successfully, и больше ничего. Хотя должно появиться "В выходные не торгуем.", т.к. 26.11.2011 - суббота.
Где ошибка и что я делаю не так?
Сегодня суббота - выходной. Вы запускаете эксперта, происходит инициализация, но поскольку выходной и тика нет, функция старта не запускается (то есть Trade() не вызывается.). Для проверки правильности её работы нужно сунуть вызов этой функции в блок инициализации, ну или тестить в тестере.
Индикатор рисует линии поддержки и сопротивления,с чем и справляется во время визуализации. Сам индикатор при пересечении дает сигнал LT_1 == 1 или -1.
ТОгда вообще не парься - чисто перенеси код индюка в эксперта как есть на выполнение торговых критериев и все - далее в сове по этим перенесенным торговым условиям с этого индюка открываешь позы через советника и все...