Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Приветствую всех.
Вопрос - хочу использовать в советнике методы класса CTrade. Какие команды нужно прописать в коде для этого?
Много экперементировал с #include, #import... Пока ничего не выходит :(
Приветствую всех.
Вопрос - хочу использовать в советнике методы класса CTrade. Какие команды нужно прописать в коде для этого?
Много экперементировал с #include, #import... Пока ничего не выходит :(
Пример эксперта "MACD Sample" Вам в помощь.
Подключаем модуль так
#include <Trade\Trade.mqh>
объявляем переменную одним из двух вариантов (в зависимости от алгоритма и необходимости применения определенных особенностей реализации)
Можно как самостоятельный объект, а можно как составную часть основного класса.
Пример закрытия позиции (подробно в коде)
m_trade.PositionClose(Symbol())
Пример модификации позиции (подробно в коде)
m_trade.PositionModify(Symbol(),sl,tp)
PS
Можно также подробно изучить начинку класса CExpert.
Что это значит?
2011.07.15 13:30:35 2011.07.08 00:00:01 Infinite Sleep loop detected while testing.
Что это значит?
Теоретически это повод для дисквалификации участника чемпионата (как минимум проблемы при автоматическом тестировании эксперта), а по сути неправильная работа со sleep().
Советую поподробней изучить эту стать (возможно и другие).
Что качается заданного вопроса то вот цитата из статьи:
Функция Sleep() в тестере
Функция Sleep() позволяет в эксперте или скрипте приостановить выполнение mql5-программы на некоторое время при работе на графике. Это может понадобиться при запросе каких-либо данных, которые в момент запроса еще не готовы и необходимо дождаться момента их готовности. Подробный пример использования функции Sleep() можно посмотреть в разделе Организация доступа к данным.
В тестере же вызовы Sleep() не задерживают процесс тестирования. При вызове Sleep() "проигрываются" сгенерированные тики в пределах указанной задержки, в результате чего могут сработать отложенные ордера, стопы и т.д. После вызова Sleep() cмоделированное в тестере время увеличивается на интервал, указанный в параметре функции Sleep.
Если в результате выполнения функции Sleep() текущее время в тестере вышло за конец периода тестирования, то будет получена ошибка "бесконечный цикл в Sleep". При получение такой ошибки результаты тестирования не отбрасываются, все вычисления производятся в полном объеме (количество сделок, просадка и т.д.) и результаты данного тестирования передаются терминалу.
Функция Sleep() не будет работать в OnDeinit(), так как после ее вызова тестерное время гарантированно окажется за пределами интервала тестирования.
Товарищи!
Собираюсь дописать анализ истории в эксперт. Подскажите, как организовать вывод данных?
Ну скажем максимально длинный бар за год истории. Как получить значение понятно, а куда выводить? Удобнее было бы прямо на график, это возможно? Или функцией Print в журнал, но что-то не соображу, как это дело будет работать? Постоянно будет перепечатывать значения? Надо там что-ли какое условие хитрое для печати задать? В общем что посоветуете?
Товарищи!
Собираюсь дописать анализ истории в эксперт. Подскажите, как организовать вывод данных?
Ну скажем максимально длинный бар за год истории. Как получить значение понятно, а куда выводить? Удобнее было бы прямо на график, это возможно? Или функцией Print в журнал, но что-то не соображу, как это дело будет работать? Постоянно будет перепечатывать значения? Надо там что-ли какое условие хитрое для печати задать? В общем что посоветуете?
Попробуйте воспользоваться функцией Comment(). Она размещает текст в верхнем левом углу графика.
В ней также можно использовать символ "\n" для перехода на следующую строку. К сожалению, "\t" не работает.
Попробуйте воспользоваться функцией Comment(). Она размещает текст в верхнем левом углу графика.
В ней также можно использовать символ "\n" для перехода на следующую строку. К сожалению, "\t" не работает.
Не подскажите, сколько данных можно запихать в один массив? Массив структуры MqlRates, собираюсь запихать всю историю часовых баров с 2009го года, влезет?
п.с. Еще чего-то с тестером стратегий, по выходным не работает из за недоступности сервера или у меня чего сглюкнуло? В пятницу вроде работало как надо))
1. Вроде как всю. Если и есть ограничения, то на уровне пороговых значений int или long. Столько оперативки в компе нет. =)
2. Более точнее опишите проблему с неработоспособностью тестера. Коды ошибок, скрины...