marketeer: Ну так Вы добавили property test_indicator? Без этого, видимо, никак.
Пробовал. Что-то не получается так. Не могли бы показать пример (возможно неправильно делаю)?
P.S. Получилось. Проще некуда. Пошёл отдыхать. ))
P.S2. Но всё же получается зависимость от того, что нужно тогда прописывать все индикаторы через property test_indicator. То есть, если имя индикатора задаётся внешним параметром и у пользователя появился новый индикатор, то нужно снова лезть в код. Это не совсем то, что хотелось бы.
P.S2. Но всё же получается зависимость от того, что нужно тогда прописывать все индикаторы через property test_indicator. То есть, если имя индикатора задаётся внешним параметром и у пользователя появился новый индикатор, то нужно снова лезть в код. Это не совсем то, что хотелось бы.
Так сделано в пятерке. В четверке не было такой зависимости, я сам этим пользовался для построения индюков от нескольких других произвольно выбираемых индюков. Может быть разработчики выскажут, что они думают по этому поводу.
marketeer: Так сделано в пятерке. В четверке не было такой зависимости, я сам этим пользовался для построения индюков от нескольких других произвольно выбираемых индюков. Может быть разработчики выскажут, что они думают по этому поводу.
Все дело в том, что эксперты в тестере МТ5 запускаются вне терминала и не имеют всего окружения библиотек, что было в МТ4.
Например, эксперт вообще отправляется в клауд и чтобы передать дополнительные связи, надо:
использовать статические имена индикаторов в вызовах, что позволяет компилятору автоматически прописывать зависимости эксперта
явно прописывать через property список нужных индикаторов, чтобы вручную построить список зависимостей
Если используется динамические вызовы индикаторов, то нужно вручную прописать список используемых. Когда запускает сторонний тест, то вместе с экспертом посылаются все зависимые файлы. Это могут быть как локальные (они все равно вне терминала), так и удаленные или клаудные агенты.
Это цена, которую надо платить за "нажал на старт и ни о чем больше не думаю, все работает автоматически".
C появлением новой версии языка MQL, не только изменился подход к работе с индикаторами, но и появились новые способы создания индикаторов. Кроме того, появилась дополнительная гибкость при работе с индикаторными буферами - теперь вы можете самостоятельно указать нужное направление индексации и получать ровно столько значений индикатора, сколько вам требуется. В этой статье рассмотрены базовые методы вызова индикаторов и получения данных из индикаторных буферов.
Все дело в том, что эксперты в тестере МТ5 запускаются вне терминала и не имеют всего окружения библиотек, что было в МТ4.
Это цена, которую надо платить за "нажал на старт и ни о чем больше не думаю, все работает автоматически".
Это понятно, но с другой стороны у пользователей регулярно возникает встречный вопрос, поскольку привычная и эффективная гибкость потерялась. Вы фактически реализовали только модель статического связывания. А народ просит еще и динамическое связывание. По идее, даже если что-то отправилось в облако, начало считаться и вдруг обратилось к внешнему индюку, можно запросить и докачать его аналогично всему прочему окружению, которое передается с терминала в агент. Ну, это так - мысли вслух. Не я задавал этот вопрос ;-).
Возможно вопрос уже поднимался, но я не нашел его в форуме.
В следующем коде(в методе test()) при получении константного описателя(ссылки) на объект и присваивании его не константному, компилятор(МетаEditor 5.00, Build 687) не выдает ошибку:
class A{
public:
void someDo() {}
};
class B{
public:
void B( A* aA ) : mA( aA ) {}
const A* getA() { return (mA); }
private:
A* mA;
};
void test(){
A a;
B b( GetPointer( a ) );
//Ошибки нет. И это правильно const A* a1 = b.getA();
//Ошибка есть: "...someDo' - call non-const method for constant object..". И это правильно
a1.someDo();
//Ошибки нет. Это НЕ правильно(CONST A* B::getA())!
A* a2 = b.getA();
//ошибки нет. Правильно (а2 не const)
a2.someDo();
}
Возможно вопрос уже поднимался, но я не нашел его в форуме.
В следующем коде(в методе test()) при получении константного описателя(ссылки) на объект и присваивании его не константному, компилятор(МетаEditor 5.00, Build 687) не выдает ошибку:
По моему, тут как раз налицо оптимизация первого случая прямого доступа к члену объекта.
Во втором случае присутствует косвенный доступ через ссылку, что при микроскопическом теле цикла закономерно занимает половину времени, увеличивая его вдвое.
Вот тут почитайте про tester_indicator.
Да читал я и перечитывал уже всё неоднократно. )) Но что-то не удаётся получить то, что нужно. А нужно мне задавать имя индикатора переменной.
Ну так Вы добавили property test_indicator? Без этого, видимо, никак.
Пробовал. Что-то не получается так. Не могли бы показать пример (возможно неправильно делаю)?
P.S. Получилось. Проще некуда. Пошёл отдыхать. ))
P.S2. Но всё же получается зависимость от того, что нужно тогда прописывать все индикаторы через property test_indicator. То есть, если имя индикатора задаётся внешним параметром и у пользователя появился новый индикатор, то нужно снова лезть в код. Это не совсем то, что хотелось бы.
P.S2. Но всё же получается зависимость от того, что нужно тогда прописывать все индикаторы через property test_indicator. То есть, если имя индикатора задаётся внешним параметром и у пользователя появился новый индикатор, то нужно снова лезть в код. Это не совсем то, что хотелось бы.
Так сделано в пятерке. В четверке не было такой зависимости, я сам этим пользовался для построения индюков от нескольких других произвольно выбираемых индюков. Может быть разработчики выскажут, что они думают по этому поводу.
Все дело в том, что эксперты в тестере МТ5 запускаются вне терминала и не имеют всего окружения библиотек, что было в МТ4.
Например, эксперт вообще отправляется в клауд и чтобы передать дополнительные связи, надо:
Если используется динамические вызовы индикаторов, то нужно вручную прописать список используемых. Когда запускает сторонний тест, то вместе с экспертом посылаются все зависимые файлы. Это могут быть как локальные (они все равно вне терминала), так и удаленные или клаудные агенты.
Это цена, которую надо платить за "нажал на старт и ни о чем больше не думаю, все работает автоматически".
Все дело в том, что эксперты в тестере МТ5 запускаются вне терминала и не имеют всего окружения библиотек, что было в МТ4.
Это цена, которую надо платить за "нажал на старт и ни о чем больше не думаю, все работает автоматически".
Возможно вопрос уже поднимался, но я не нашел его в форуме.
В следующем коде(в методе test()) при получении константного описателя(ссылки) на объект и присваивании его не константному, компилятор(МетаEditor 5.00, Build 687) не выдает ошибку:
Возможно вопрос уже поднимался, но я не нашел его в форуме.
В следующем коде(в методе test()) при получении константного описателя(ссылки) на объект и присваивании его не константному, компилятор(МетаEditor 5.00, Build 687) не выдает ошибку:
вот так будет без ошибок
вопрос к разработчикам по скорости работы указателей на объекты
почему первый код
работает быстрее, чем второй в ДВА раза?
2012.08.21 09:56:40 info (EURUSD,D1) 2=1654
2012.08.21 09:56:38 info (EURUSD,D1) 1=795
сможете ли вы это оптимизировать, чтоб поднять скорость?
Во втором случае присутствует косвенный доступ через ссылку, что при микроскопическом теле цикла закономерно занимает половину времени, увеличивая его вдвое.