[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 409
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
При открытии и обновлении графика на сервер идёт запрос на новые данные. Некоторые жадные ДЦ предпочитают свои средства расходовать не на более мощные сервера и более широкий канал, а рассовывать их по своим карманам. Им приходится ограничивать количество запросов от терминала чтобы слабый сервер "не повесили". У MRC всего 2000 запросов в сутки. Это в 10 раз меньше количества их инструментов помноженное на количество ТФ, не считая торговых запросов.
Инклюды в MQL4 помогают упорядочить код. Например, так выглядит индикатор у меня на 3000 строк.
Дело в том, что я видел библиотеки, да об этом сказано и в документации, что объявляют инклюды обычно в самом верху кода, там где объявляются глобальные переменные. Если в инклюдах присуствуют функции, то по-моему странно представить, что в месте, где объявляются глобальные переменные будет фактически в результате инклюда в то место функция, и, как вариант, как-нибудь переменные. Ведь так коды не пишутся. Если вверху объявляют переменные используемые в эксперте, и внешние пользовательские переменные, то функции рядом с ними никто не помещает! А вот инклюд, в котором есть функции помещают, и это считается нормальным явлением, как я понимаю. Вот это меня больше всего здесь смущает.
Как-то оно не логично же...
С другой стороны, если инклюд поместить, где-нибудь. вместо нескольких функций, которые отвечают за получение, скажем так, торгового сигнал по какому-нибудь признаку, то это будет логичным и читабельным моментом.
К сожалению, компилятор не разрешает использовать один инклюд более одного раза в одном модуле. Обычно так можно экономить на повторяющемся коде.
Всем добрый день.
Изучаю функции MarketInfo ( ) и Print ( )
Вот простой код с использованием этих функций
Тестер,ТФ 60 мин.
Запрос от графика похож на CopyRates ArrayCopySeries, а не на RefreshRates. CopyRates это единственная функция из неторговых шевелящая сервер.
Проверил RefreshRates(). Если этот эксперт запустить, например, на EURUSD, а в настройки вставить другой инструмент, окно, которого давно не было открыто (чтобы истории не было), то история появляется.
Так что, всё же, RefreshRates() обращается к серверу и подкачивает историю. Как следствие, контроллировать приход истории необходимо.
А в поддержке скажут, что ни одна функция напрямую не обращается к серверу. Типа, всё делается через терминал :-)
если использовать GetProfitFromDateInCurrency() (оригинальную - это ВАЖНО: я не знаю, что Вы там могли "наковырять" в своём варианте), то вызывать нужно так:
и функция вернёт профит по ордерам, закрытым с начала текущих суток.
А ВСЕ глупости из кода отлавливаются через Print().
не работает. Выдает весь имеющийся профит по сделкам за всю историю.
вот оригинальная функция и я в ней естественно ничего не менял
вот ее вызов и принт
Проверил RefreshRates(). Если этот эксперт запустить, например, на EURUSD, а в настройки вставить другой инструмент, окно, которого давно не было открыто (чтобы истории не было), то история появляется.
Так что, всё же, RefreshRates() обращается к серверу и подкачивает историю. Как следствие, контроллировать приход истории необходимо.
А в поддержке скажут, что ни одна функция напрямую не обращается к серверу. Типа, всё делается через терминал :-)
Вадим, я запустил Ваш скрипт на терминале, на котором я ни разу не открывал кроме мажоров и кроссов с иеной никаких инструментов. В общем, вот скрин:
Не подкачивается ничего, т.к. массив рыночных данных пуст, судя по комментам..
Вадим, я запустил Ваш скрипт на терминале, на котором я ни разу не открывал кроме мажоров и кроссов с иеной никаких инструментов. В общем, вот скрин:
Не подкачивается ничего, т.к. массив рыночных данных пуст, судя по комментам..
Ага. Еще он не заметил, что у него в эксперте MarketInfo(), а не только RefreshRates().
Проверил RefreshRates(). Если этот эксперт запустить, например, на EURUSD, а в настройки вставить другой инструмент, окно, которого давно не было открыто (чтобы истории не было), то история появляется.
Так что, всё же, RefreshRates() обращается к серверу и подкачивает историю. Как следствие, контроллировать приход истории необходимо.
А в поддержке скажут, что ни одна функция напрямую не обращается к серверу. Типа, всё делается через терминал :-)
Впечатляет уровень буйности фантазий. Что же даные появились только по некоторым символам (котрые данво не были открыты), а не по всем присутствующим в обзоре рынка? Каким это хитрым образом функция RefreshRates() узнала, что какие-то символы надо обновлять, а какие-то нет?
Жунко, завязывай бредить.
не работает. Выдает весь имеющийся профит по сделкам за всю историю.
вот оригинальная функция и я в ней естественно ничего не менял
вот ее вызов и принт
Ну так всё правильно. Ты функцию "прочитай" по строчкам и пойму как она работает, если самому влом писать и всё станет на свои места..
У тебя параметр функции:
время открытия дневного последнего бара, т.е. все позиции, которые закрыты раньше чем открыта текущая дневка будут просчитаны и просуммированы! Логично? Так вот ставь другой бар, который требуется или что там у тебя. Но это уже сам смотри.
Ага. Еще он не заметил, что у него в эксперте MarketInfo(), а не только RefreshRates().
Еще все функции:
DoubleToStr(iOpen(sTool, 0, i), Digits), " ",
DoubleToStr(iLow(sTool, 0, i), Digits), " ",
DoubleToStr(iHigh(sTool, 0, i), Digits), " ",
DoubleToStr(iClose(sTool, 0, i), Digits), " ",
DoubleToStr(iVolume(sTool, 0, i), 0), "\n");
Естественно данные обновятся.