Ошибки, баги, вопросы - страница 1241
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Поиск обновлений срабатывает при подключению к серверу MetaQuotes-Demo. Это возможно в таких случаях:
:O
Нет. ошибка больше не появляется.
Шрёдингер ходил по комнате в поисках нагадившего котёнка, а тот сидел в коробке ни жив ни мертв. )))
Шрёдингер ходил по комнате в поисках нагадившего котёнка, а тот сидел в коробке ни жив ни мертв. )))
Очень странно на самом деле. Что перестанет работать на следующий раз?
Раставил принты - ошибка пропала...
Эфект наблюдателя в квантовой механике какой то..
Мы воспроизвели вашу ситуацию только когда подсунули NaN в выражение.
так fabs правильно работает или нет?
так fabs правильно работает или нет?
Добрый день! Прошу помощи в реализации простой, на мой взгляд, схемы.
Есть советник, который нормально работает на одном инструменте. Я хочу "допилить" его, чтоб он работал одновременно по нескльким инструментам. Для этого мне нужно правильно создать массив данных, к членам которых могли иметь доступ все экземпляры советника, прикрепленные к нескольким разным символам. Т.е. массив данных один, а экземпляров советников - несколько. Каждый экземпляр советника может читать и изменять члены массива.
Как я понимаю, необходимо создать массив со статичными членами (static).
Простейший пример: подсчитать общее число тиков на всех графиках, где прикреплены советники. Присоединим советника к 2 графикам и по событию OnTick() будем увеличивать счетчик на 1. Для простоты я попробовал использовать не массив, а одну статичную переменную counter. Но к сожалению, каждый советник работает только со своим счетчиком, счетчик не "общий". Результат:
символ1, тик1 : счетчик = 0;
символ1, тик2 : счетчик = 1;
символ2, тик1 : счетчик = 0; - вот здесь ожидалось счетчик = 2
Для примера я создал простой класс со счетчиком:
Вот код советника:
Помогите плз разобраться, заранее большое спасибо!
Добрый день! Прошу помощи в реализации простой, на мой взгляд, схемы.
Есть советник, который нормально работает на одном инструменте. Я хочу "допилить" его, чтоб он работал одновременно по нескльким инструментам. Для этого мне нужно правильно создать массив данных, к членам которых могли иметь доступ все экземпляры советника, прикрепленные к нескольким разным символам. Т.е. массив данных один, а экземпляров советников - несколько. Каждый экземпляр советника может читать и изменять члены массива.
Как я понимаю, необходимо создать массив со статичными членами (static).
Простейший пример: подсчитать общее число тиков на всех графиках, где прикреплены советники. Присоединим советника к 2 графикам и по событию OnTick() будем увеличивать счетчик на 1. Для простоты я попробовал использовать не массив, а одну статичную переменную counter. Но к сожалению, каждый советник работает только со своим счетчиком, счетчик не "общий". Результат:
символ1, тик1 : счетчик = 0;
символ1, тик2 : счетчик = 1;
символ2, тик1 : счетчик = 0; - вот здесь ожидалось счетчик = 2
Для примера я создал простой класс со счетчиком:
Вот код советника:
Помогите плз разобраться, заранее большое спасибо!
Добрый день. Конкретно для реализации Вашего примера с тиками подойдут глобальные переменные терминала (недавно была опубликована статья на эту тему). Насчет такого массива... не уверен, надо пробовать. Но могу предложить другой вариант. В один советник прописать необходимые для работы символы и сделать, как Вы и сказали, статический/глобальный массив необходимых данных. И пусть советник в цикле переберет все нужные символы.
Спасибо большое за ответ.
Я использовал пример с тиками как самый простой и наглядный для описания общей идеи. В советнике же используются более сложные алгоритмы.
Вариант, когда в один советник прописываются N символов мне не нравится за своей громозкостью и не универсальностью. НА портале есть несколько статей на эту тему, я их видел: но мне не нравятся большие циклы, массивы, копирование данных, куча пачек переменных под каждый символ и т.д. Я хочу использовать более простой и эффективный , на мой взгляд, подход: один код советника под любой символ (символ определяется по графику, к которому привязан советник) - и каждая копия советника работает параллельно от других. Но при этом советники "шарят" друг с другом общую аналитическую информацию, которая нужна для принятия решений.
Идея с глобальными переменными меня посещала, но это все-таки больше процедурный подход, а хочется использовать все преимущества ООП. Я планирую написать отдельный класс ,который бы передавал нужные аналитические данные советнику в виде массива, и уже советники принимали торговые решения.