[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 361

 

Diubakin:
1. Здраствуйте, подскажите пожалуйста, есть ли возможность доступа к исторической тиковой информации в МТ4, средствами MQL4? То есть что-то вроде "тик-серии"?

2. Есть ли воможность запрограммировать МА на основе тиков, а не тайм-фреймов(тайм-серий)? Извините если не совсем корректно выразился. Короче мне нужна тиковая история...


1. Почитай статьи (поиском глянь) по порядку работы тестера стратегий.

2. Такая возможность есть - но здесь уже УЖ очень важную роль играет выбор конторы, через которую работать, ее торговые условия, т.д. Для этого нужна тиковая история, далее ее "закачка" в МТ4... мног еще чего - это далеко не полный перечень вопросов, которые необходимо решать...

Смотри в самом конце кодебазы сайта - советник (автор компостер) - Save...- точно не помню его названия - как писать тиковую историю какого-либо поставщика котировок (ДЦ).

 
Спасибо за помощь, если я правильно понял, то в МТ4 полноценная работа с тиками - это серьёзная проблема, то есть чтоб можно было использовать все возможности(индикаторы, эксперты, скрипты) как на таймфреймовых графиках и соответственно при программировании на основе тиковой информации возникает масса дополнительных задач, которые начинающему решить будет очень сложно. Неужели было очень сложно разработчикам сделать полноценную работу с тиковой информацией?
 

Diubakin:
1. Спасибо за помощь, если я правильно понял, то в МТ4 полноценная работа с тиками - это серьёзная проблем, то есть чтоб можно было использовать все возможности(индикаторы, эксперты, скрипты) как на таймфреймовых графиках и соответственно при программировании на основе тиковой информации возникает масса дополнительных задач, которые начинающему решить будет очень сложно.

2. Неужели было очень сложно разработчикам сделать полноценную работу с тиковой информацией?


1. Это зависит от Вашей базовой подготовки - какими языками программирования владеете на этом этами, Вашими способностями к обучению, усвоению и применению уч материалов, много еще чем... Если все гут,есть желание и стремление заниматься в этом направлении, то разобраться и применить все это удовольствие на практике, уверен, вполне не сложно и возможно. Если совсем..., тогда самому очень сложно, а то и не возможно, возможность, решать через жобу, я не имею ввиду...

2. Здесь уже спросите у самих разработчиков.

 
pension:
Извините пожалуйста, а как нужно было записать код, чтобы сохранились пробелы, а то самому страшно смотреть? В черновике в текстовом редакторе всё было красиво.

Здесь, в редакторе, нажми ктрл+альт+М - в данное окно ставь через буфер обмена код, затем внизу клавиша "Вставить", затем продолжаешь свой массидж.
 
Уважаемые Профи. Ниже фрагмент советника, который часто повторяется в нём, в разных местах, для разных целей.
Вопрос. Почему спецы пишут оператор Б (основное условие стр.4) вслед за оператором А? Или я чего то недопонимаю, или это просто перестраховка-уточнение,
или они знают о каких нибудь подводных камнях? Тогда что может произойти непредвиденное?
У меня есть ещё одно предположение, это элемент структурирования программы, для улучшения понимания ее логики, но тогда при частом использовании такого приема

ухудшается быстродействие программы. Объясните пожалуста с какой целью записывается стр.4.?

for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {                                       //стр.1
       OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);                                   //стр.2
       if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber)  continue;  //стр.3 Оп-р А.
       if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)             //стр.4 Оп-р Б.
                   if (OrderType() == OP_BUY || OrderType() == OP_SELL)                //стр.5 Пример нужного оператора
                                                 Profit += OrderProfit();              //стр.6 Пример нужного действия
        }                                                                              //стр.7
 
Vinin:

На счет реала трудно сказать не зная о многих вещах. Но при первом приближении о 50% можно говорить. В смысле о повторении результата.

Ясно,спасибо!
 
pension:
Вопрос. Почему спецы пишут оператор Б (основное условие стр.4) вслед за оператором А?

оператор continue заканчивает текущую итерацию цикла for при не равенстве названия текущего инструмента или не равенстве магика, т.е. ниже оператора continue код не будет выполняться до тех пор пока не "наш ордер", второй оператор if проверяет одновременное выполнение условий

немного мудреный код, посмотрите ветку https://www.mql5.com/ru/forum/131859, там много толково написанных функций

 

Есть (пишу) индикатор, который по мере необходимости имитирует нажатие клавиатуры через keybd_event(...). Индикатор должен стоять на нескольких графиках. Так вот, если открыт другой график, даже без индикатора, а график с индикатором скрыт, это нажатие посылается в это другое, активное окно и не посылается в закрытое, с индикатором. А если запустить индикатор на нескольких графиках, то вообще будет...!!!

Вопрос такой, как индикатору узнать? что его график неактивен, чтобы хотя бы заблокировать эту посылку или, если уж посылать, то уж посылать это нажатие адресно в своё, неактивное окно?

 
pension:
Уважаемые Профи. Ниже фрагмент советника, который часто повторяется в нём, в разных местах, для разных целей.
Вопрос. Почему спецы пишут оператор Б (основное условие стр.4) вслед за оператором А? Или я чего то недопонимаю, или это просто перестраховка-уточнение,
или они знают о каких нибудь подводных камнях? Тогда что может произойти непредвиденное?
У меня есть ещё одно предположение, это элемент структурирования программы, для улучшения понимания ее логики, но тогда при частом использовании такого приема

ухудшается быстродействие программы. Объясните пожалуста с какой целью записывается стр.4.?



Лучше всего сам проверь работу этого сова с 4-ой стр, без 4-ой стр... в тестере, на демо - не важно... Два всего варианта - пусть поработают параллельно в одно и тоже время, на одном и том же инструменте... Потом сюда выложи резы этих двух вариантов. Похоже просто на перестраховку... Ведь если мы прошли через условие А, то уже смело можно переходить на строку №5 - перестраховка...
 

Что-то совсем запутался с оптимизацией.

Задача - посмотреть как советник будет работать на заданном периоде, результат пока не важен.

Есть начальный баланс - 10000$. Один оптимизируемый параметр. Ставлю ограничивающие условие - минимальный баланс 1000$. Тестер прогоняет и говорит "безрезультатно". Ок. Запускаю тестирование - и вижу, что максимальная просадка 532$, а конечный баланс - 9378$. Т.е. баланс на периоде всегда больше 1000$, но тестер при оптимизации его не показывает. Почему? Поиск по форумам показывает, что как бы такой проблемы и нет, а значит не так понимаю смысл "минимальный баланс"...

Причина обращения: