Перейти к содержанию

Тестирование советников - тема для программистов


Рекомендуемые сообщения

Тестирование советников - тема для программистов Опубликовано (изменено)

[Обсуждение] Тестирование/оптимизация советников: общие вопросы





Небольшая разработка для тестирования мультивалютных советников.
Сразу оговорюсь, это не панацея, требуется понимать код советника чтоб подружить его с этим механизмом тестирования.

Как это работает:
Для тестирования эксперта на нескольких валютах потребуется подготовить несколько терминалов, то есть например для тестирования корзины 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.mqh

void 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

Изменено пользователем Pavel888
Ссылка на сообщение
Поделиться на другие сайты

  • Ответов 274
  • Создано
  • Последний ответ

Популярные авторы

Популярные авторы

Популярные посты

Имхо виноват генетический алгоритм ! Но без него время теста увеличится на порядок... Я тестирую сначала быстро и грубо, но в широком диапазоне с широким шагом, потом смотрю на влияние переменных на

Перейти

Вы хорошие и правильные вопросы задаете, себе и нам. Первое самое Важное оптимизация кода советника, постарайтесь убрать все лишние, графические обьекты, функции комментариев и прочее не относящееся к

Перейти

Rever27 я, например, делаю так: double OnTester() { double ret=0.0; if (TesterStatistics(STAT_EQUITY_DD)>0) ret = TesterStatistics(STAT_PROFIT) / TesterStatistics(STAT_EQUITY_DD); else

Перейти
Тестирование советников - тема для программистов Опубликовано (изменено)


Есть ещё вариант: Прогнать советника по всем валютным парам и результаты соединить в один график при помощи анализатора портфеля. А в анализаторе уже можно извращаться с ММ как угодно.



Для советника типа BasketFX это вообще не вариант Изменено пользователем Мерлин
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано (изменено)

Собственно ветка и затеяна для тестирования "сложных" советников, с которыми иначе не справиться.

Изменено пользователем Мерлин
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано


Есть ещё вариант: Прогнать советника по всем валютным парам и результаты соединить в один график при помощи анализатора портфеля. А в анализаторе уже можно извращаться с ММ как угодно.

В чем было бы тогда преимущество мультивалютного советника если б он одинаково эффективно работал в сингл-валютном исполнении? ;)
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано

Спред при тестировании = текущий спред брокера по паре на момент тестирования?

Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано


Спред при тестировании = текущий спред брокера по паре на момент тестирования?

Да, МТ4 тестер работает как обычно.
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано

Я правильно понимаю, что таким образом можно синхронизировать балланс и эквити, но действительно мультивалютные операции - например, закрытие корзины ордеров по разным валютам при достижении общего ТП или СЛ - протестировать не удастся? Ну, или надо советник писать специально под работу с этой библиотекой.

Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано (изменено)


Я правильно понимаю, что таким образом можно синхронизировать балланс и эквити, но действительно мультивалютные операции - например, закрытие корзины ордеров по разным валютам при достижении общего ТП или СЛ - протестировать не удастся? Ну, или надо советник писать специально под работу с этой библиотекой.


И да и нет. Разработка позволяет синхронизировать любые параметры советника через установку глобально-видимых переменных. Соответственно для синхронизации баланса, экваити или закрытия корзины по общему ТП функции получения этих параметров нужно адаптировать. В частности этот метод писался непосредственно для тестирования BackedFX советника который как раз и закрывает корзину по общему тейкпрофиту. Пример такой адаптации приведен в SmartDev.MultiCurrencyTester.ExpertExample.mq4

п.с. если не понятно как реализовать ту или иную синхронизацию - опишите конкретнее проблему, приведу пример как реализовать такое взаимодействие. Изменено пользователем b0a
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано

Спасибо. Если за это браться, надо браться основательно, а для этого надо сначала созреть :)
Было бы интересно посмотреть на результаты тестов, полученные такой методикой -- BackedFx или какого другого сова.
В частности, какой выигрыш получается за счет мультивалютности - и есть ли он вообще?
У меня было впечатление, что мультивалютность зачастую просто удобна для разработчиков роботов - тем, что освобождает их от необходимости демонстрировать красивые бектесты :)

Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано


В частности, какой выигрыш получается за счет мультивалютности - и есть ли он вообще?
У меня было впечатление, что мультивалютность зачастую просто удобна для разработчиков роботов - тем, что освобождает их от необходимости демонстрировать красивые бектесты :)


Да, а также обеспечивать нормальную доходность и устойчивость алгоритма бота к сливам.
Зарядил 2 чемодана денег в депо, открыл микроордера по всем парам - и типа успешно работаем...
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано

Мультивалютность также может быть вызвана применением запрета встречных сделок (локирования). Это если встречные сделки серьёзно необходимы.

Брокер может эмулировать мультивалютность на МТ5-сервере, вводя дополнительные пары с префиксом, например EURUSD и EURUSDk, где к - дополнительные префикс. Тогда можем открывать бай на одной квази-паре, а селл на другой (с префиксом). Но это может быть запрещено, поэтому возможен вариант использования сильно коррелированных пар для локовых сделок.

А вообще, конечно, вопрос мультивалютной торговли не так уж и прост.

Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано

Было бы интересно посмотреть на результаты тестов, полученные такой методикой -- BackedFx или какого другого сова.

Результатами теста BackedFx делился в профильной теме. ApMSoft раскритиковал, сказал котировки нужно подготовить специальные, своп-фри :) Я собсно специально для него и создал эту тему, отправил ему в личку подготовленную версию BasketFX Mod M5. Пока ответа не было, но он обещал заняться. Я сейчас так же запустил на тест BasketFX Mod M5 со своими не кошерными котировками на USD корзине, результаты чуть лучше чем у оригинала но все равно если использовать стандартный ММ - слив. Если кто поделится секретом создания правильных котировок - протестирую на них.
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано


Если кто поделится секретом создания правильных котировок - протестирую на них.


Секрет прост - берем прогу http://www.tickstory.com/ , копошимся в настройках пары при экспорте..
Хотелось бы посмотреть на исходники длл, что б не повторять труд :)
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано

Хотелось бы посмотреть на исходники длл, что б не повторять труд :)

Да не вопрос, наслаждайтесь :) https://github.com/roman-rudenko/MultiCurrencyTester
Прошу принять во внимание что код писался наспех и ни о каких архитектурных красотах речь не идет. Если есть желание дорабатывать - пишите в личку, так как с текущего кода в его состоянии делать форки - смерти подобно :)
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано


Хотелось бы посмотреть на исходники длл, что б не повторять труд :)

Да не вопрос, наслаждайтесь :) https://github.com/roman-rudenko/MultiCurrencyTester
Прошу принять во внимание что код писался наспех и ни о каких архитектурных красотах речь не идет. Если есть желание дорабатывать - пишите в личку, так как с текущего кода в его состоянии делать форки - смерти подобно :)
А в ответ тишина... Видимо скоро увидим коммерческую реализацию продукта, без "повторения труда" :)
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано


А в ответ тишина... Видимо скоро увидим коммерческую реализацию продукта, без "повторения труда" :)


Да не, на самом деле отвлекся на одновалютное тестирование :)
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано

На досуге планирую допилить библиотеку для тестирования советника Correlation. Если есть другие мультивалютные разработки, заслуживающие внимания - делитесь, будем тестировать. В BasketFX разочаровался, сливает стабильно в тестах...

Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано (изменено)

У меня вообще какой то кризис и депрессия.. Давно хочу попробовать вот это http://www.forexfactory.com/showthread.php?t=391229 , но никак не соберусь с силами. Там есть сова.


Добавлено: 31-03-2013 18:43:27

напишу здесь, а не в ветках про ретиколу - там восновном овощи.
мне кажется глупым использование корзин, в меньшей степени колец - этим мы привязываемся к одной валюте, и пропадает весь смысл многовалютности.. если делать корзину, то из наименее коррелированных валют, каких найдем немного..
шаг в 15 пунктов показал себя хорошо на примерно годовом тестировании. Изменено пользователем 2nb
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано


На досуге планирую допилить библиотеку для тестирования советника Correlation. Если есть другие мультивалютные разработки, заслуживающие внимания - делитесь, будем тестировать. В BasketFX разочаровался, сливает стабильно в тестах...


Разработок нет, есть идеи :) Мысль такая, давно у меня бродит. 1. Набираем корзину коррелирующих валютных пар. 2. Балансируем ее относительно рынка. Примерно половину покупаем, остальное продаем и лотность каждой пары подбираем так, чтобы за некоторый промежуток корзина ходила в четком канале. 3. Торгуем канал - при отклонении на определенное расстояние от центра входим по направлению к центру. Если не получилось, выходим по СЛ.
Идея - при должном исполнении - должна быть рабочая, но работы много.
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано

Тоже есть идея. Основа идеи в том, что после начала кризиса и снижения ставок ЦБ почти всех банков мира осталось не так много стран с хорошей процентной ставкой. Так вот, смотрим, например, на австралийский доллар. После 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 для меня очевидно. Да и свопы у нас будут только положительные, что на дистанции хотя бы в несколько месяцев принесет дополнительно несколько процентов прибыли.

Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано (изменено)

Тема ожила, это хорошо :)

Разработок нет, есть идеи :) Мысль такая, давно у меня бродит. 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. Изменено пользователем b0a
Ссылка на сообщение
Поделиться на другие сайты

  • 1 year later...
Тестирование советников - тема для программистов Опубликовано (изменено)

Два решения использовать новости для тестера.
1) Простое-
Чудесное решение от urdala новостного индюка. Можно писать совы которые требуют новостей и гонять их в тестере и на реале и на демо.
Просто не смог не поделиться. (может я второй раз Америку открываю ))) ).
Новости тянуться с _daylifx.com.

Пример использования индюка ниже. Если индюк возвращает 0 то новостей нет, если 1 то есть новость.

urd001.mq4 - сова
urdala_news_tester3 - индюк

В тестере включить визио и можно любоваться новостями на истории ))))


Update


2) Сложнее

Добрые люди направили копать и накопал как тестить с новостями с forexfactory.com

Сам FFcal индикатор работает только на сейчас и к тестам не имеет никакого отношения.

В тестере используется Calendar.txt и спец программа для его обработки.


=================
Чтобы получить свежий Calendar.txt
1 Способ
Бесплатный скрипт для скачивания и формирования файла с новостями под МТ4
Calendar.txt
_https://www.mql5.com/ru/market/product/15121


2 Способ сложнее
надо скачать 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.mq4
Urdala_News_tester3.mq4
FFcal_plus_FileNews.rar
Download_Calendar.rar

Изменено пользователем dzennn2
  • Лайк 13
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано

Здравствуйте,
Вы видели это:

forex__news_market_clock_2

:)

forex__news_market_clock_2.mq4

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано


Здравствуйте,
Вы видели это:

forex__news_market_clock_2

:)



Судя по описанию

__http://www.mql5.com/en/code/10459

тянет новости с того же сайта, что и urdala _dailyfx.com

так что для сова не будет разницы.

А вот если бы кто подсказал новостной индюк для тестера с _forexfactory.com, был очень признателен.

FFcal работает только на сейчас. Для тестера не подходит.
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано


FFcal работает только на сейчас. Для тестера не подходит.


FFcal работает в тестере с историей, это точно b-)
Раньше тестил несколько сов.
Ему нужны данные за период.
Обычно такие файлы называют "Calendar".
Проблема была лишь в том, где их взять,
т.к. в автоматическом режиме на сайте в нужном формате
не формируются и кто-нибудь их доводил вручную.

У меня завалялся 2007 - 01 Ноября 2013.

Calendar.rar

  • Лайк 3
Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Специальное предложение


  • Рекомендуемые брокеры

  • ×
    ×
    • Создать...