
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
MetaTrader 5 Client Terminal build 381
...
MQL5: Обновлена стандартная библиотека: методы Type() классов CDealInfo, CHistoryOrderInfo, COrderInfo и CPositionInfo переименованы соответственно в DealType(), OrderType() и PositionType().
...
В виду того, что модель опирается на базовые торговые классы, любые, даже не значительные изменения в их интерфейсах, оказываются критичными. В данном случае, ошибку легко исправить, просто изменив метод Type(), на соответствующий OrderType() в файле TableOrders.mqh.
В ближайшее время будет выполнена актуализация кодов прилагаемых к статье, для правильной работы на последних билдах компилятора и терминала.
chr1sch4n: Ошибки нет... ваш код, который вы переписали, идентичен.
В языке C операторы case выпадают, поэтому вы должны вставить оператор break, поэтому Buy должен выпасть до следующего оператора и все равно выполнить заказ.
ссылка: http: //en.wikipedia.org/wiki/Switch_statement ; раздел C, C++, Java, PHP, ActionScript, JavaScript; "это классический пример отсутствия строки break, чтобы обеспечить переход к следующему оператору"
спасибо
Просьба - можно ли перевести ваши комментарии в английских файлах?
Я не могу получить впечатляющий бэктест, показанный в статье. Какие настройки мне нужно сделать?
"Отдельно стоит описать переменную m_timing. В процессе работы эксперта требуется вызывать определенные события через определенные промежутки времени. Функция OnTimer() для этого не подходит, так как для разных моделей могут существовать разные временные интервалы.
Например, некоторые события нужно вызывать каждый новый бар. Для модели, торгующей на часовой графике, такие события должны вызываться каждый час, для модели, торгующей на дневной графике – каждый новый дневной бар. Ясно, что у этих моделей разные временные настройки и каждая должна храниться соответственно в своей модели. Структура t_period, включенная в класс CModel, позволяет хранить эти настройки отдельно, каждую в своей модели.
Вот как выглядит эта структура:
struct t_period { большая структура };
Как видно, она включает в себя обычное перечисление таймфреймов. Для того чтобы узнать, наступил ли новый бар, нужно сравнить время последнего бара, с тем временем, что было записано в структуру t_period. Если время не совпадает, то наступил новый бар, время в структуре надо обновить на время текущего бара и вернуть положительный результат (true). Если время последнего бара и структуры совпадает, это означает, что новый бар еще не наступил и необходимо просто вернуть отрицательный результат (false).
Вот функция, которая работает по описанному алгоритму:
"
Я , конечно, только начинающий программист, но может возможно для определения наступления нового бара делать так(при этом переменную m_timing сделать просто datetime):
Если я ошибся с выводами, заранее извиняюсь, и прошу меня поправить. Если не ошибся - То спасибо этому сайту и в частности всем кто тут работает- статьи, документацию пишет - я начал в чем-то разбираться.
P.S.:Кстати спасибо за отличную статью.
Здравствуйте,
как я могу улучшить модель или функцию Processing() для поддержки парной торговли (другой символ)? Сейчас все работает с индикатором и последующей торговлей только на одном символе. Как я могу добавить Symbol1 и Symbol2, чтобы иметь возможность покупать Symbol1 и продавать Symbol2 одновременно?
Спасибо за помощь
P.S.: Или покупать/продавать Symbol1 на основании поведения индикатора на Symbol2...
Здравствуйте,
как я могу улучшить модель или функцию Processing() для поддержки парной торговли (другой символ)? Сейчас все работает с индикатором и последующей торговлей только на одном символе. Как я могу добавить Symbol1 и Symbol2, чтобы иметь возможность покупать Symbol1 и продавать Symbol2 одновременно?
Спасибо за помощь
P.S.: Или покупать/продавать Symbol1 на основании поведения индикатора на Symbol2...
Исправлено. Спасибо.
Привет,
Спасибо за эту замечательную статью...
В функции ReplacedDelayedOrders есть строка кода: for(int b=0;i<history_orders;b++)
Мне кажется, что это приведет к бесконечному циклу, или я ошибаюсь?
Я думаю, что строка кода должна быть такой: for(int b=0;b<history_orders;b++)
Пока, Т.