b0a Опубликовано 12 марта, 2013 Поделиться Тестирование советников - тема для программистов Опубликовано 12 марта, 2013 (изменено) [Обсуждение] Тестирование/оптимизация советников: общие вопросы Небольшая разработка для тестирования мультивалютных советников.Сразу оговорюсь, это не панацея, требуется понимать код советника чтоб подружить его с этим механизмом тестирования.Как это работает:Для тестирования эксперта на нескольких валютах потребуется подготовить несколько терминалов, то есть например для тестирования корзины USD советника BacketFX Mod потребуется 7 отдельных копий МТ4. Так же потребуется модифицировать код советника что бы обеспечить передачу общих данных между всеми копиями терминала, таких как глобальные переменные, количество ордеров, профит по всем ордерам, баланс, экваити и т.д. - в общем все что необходимо для полноценно работы советника. Дальше технические детали как это реализовать.Содержимое архива:SmartDev.MultiCurrencyTester.Connect.dll - дллка обеспечивающая взаимодействиеSmartDev.MultiCurrencyTester.Connect.mqh - заголовочный файл к этой дллSmartDev.MultiCurrencyTester.ExpertExample.mq4 - пример мультивалютного експертаEquityInTesting.mq4 - пример индикатора отображающего баланс и экваити сумарно по всем валютам тестируемого експертаКак установить:Для работы потребуется MS .NET 4.0 http://www.microsoft.com/en-us/download/details.aspx?id=17851Распаковываем архив в корень папки МТ4.Описание функций из заголовочного файла SmartDev.MultiCurrencyTester.Connect.mqhvoid InitializeTestAPI(int instanceId, int instancesCount, int syncSeconds, string logFilePath);Функция инициализации API. Должна вызываться один раз из функции init() эксперта, параметры: instanceId - номер экземпляра тестируемого советника.должен быть уникальным для каждой тестируемой валютной пары.должен быть в диапазоне от 0 до instancesCount-1например если вы тестируете советник на трех валютных парах то в тестере первой пары указываете instanceId = 0, второй = 1 и третьей соответственно 2 instancesCount - количество экземпляров советника в тесте, в примере выше соответственно instancesCount = 3 syncSeconds - количество секунд по истории, на которое разрешается разным экземплярам советника обгонять друг друга при тестировании. 0 - соответственно тестирование тик в тик без опережения. не-нулевые значения существенно ускоряют тест при уменьшении достоверности logFilePath - полный путь к файлу куда писать информацию о балансе и экваити каждого отдельно взятого экземпляра тестируемого советника. должен быть разным для каждого экземпляра. если вывод в файл не нужен - передаем пустую строку ""void DeinitializeTestAPI();Функция деинициализации, должна быть вызвана из функции deinit() экспертаvoid NextTick(int tick, double balance, double equity);Функция должна вызываться на каждый тик тестируемого советника, параметры: tick - время текущего тика (для синхронизации тестируемых экземпляров), передавать TimeCurrent() balance и equity - исключительно для вывода в файл истории изменения баланса и экваити. если logFilePath в InitializeTestAPI не задан - не используютсяvoid DeclareVariable(string variableName, int variableOperation);Функция декларации переменной, доступной во всех экземплярах эксперта. По умолчанию переменная не нуждается в декларации. При первом использовании переменная декларируется автоматически. Ручная декларация требуеться если необходимо задать математическую операцию над переменной. Примеры будут ниже при разборе тестового эксперта. Параметры: variableName - имя переменной variableOperation - математическая операция (пока доступно две опции VariableOperation_Nothing = 0 и VariableOperation_Sum = 1)double GetVariable(string variableName);Функция получения значения общедоступной переменной, параметры: variableName - имя переменнойvoid SetVariable(string variableName, double variableValue);Функция установки значения общедоступной переменной. Параметры: variableName - имя переменной variableValue - значение переменнойТипы операция над переменными:int VariableOperation_Nothing = 0;int VariableOperation_Sum = 1;Удобные обертки подменяющие в тестинге операции с глобальными переменными на операции с APIПросто добавь воды заменить вызов стандартных функций GlobalVariableGet и GlobalVariableSet на этиdouble GlobalVariableGetExt(string name)double GlobalVariableSetExt(string name, double value)Как пользоваться:Разберем пример эксперта из архива: InitializeTestAPI(0, 1, 60, "");Инициализируем тестирование советника из одной валюты, погрешность синхронизации 60 секунд (одна минутная свеча), лог файл не пишем.Другой пример: InitializeTestAPI(2, 5, 0, "d:\testlogs\balance_2.log");Инициализируем третий из пяти экземпляров советника, без погрешности синхронизации (тик в тик), выводим баланс и экваити в лог файл. Соответсвенно функции инициализации для всех пяти валют этого советника будут выглядеть так: InitializeTestAPI(0, 5, 0, "d:\testlogs\balance_0.log"); InitializeTestAPI(1, 5, 0, "d:\testlogs\balance_1.log"); InitializeTestAPI(2, 5, 0, "d:\testlogs\balance_2.log"); InitializeTestAPI(3, 5, 0, "d:\testlogs\balance_3.log"); InitializeTestAPI(4, 5, 0, "d:\testlogs\balance_4.log");Кому не привычна нумерация с нуля - простите, так заведено в практически всех языках программирования в том числе и в MQLФункция InitializeTestAPI поставит терминал в ожидание инициализации остальных экземпляров советника. Тест начнется только после того как все экземпляры будут проиницализированны. Выглядеть это будет как подвисший МТ4. После того как стартанет последний экземпляр - все остальные тоже начнут тест.Лог файл баланса пишется в csv-формате: tickTime;balance;equaity;В будущем придумаем покошернее аналитику :)Идем дальше: DeclareVariable("TotalProfitVariableName", VariableOperation_Sum); DeclareVariable("OrdersCountVariableName", VariableOperation_Sum); DeclareVariable("vGrafBalance", VariableOperation_Sum); DeclareVariable("vGrafEquity", VariableOperation_Sum);Декларируем несколько переменных для передачи между экспертами. Несколько слов о VariableOperation:VariableOperation_Nothing - значение по умолчанию и в ручной декларации нет необходимости, GetVariable возвращает последние значение которое установили любой из экземпляров для переменной функцией SetVariable.VariableOperation_Sum - в этом случае GetVariable возвращает сумму значений установленных каждым экземпляром. Например если нам нужно получить суммарный экваити или баланс по всему советнику по всем валютам.Идем дальше: в функции старт NextTick(TimeCurrent(), AccountBalance(), AccountEquity());передаем информацию о текущем времени экземпляра, балансе и экваити. Без вызова этой фунции каждый тик не будут корректно работать GetVariable и SetVariable SetVariable("vGrafBalance", AccountBalance()); SetVariable("vGrafEquity", AccountEquity());Устанавливаем текущее значение баланса и экваити в общедоступных переменных GlobalVariableSet("vGrafBalance", GetVariable("vGrafBalance")); GlobalVariableSet("vGrafEquity", GetVariable("vGrafEquity"));Получаем суммарные значения баланса и экваити и запихуем в глобальную переменную - там их поиспользует индикатор EquityInTesting.mq4. Суммарные значения по переменным возвращаются поскольку выше мы их задекларировали как VariableOperation_Sum. double varValue = GlobalVariableGetExt("VarName"); GlobalVariableSetExt("VarName", 10);Устанавливаем и получаем значение общедоступной переменной. Суммирования происходить не будет так как переменная задекларирована автоматически как VariableOperation_NothingФункции SetVariable и GetVariable являються синхронизируемыми. Тоесть к примеру если какой либо терминал отстал от остальных на значение секунд более чем syncSeconds из InitializeTestAPI - остальные терминалы при попытке прочитать или установить общую переменную будут ждать отставшего. Таким образом обеспечивается мультивалютная консистентность тестирования по всем парам.Ниже примеры реализации функций, возвращающих общий профит по всем валютам эксперта и общее количество ордеров. double GetTotalProfit() и int GetOrdersCount()Для того что бы следить за изменением баланса и экваити запускаем тестирование в визуальном режиме и кидаем на график индикатор EquityInTesting.mq4. не забываем перенести из примера работу с глобальными переменными vGrafBalance и vGrafEquity.Проблемы использования:syncSeconds = 0 сильно снижает быстродействие, предлагаеться использовать только для советников которым критична синхронизация тик в тик, например для мультивалютных хеджеров-скальперов работающих на несоответсвии спредов разных ДЦ. Для остальных можно делать быстрый проход с ненулевым значением и отдельно тестировать спорные участки с syncSeconds = 0.В случае исключительных ситуаций в корне папки МТ4 появиться файл SmartDev.MultiCurrencyTester.Connect.logЕго можно почитать самому и если не понятно - прислать мне, все починим :)Если есть вопросы - велкам.MultiCurrencyTester_1.0.0.0.zip Изменено 9 января, 2018 пользователем Pavel888 Ссылка на сообщение Поделиться на другие сайты More sharing options...
ApMSoft Опубликовано 13 марта, 2013 Поделиться Тестирование советников - тема для программистов Опубликовано 13 марта, 2013 (изменено) Есть ещё вариант: Прогнать советника по всем валютным парам и результаты соединить в один график при помощи анализатора портфеля. А в анализаторе уже можно извращаться с ММ как угодно. Для советника типа BasketFX это вообще не вариант Изменено 13 марта, 2013 пользователем Мерлин Ссылка на сообщение Поделиться на другие сайты More sharing options...
ApMSoft Опубликовано 13 марта, 2013 Поделиться Тестирование советников - тема для программистов Опубликовано 13 марта, 2013 (изменено) Собственно ветка и затеяна для тестирования "сложных" советников, с которыми иначе не справиться. Изменено 13 марта, 2013 пользователем Мерлин Ссылка на сообщение Поделиться на другие сайты More sharing options...
b0a Опубликовано 13 марта, 2013 Автор Поделиться Тестирование советников - тема для программистов Опубликовано 13 марта, 2013 Есть ещё вариант: Прогнать советника по всем валютным парам и результаты соединить в один график при помощи анализатора портфеля. А в анализаторе уже можно извращаться с ММ как угодно.В чем было бы тогда преимущество мультивалютного советника если б он одинаково эффективно работал в сингл-валютном исполнении? ;) Ссылка на сообщение Поделиться на другие сайты More sharing options...
Lexuz77 Опубликовано 13 марта, 2013 Поделиться Тестирование советников - тема для программистов Опубликовано 13 марта, 2013 Спред при тестировании = текущий спред брокера по паре на момент тестирования? Ссылка на сообщение Поделиться на другие сайты More sharing options...
b0a Опубликовано 13 марта, 2013 Автор Поделиться Тестирование советников - тема для программистов Опубликовано 13 марта, 2013 Спред при тестировании = текущий спред брокера по паре на момент тестирования?Да, МТ4 тестер работает как обычно. Ссылка на сообщение Поделиться на другие сайты More sharing options...
loopsider Опубликовано 18 марта, 2013 Поделиться Тестирование советников - тема для программистов Опубликовано 18 марта, 2013 Я правильно понимаю, что таким образом можно синхронизировать балланс и эквити, но действительно мультивалютные операции - например, закрытие корзины ордеров по разным валютам при достижении общего ТП или СЛ - протестировать не удастся? Ну, или надо советник писать специально под работу с этой библиотекой. Ссылка на сообщение Поделиться на другие сайты More sharing options...
b0a Опубликовано 18 марта, 2013 Автор Поделиться Тестирование советников - тема для программистов Опубликовано 18 марта, 2013 (изменено) Я правильно понимаю, что таким образом можно синхронизировать балланс и эквити, но действительно мультивалютные операции - например, закрытие корзины ордеров по разным валютам при достижении общего ТП или СЛ - протестировать не удастся? Ну, или надо советник писать специально под работу с этой библиотекой. И да и нет. Разработка позволяет синхронизировать любые параметры советника через установку глобально-видимых переменных. Соответственно для синхронизации баланса, экваити или закрытия корзины по общему ТП функции получения этих параметров нужно адаптировать. В частности этот метод писался непосредственно для тестирования BackedFX советника который как раз и закрывает корзину по общему тейкпрофиту. Пример такой адаптации приведен в SmartDev.MultiCurrencyTester.ExpertExample.mq4п.с. если не понятно как реализовать ту или иную синхронизацию - опишите конкретнее проблему, приведу пример как реализовать такое взаимодействие. Изменено 18 марта, 2013 пользователем b0a Ссылка на сообщение Поделиться на другие сайты More sharing options...
loopsider Опубликовано 20 марта, 2013 Поделиться Тестирование советников - тема для программистов Опубликовано 20 марта, 2013 Спасибо. Если за это браться, надо браться основательно, а для этого надо сначала созреть :)Было бы интересно посмотреть на результаты тестов, полученные такой методикой -- BackedFx или какого другого сова.В частности, какой выигрыш получается за счет мультивалютности - и есть ли он вообще?У меня было впечатление, что мультивалютность зачастую просто удобна для разработчиков роботов - тем, что освобождает их от необходимости демонстрировать красивые бектесты :) Ссылка на сообщение Поделиться на другие сайты More sharing options...
Старик Опубликовано 20 марта, 2013 Поделиться Тестирование советников - тема для программистов Опубликовано 20 марта, 2013 В частности, какой выигрыш получается за счет мультивалютности - и есть ли он вообще?У меня было впечатление, что мультивалютность зачастую просто удобна для разработчиков роботов - тем, что освобождает их от необходимости демонстрировать красивые бектесты :) Да, а также обеспечивать нормальную доходность и устойчивость алгоритма бота к сливам.Зарядил 2 чемодана денег в депо, открыл микроордера по всем парам - и типа успешно работаем... Ссылка на сообщение Поделиться на другие сайты More sharing options...
Мерлин Опубликовано 20 марта, 2013 Поделиться Тестирование советников - тема для программистов Опубликовано 20 марта, 2013 Мультивалютность также может быть вызвана применением запрета встречных сделок (локирования). Это если встречные сделки серьёзно необходимы.Брокер может эмулировать мультивалютность на МТ5-сервере, вводя дополнительные пары с префиксом, например EURUSD и EURUSDk, где к - дополнительные префикс. Тогда можем открывать бай на одной квази-паре, а селл на другой (с префиксом). Но это может быть запрещено, поэтому возможен вариант использования сильно коррелированных пар для локовых сделок.А вообще, конечно, вопрос мультивалютной торговли не так уж и прост. Ссылка на сообщение Поделиться на другие сайты More sharing options...
b0a Опубликовано 20 марта, 2013 Автор Поделиться Тестирование советников - тема для программистов Опубликовано 20 марта, 2013 Было бы интересно посмотреть на результаты тестов, полученные такой методикой -- BackedFx или какого другого сова.Результатами теста BackedFx делился в профильной теме. ApMSoft раскритиковал, сказал котировки нужно подготовить специальные, своп-фри :) Я собсно специально для него и создал эту тему, отправил ему в личку подготовленную версию BasketFX Mod M5. Пока ответа не было, но он обещал заняться. Я сейчас так же запустил на тест BasketFX Mod M5 со своими не кошерными котировками на USD корзине, результаты чуть лучше чем у оригинала но все равно если использовать стандартный ММ - слив. Если кто поделится секретом создания правильных котировок - протестирую на них. Ссылка на сообщение Поделиться на другие сайты More sharing options...
не2nb Опубликовано 20 марта, 2013 Поделиться Тестирование советников - тема для программистов Опубликовано 20 марта, 2013 Если кто поделится секретом создания правильных котировок - протестирую на них. Секрет прост - берем прогу http://www.tickstory.com/ , копошимся в настройках пары при экспорте..Хотелось бы посмотреть на исходники длл, что б не повторять труд :) Ссылка на сообщение Поделиться на другие сайты More sharing options...
b0a Опубликовано 20 марта, 2013 Автор Поделиться Тестирование советников - тема для программистов Опубликовано 20 марта, 2013 Хотелось бы посмотреть на исходники длл, что б не повторять труд :)Да не вопрос, наслаждайтесь :) https://github.com/roman-rudenko/MultiCurrencyTesterПрошу принять во внимание что код писался наспех и ни о каких архитектурных красотах речь не идет. Если есть желание дорабатывать - пишите в личку, так как с текущего кода в его состоянии делать форки - смерти подобно :) Ссылка на сообщение Поделиться на другие сайты More sharing options...
b0a Опубликовано 28 марта, 2013 Автор Поделиться Тестирование советников - тема для программистов Опубликовано 28 марта, 2013 Хотелось бы посмотреть на исходники длл, что б не повторять труд :)Да не вопрос, наслаждайтесь :) https://github.com/roman-rudenko/MultiCurrencyTesterПрошу принять во внимание что код писался наспех и ни о каких архитектурных красотах речь не идет. Если есть желание дорабатывать - пишите в личку, так как с текущего кода в его состоянии делать форки - смерти подобно :)А в ответ тишина... Видимо скоро увидим коммерческую реализацию продукта, без "повторения труда" :) Ссылка на сообщение Поделиться на другие сайты More sharing options...
не2nb Опубликовано 28 марта, 2013 Поделиться Тестирование советников - тема для программистов Опубликовано 28 марта, 2013 А в ответ тишина... Видимо скоро увидим коммерческую реализацию продукта, без "повторения труда" :) Да не, на самом деле отвлекся на одновалютное тестирование :) Ссылка на сообщение Поделиться на другие сайты More sharing options...
b0a Опубликовано 28 марта, 2013 Автор Поделиться Тестирование советников - тема для программистов Опубликовано 28 марта, 2013 На досуге планирую допилить библиотеку для тестирования советника Correlation. Если есть другие мультивалютные разработки, заслуживающие внимания - делитесь, будем тестировать. В BasketFX разочаровался, сливает стабильно в тестах... Ссылка на сообщение Поделиться на другие сайты More sharing options...
не2nb Опубликовано 31 марта, 2013 Поделиться Тестирование советников - тема для программистов Опубликовано 31 марта, 2013 (изменено) У меня вообще какой то кризис и депрессия.. Давно хочу попробовать вот это http://www.forexfactory.com/showthread.php?t=391229 , но никак не соберусь с силами. Там есть сова. Добавлено: 31-03-2013 18:43:27напишу здесь, а не в ветках про ретиколу - там восновном овощи.мне кажется глупым использование корзин, в меньшей степени колец - этим мы привязываемся к одной валюте, и пропадает весь смысл многовалютности.. если делать корзину, то из наименее коррелированных валют, каких найдем немного..шаг в 15 пунктов показал себя хорошо на примерно годовом тестировании. Изменено 31 марта, 2013 пользователем 2nb Ссылка на сообщение Поделиться на другие сайты More sharing options...
loopsider Опубликовано 1 апреля, 2013 Поделиться Тестирование советников - тема для программистов Опубликовано 1 апреля, 2013 На досуге планирую допилить библиотеку для тестирования советника Correlation. Если есть другие мультивалютные разработки, заслуживающие внимания - делитесь, будем тестировать. В BasketFX разочаровался, сливает стабильно в тестах... Разработок нет, есть идеи :) Мысль такая, давно у меня бродит. 1. Набираем корзину коррелирующих валютных пар. 2. Балансируем ее относительно рынка. Примерно половину покупаем, остальное продаем и лотность каждой пары подбираем так, чтобы за некоторый промежуток корзина ходила в четком канале. 3. Торгуем канал - при отклонении на определенное расстояние от центра входим по направлению к центру. Если не получилось, выходим по СЛ.Идея - при должном исполнении - должна быть рабочая, но работы много. Ссылка на сообщение Поделиться на другие сайты More sharing options...
owaa Опубликовано 1 апреля, 2013 Поделиться Тестирование советников - тема для программистов Опубликовано 1 апреля, 2013 Тоже есть идея. Основа идеи в том, что после начала кризиса и снижения ставок ЦБ почти всех банков мира осталось не так много стран с хорошей процентной ставкой. Так вот, смотрим, например, на австралийский доллар. После 2008 года, когда евро и фунт упали на тысячи пунктов по отношению к баксу, австралийский доллар же, наоборот, стоит сейчас гораздо дороже в сравнении практически с любой валютой. А все потому, что достаточно большое количество трейдеров (особенно в банках) любят работать по керри трейд, и покупают AUD на каждом снижении. И в данный момент нет причин, по которым это должно перестать работать. Так вот идея примерно, как и в BasketFX, но только не в бестолковой покупке валют. Идея покупать AUD против всех основных валют, когда поступает "сигнал". "Сигналом" же предлагаю рассматривать сумму RSI всех пар на 30-минутном ТФ. Использовать следующие пары: AUDUSD, AUDNZD, AUDCAD, AUDJPY, AUDCHF, EURAUD,GBPAUD. Для пар, где AUD на втором месте( EURAUD, GBPAUD) брать модуль от (100-RSI). Сумма этих 7 пар должна быть меньше 280. Т.е. вход в сделку сразу по всем парам в тот момент, когда AUD находится в зоне перепроданности относительно корзины валют. Над закрытием корзины надо подумать, а если цена идет против, то дополнительные позиции также открывать по всем парам одновременно либо по определенному количеству пунктов просадки, либо также по сигналу от RSI. То, что система прибыльная легко проверить, посмотрев дневные и недельные графики пар с AUD за последник несколько лет( особенно после 2009 года). Вопрос только, какой нужен депозит для работы с такой просадкой. Но то, что эта система намного лучше, чем BasketFX для меня очевидно. Да и свопы у нас будут только положительные, что на дистанции хотя бы в несколько месяцев принесет дополнительно несколько процентов прибыли. Ссылка на сообщение Поделиться на другие сайты More sharing options...
b0a Опубликовано 1 апреля, 2013 Автор Поделиться Тестирование советников - тема для программистов Опубликовано 1 апреля, 2013 (изменено) Тема ожила, это хорошо :) Разработок нет, есть идеи :) Мысль такая, давно у меня бродит. 1. Набираем корзину коррелирующих валютных пар. 2. Балансируем ее относительно рынка. Примерно половину покупаем, остальное продаем и лотность каждой пары подбираем так, чтобы за некоторый промежуток корзина ходила в четком канале. 3. Торгуем канал - при отклонении на определенное расстояние от центра входим по направлению к центру. Если не получилось, выходим по СЛ.Идея - при должном исполнении - должна быть рабочая, но работы много.Работы действительно много, но она не в кодинге а в подборе параметров корзины. Таких сов написано уже тьма и доработать любую из них под вашу идею сможет любой программист здесь, в том числе и я. После этого прогоним ее на тестах. Если есть конкретные идеи как выполнять подбор параметров корзины - велкам.Идея покупать AUD против всех основных валют, когда поступает "сигнал". "Сигналом" же предлагаю рассматривать сумму RSI всех пар на 30-минутном ТФ. Использовать следующие пары: AUDUSD, AUDNZD, AUDCAD, AUDJPY, AUDCHF, EURAUD,GBPAUD. Для пар, где AUD на втором месте( EURAUD, GBPAUD) брать модуль от (100-RSI). Сумма этих 7 пар должна быть меньше 280. Т.е. вход в сделку сразу по всем парам в тот момент, когда AUD находится в зоне перепроданности относительно корзины валют. Над закрытием корзины надо подумать, а если цена идет против, то дополнительные позиции также открывать по всем парам одновременно либо по определенному количеству пунктов просадки, либо также по сигналу от RSI.А вот это уже хорошо формализованная стратегия, думаю стоит проверить :)Добавлено: 03-04-2013 14:40:16Давно хочу попробовать вот это http://www.forexfactory.com/showthread.php?t=391229 , но никак не соберусь с силами. Там есть сова.Насколько я понял стратегию - там просто одновременно продается или покупается сразу 14 пар по показаниям индикатора. Чтоб потестить это мультивалюного тестера не нужно, просто запускаем 14 тестов по разным парам а потом сводим результаты в один, тула где то на блоге для этого была.Добавлено: 03-04-2013 14:46:34мне кажется глупым использование корзин, в меньшей степени колец - этим мы привязываемся к одной валюте, и пропадает весь смысл многовалютности.. если делать корзину, то из наименее коррелированных валют, каких найдем немного..шаг в 15 пунктов показал себя хорошо на примерно годовом тестировании.Напишите список пар и с удовольствием затестируем ретикулу с такой кастомной "корзиной" и шагом 15. Изменено 3 апреля, 2013 пользователем b0a Ссылка на сообщение Поделиться на другие сайты More sharing options...
dzennn2 Опубликовано 14 июня, 2014 Поделиться Тестирование советников - тема для программистов Опубликовано 14 июня, 2014 (изменено) Два решения использовать новости для тестера.1) Простое-Чудесное решение от urdala новостного индюка. Можно писать совы которые требуют новостей и гонять их в тестере и на реале и на демо. Просто не смог не поделиться. (может я второй раз Америку открываю ))) ).Новости тянуться с _daylifx.com.Пример использования индюка ниже. Если индюк возвращает 0 то новостей нет, если 1 то есть новость.urd001.mq4 - соваurdala_news_tester3 - индюкВ тестере включить визио и можно любоваться новостями на истории ))))Update2) СложнееДобрые люди направили копать и накопал как тестить с новостями с forexfactory.comСам FFcal индикатор работает только на сейчас и к тестам не имеет никакого отношения. В тестере используется Calendar.txt и спец программа для его обработки.=================Чтобы получить свежий Calendar.txt 1 Способ Бесплатный скрипт для скачивания и формирования файла с новостями под МТ4Calendar.txt_https://www.mql5.com/ru/market/product/151212 Способ сложнеенадо скачать Download_Calendar.rar- запускаем EconomicEventsDownloader_v5.1.jar, в этой же папке закачиваются с forefactory.com два файла HistoricalEconomicEvents.txt и FutureEconomicEvents.txt- копируем эти файлы в Terminal/MQL4/FilesВ терминале - на любую валютную пару вешаем скрипт CalConv02 С настройками Зимой с ShiftHr = 5 Calendar.txt создается с 0 GMT и зимой и летом Летом с ShiftHr = 4 Calendar.txt создается с 0 GMT и зимой и летом - в Terminal/MQL4/Files получим Calendar.txt- копируем с Terminal/MQL4/Files/Calendar.txt в Terminal/tester/files (это для тестера) для контроля правильности GMT сравниваем ВРЕМЯ новостей в новом файле Calendar.txt с примером Calendar_GMT_original.txt (есть в архиве Terminal/tester/files)==================Очень выгодно отличается тестер 99% от 90% Alpari. В 90% тестере есть летнее время и надо это учитывать.В 99% нет летнего время и GMT ставится один раз при конверте. Не надо заморачиваться, и можно спокойно тестить на промежутке в несколько лет.В архиве FFcal_plus_FileNews.rar пример универсального кода с авто использованием ffcal для онлайн и calendar.txt для тестера. Urd001.mq4Urdala_News_tester3.mq4FFcal_plus_FileNews.rarDownload_Calendar.rar Изменено 22 марта, 2016 пользователем dzennn2 13 Ссылка на сообщение Поделиться на другие сайты More sharing options...
SStanly Опубликовано 17 июня, 2014 Поделиться Тестирование советников - тема для программистов Опубликовано 17 июня, 2014 Здравствуйте,Вы видели это:forex__news_market_clock_2 :) forex__news_market_clock_2.mq4 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
dzennn2 Опубликовано 17 июня, 2014 Поделиться Тестирование советников - тема для программистов Опубликовано 17 июня, 2014 Здравствуйте,Вы видели это:forex__news_market_clock_2 :) Судя по описанию__http://www.mql5.com/en/code/10459тянет новости с того же сайта, что и urdala _dailyfx.comтак что для сова не будет разницы.А вот если бы кто подсказал новостной индюк для тестера с _forexfactory.com, был очень признателен.FFcal работает только на сейчас. Для тестера не подходит. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Sergey5 Опубликовано 17 июня, 2014 Поделиться Тестирование советников - тема для программистов Опубликовано 17 июня, 2014 FFcal работает только на сейчас. Для тестера не подходит. FFcal работает в тестере с историей, это точно b-)Раньше тестил несколько сов.Ему нужны данные за период.Обычно такие файлы называют "Calendar".Проблема была лишь в том, где их взять, т.к. в автоматическом режиме на сайте в нужном формате не формируются и кто-нибудь их доводил вручную.У меня завалялся 2007 - 01 Ноября 2013.Calendar.rar 3 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти