[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 407
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Во всяком случае, без RefreshRates() мои советники работать не будут. Делаю их зацикленными. Поэтому RefreshRates() обязательна.
Первоначальную подкачку истории произвожу по этому принципу. Потом периодически подкачиваю. Иначе образуются "дыры" в истории, с которой работает эксперт. Почему это происходит - не знаю.
Пробовал использовать RefreshRates() для подкачки. Это работает не всегда.
Но RefreshRates() же служит для обновления переменных рыночного окружения, а не для подкачки. Есс-но что он не подкачает.
Иногда приходит только последний бар.
Если открыт график инструмента, то по нему всегда есть история. Ошибок не было ниразу в таком случае. Ошибка появлялась, когда график требуемого инструмента не открыт.
Здравствуйте.
Хотел задать вопрос по тестированию системы. В общем картину понимаю, но так как не имел реального опыта получения рабочего советника, а все создавал-создавал, тестировал-тестировал... Вообщем, не знаю когда уже можно остановиться.
Советник простой, параметров оптимизации почти нет. Не пипсовка. Торговля велась на D1 в период с 2000-2013 одним минимальным лотом 0,01 при депо в 100$. Получается такой отчет.
Можно ли доверять таким результатам? Всего 300 сделок, но по логике стратегии и таймфрейме в D1 - сильно больше и не должно быть. В стратегии есть всего один параметр оптимизации - лояльность к сигналам. Если сделать систему более строгой к ним, то по идее улучшаются параметры, но сделок становиться всего 175. Можно ли доверять результатам при таком количестве сделок? Или лучше выбрать первый вариант где хуже показатели, но больше сделок?
Или и то и другое полная ерунда и нужно больше мат ожидание и прочее?
на валютной паре EUR/USD Н4 светится " ожидание обновления " и не переключается на другие периоды как быть?
Если во время расчетов в советнике пришли новые тики (при работе функции start()), советник о них (тиках) не узнает. RefreshRates() позволяет использовать последние, обновленные цены, но эта функция не обращается к серверу. Обновляется рыночное окружение известное терминалу. Ни одна функция, кроме торговых, не обращается к серверу
Сложно сказать на счёт выделенного. Это надо Метаквотов спросить.
Мне в MRC заблокировали реальный счёт из-за частого открытия и обновления графика. Это не функции MQL4, но штатные средства просмотра графика. Возможно, например, MarketInfo() обращается к серверу или только часть данных получает из обзора рынка.
====================================
На сколько помню, данные из обзора рынка не обязаны совпадать с Предопределенными переменными. Тогда что и откуда обновляет RefreshRates()?
У меня только один ответ. Обновление происходит подкачкой и сверкой истории с сервера. Многократно в этом убеждался при попытке обновить ей историю. Часто приходил только последний бар. После выгрузки терминала в HST-файле образовалась "дыра". Но если открыть этот график и обновить его, то "дыра" заполнялась. Кстати, при работе RefreshRates() в диспетчере задач можно наблюдать подгрузку данных. Возможно, что сверка не происходит в случае обновления истории функцией RefreshRates(), а при обновлении графика происходит.
Так что, контроллировать надо, если нужна история без дыр в потоке эксперта.
1. Всмысле зацикленными? По сути, любой эксперт, можно сказать, зациклен, т.к. у старта есть цикл. Раз в тик..
2. Сдаётся мне что это Вы торгуете в кухнях, поэтому и образуются дыры в истории. Я замечаю, что у отстойных кухонь такое бывает. А у качественного брокера такой хрени не должно быть.
3. Но RefreshRates() же служит для обновления переменных рыночного окружения, а не для подкачки. Есс-но что он не подкачает.
4. Куда последний бар приходит?
5. Хм. Ну если тянуть рыночные данные через MarketInfo() ошибок, как я понимаю, не должно быть. А если минуя, то есс-но.. Вроде как так. Я ещё не проверял, но логика по ходу такая.2. Это от брокера не зависит. Это особенность терминала и его работа с сервером. Почему-то RefreshRates() обновляет историю не так, как обновление графика.
3. Может уже справку почитаете? Вот ещё раз:
Обновление данных в предопределенных переменных и массивах-таймсериях. Эта функция используется, когда эксперт или скрипт производит вычисления в течение долгого времени и нуждается в обновленных данных. Возвращается TRUE, если данные обновлены, иначе FALSE. Данные могут не обновиться только по той причине, что они соответствуют текущему состоянию клиентского терминала. Эксперты и скрипты работают с собственной копией исторических данных. Копия данных по текущему инструменту создается при первоначальном запуске эксперта или скрипта. При каждом следующем запуске эксперта (напомним, что скрипт выполняется однократно и не зависит от приходящих тиков) первоначально созданная копия обновляется. За то время, пока эксперт или скрипт работает, может прийти один или несколько новых тиков, поэтому данные могут устареть.
4. О чём разговор-то? Разговор об обновлении данных в потоке эксперта.
5. Код эксперта, что выше, показывает, как и где обновляются данные. Если не включать IsRefreshRates, то данные обновляются только в MarketInfo().
Успешно торговал на alpari с ilan 2.0 (1.6) с толковыми настройками, пока не стали приходить предупреждения о частых непродуктивных запросах, которые зря грузят сервер. Оказалось, что при быстром рынке alpari увеличивает минимально возможный уровень выставления стоп-лосс до 2х спредов, что соотвествовало 40 пунктам, иногда менее. Но мой советник, по-видимому, выставляет эту величину в диапазоне 15-55 пунктов, это я понял, полистав код советника. Но alpari это соответственно неустраивало и пригрозили блокировкой, так что приостановил торговлю. Не зная практически mql4, отредактировал просто в коде советника эти строчки, которые мне показались единственными, которые отвечают за проблему, это во вкладке любой ilan, недалеко от начала:
double PrevCl;
double CurrCl;
if (UseTrailingStop) TrailingAlls(TrailStart, TrailStop, AveragePrice);
if ((iCCI(NULL,15,55,0,0)>Drop && ShortTrade)||(iCCI(NULL,15,55,0,0)<(-Drop) && LongTrade)) {
где тупо поменял цифры 15 на 40, чтобы решить проблему, но далее от alpari я узнал, что проблема не решена, то есть я сделал что-то не так, что не удивительно. Подскажите, как правильно отредактировать код советника, чтобы он выставлял уровень стоп-лосс в диапазоне 40-55 пунктов, а не 15-55. Понимаю, что диапазон 40-55 маловат для удобного выставления стоп-лоссов, да и от цены далековато, что уменьшает прибыль. Но выбора особо нету, покидать alpari не хочется, там удобно. В стандартных настройках советника соотвествующего параметра нету.
Здравствуйте.
Хотел задать вопрос по тестированию системы. В общем картину понимаю, но так как не имел реального опыта получения рабочего советника, а все создавал-создавал, тестировал-тестировал... Вообщем, не знаю когда уже можно остановиться.
Советник простой, параметров оптимизации почти нет. Не пипсовка. Торговля велась на D1 в период с 2000-2013 одним минимальным лотом 0,01 при депо в 100$. Получается такой отчет.
Можно ли доверять таким результатам? Всего 300 сделок, но по логике стратегии и таймфрейме в D1 - сильно больше и не должно быть. В стратегии есть всего один параметр оптимизации - лояльность к сигналам. Если сделать систему более строгой к ним, то по идее улучшаются параметры, но сделок становиться всего 175. Можно ли доверять результатам при таком количестве сделок? Или лучше выбрать первый вариант где хуже показатели, но больше сделок?
Или и то и другое полная ерунда и нужно больше мат ожидание и прочее?
10% в год это хорошо или плохо?
Успешно торговал на alpari с ilan 2.0 (1.6) с толковыми настройками, пока не стали приходить предупреждения о частых непродуктивных запросах, которые зря грузят сервер. Оказалось, что при быстром рынке alpari увеличивает минимально возможный уровень выставления стоп-лосс до 2х спредов, что соотвествовало 40 пунктам, иногда менее. Но мой советник, по-видимому, выставляет эту величину в диапазоне 15-55 пунктов, это я понял, полистав код советника. Но alpari это соответственно неустраивало и пригрозили блокировкой, так что приостановил торговлю. Не зная практически mql4, отредактировал просто в коде советника эти строчки, которые мне показались единственными, которые отвечают за проблему, это во вкладке любой ilan, недалеко от начала:
double PrevCl;
double CurrCl;
if (UseTrailingStop) TrailingAlls(TrailStart, TrailStop, AveragePrice);
if ((iCCI(NULL,15,55,0,0)>Drop && ShortTrade)||(iCCI(NULL,15,55,0,0)<(-Drop) && LongTrade)) {
где тупо поменял цифры 15 на 40, чтобы решить проблему, но далее от alpari я узнал, что проблема не решена, то есть я сделал что-то не так, что не удивительно. Подскажите, как правильно отредактировать код советника, чтобы он выставлял уровень стоп-лосс в диапазоне 40-55 пунктов, а не 15-55. Понимаю, что диапазон 40-55 маловат для удобного выставления стоп-лоссов, да и от цены далековато, что уменьшает прибыль. Но выбора особо нету, покидать alpari не хочется, там удобно. В стандартных настройках советника соотвествующего параметра нету.
так и меняйте параметры стоплосса, зачем вы меняете параметры индикатора?
так и меняйте параметры стоплосса, зачем вы меняете параметры индикатора?
догадывался об этом, но не могу их никак найти, эти параметры стоп-лосса