Вопрос по поводу icustom
Results 1 to 10 of 10

Thread: Вопрос по поводу icustom

  1. #1
    Привет, я работаю над советником для моего CARMEN-индьера и у меня есть вопрос.

    Я использую icustom, и когда я тестирую, я вижу, что индекс загружается и удаляется каждый тик, и это сильно замедляет тестирование. Где я могу разместить icustom или как структурировать код, чтобы этого не произошло?

  2. #2
    Не уверен, как настроен ваш советник, но если он похож на большинство, вы просто проверяете предыдущий бар, чтобы получить свои значения, чтобы вы могли просто проверять каждый раз, когда появляется новый бар. if (Time [1]! = checktime) {carmenvalue = icustom (blahblahblah); checktime = Время [1]); }

  3. #3

    Quote Originally Posted by ;
    Не уверен, как настроен ваш советник, но если он похож на большинство, вы просто проверяете предыдущий бар, чтобы получить свои значения, чтобы вы могли просто проверять каждый раз, когда появляется новый бар. if (Time [1]! = checktime) {carmenvalue = icustom (blahblahblah); checktime = Время [1]); }
    Я уже использую этот код, чтобы загрузить свой указатель только один раз, это не моя проблема. Моя проблема - каждый раз, когда я загружаю его, он пересчитывает все бары. Мне, конечно, нужно только пересчитать самый последний бар. Есть идеи? Мне известно, что когда строится индекс, функция IndiorCounting () используется для определения того, сколько баров изменилось с момента последнего тика, а затем индикатор определяет, сколько баров необходимо снова рассчитать, но я не думаю, что это происходит, когда индикатор используется в советнике. По одной причине в советнике ничего не строится.

  4. #4

    Quote Originally Posted by ;
    Я уже использую этот код, чтобы загрузить свой указатель только один раз, это не моя проблема. Моя проблема - каждый раз, когда я загружаю его, он пересчитывает все бары. Мне, конечно, нужно только пересчитать самый последний бар. Есть идеи? Мне известно, что когда строится индекс, функция IndiorCounting () используется для определения того, сколько баров изменилось с момента последнего тика, а затем индикатор определяет, сколько баров необходимо снова рассчитать, но я не думаю, что это происходит, когда индикатор используется в советнике. По одной причине в советнике ничего нет ...
    Если это не нужно (и не обязательно, поскольку вы не строите буфер индекса), удалите (или измените значение for, чтобы оно останавливалось на 0, только один проход) цикла for из вашего пользовательского указателя icustom, поэтому рисует данные из поля, которое вы указываете в своих параметрах. Вы можете сохранить это как специальный индекс, чтобы он не перепутался с пользовательским индексом, который вы помещаете на свой график. Вы также можете удалить все ненужные входы extern, удалив extern для каждого, который не будет изменен, когда советник вызывает пользовательский индикатор. Таким образом, вычисляется только элемент индексного буфера, который вы вызываете. Поэтому у вас могут быть такие вызовы: varA = iCustom (бла-бла, 1,0); varB = iCustom (бла-бла-бла, 1,1); varC = iCustom (бла-бла-бла, 0,0); varD = iCustom (бла-бла-бла, 0,4); И так далее.

  5. #5
    В вашем вызове iCustom единственная переменная, которую вы можете изменить, - это значение сдвига, без которого происходит перерасчет. Если вы измените одно из значений параметров, MT4 создаст новый набор данных для этого нового набора параметров. Следовательно, вы видите пересчет целого нового набора буферов с ожиданием того, что вы будете делать будущий вызов для получения данных из этих буферов с одним и тем же набором параметров - но если вы постоянно меняете параметры, это не Скорее всего, и ваша производительность спирали вниз. Когда вы торгуете в режиме реального времени, большинство инди будет пересчитывать только самые последние бары, а не полную историю.

  6. #6
    Я извлек бы из индекса полезный код, который выполняет вычисления, поместил его в библиотеку как функцию и включил в файл # и вызвал функцию из советника. Тогда нет необходимости использовать iCustom вообще. Таким образом, вы получите максимальную скорость. PS: если вы сделаете это, вы можете использовать ту же библиотеку для исходного индекса, чтобы не дублировать большой объем кода.

  7. #7
    Привет, я использовал индекс под названием pattern_recognition_master_v3, но начал получать ошибки деления на ноль, выполнил поиск и нашел решение на этом форуме, поэтому, став участником, я обнаружил, что один из участников переписал некоторый код в нем, названный версией 7, и он работал только сейчас когда я тестирую и вызываю его, отчеты журнала успешно загружаются, а затем удаляются на каждом тике, я также изменяю этот индикатор до v8, который останавливает подсчет уже подсчитанных баров, но это все равно не останавливает его перезагрузку и выгрузку, возможно ли я сделал, как говорит Кингхай, и изменил переменную в моем ea, которая вызывает это, или, возможно, переменная в v7 v6 v5 или v4 indior была изменена для этого, бросая мой ea ofa грубый хмм, никогда не думал, что придется попробовать проверить, имеет ли он целая куча булевых истин, разделенных на странный цвет и int!

  8. #8
    3 Приложения (я) - это индикаторы, о которых я упоминал в моем предыдущем сообщении, если кто-то захочет взглянуть, на этом форуме есть целая тема
    https://www.forex-russian.com/attach...2032018630.mq4
    https://www.forex-russian.com/attach...6234096217.mq4
    https://www.forex-russian.com/attach...1495272900.mq4

  9. #9
    исправил это, грубая переменная для дополнительной цифры была удалена Доном, так что все, что мне нужно было сделать, это удалить сначала true в моем icustom и отсортировать проблему благодаря kinghigh постарается запомнить, что в будущем переменная в ea (icustom) и indior должна быть то же самое за исключением последнего (смена). Если они вам нужны, измените код указателей, но если кто-то другой, убедитесь, что вы продолжаете в том же духе !! хороший урок сегодня, я думаю, что мне нравится этот форум! искал кого-то, кто может помочь мне с проблемами, кажется, этот форум делает хорошую работу!

  10. #10
    Спасибо этой теме, я только что нашел решение, чтобы исправить мой советник.

Действующие разрешения

  • Вы не можете создавать новые темы
  • Вы не можете размещать ответы
  • Вы не можете использовать вложения
  • Вы не можете редактировать ваши записи
  •  
  • BB-код - Вкл.
  • Смайлики - Вкл.
  • Код [IMG] - Вкл.
  • Код [VIDEO] - Вкл.
  • HTML-код - Выкл.
Веб-сайт использует cookies
Веб-сайт использует cookies, в настоящее время некоторые из них уже установлены. Вы можете ознакомиться с более подробной информацией об использовании нами cookies здесь. Чтобы принять условия использования cookies, пожалуйста, нажмите на кнопку справа. Если вы продолжаете пользоваться веб-сайтом, вы по умолчанию принимаете условия использования cookies.