Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
"А открыть ордер по другому инструменту в тестере нельзя в силу того, что неизвестно по какой цене его открывать, так как цена других символов не моделируется".
Неужели вот такого примера не достаточно iOpen("USDCHF",1,0) для определения текущей цены другой пары. Точнее все-равно не поймать, по той простой причине, что выполнение програмы происходит с приходом нового тика в той паре, на которой висит советник. Да это не точно, но +- пару пипсов можно перекрыть увеличенным значением проскальзывания на эти же пару пипсов.
Но при тестировании оффлайн, то есть работе с тестером, все что можно получить - это данные неродного инструмента, открыть же ордер на нем хотя бы по цене открытия бара уже нельзя. Конечно, стратегию можно и в онлайне прогнать, но на это уйдет немерено времени. Можно в excel загнать кучу данных и условий, однако это не очень удобно. Я подумал, может есть какое готовое решение для такого спектра задач, но увы, пока ничего не нашел.
Единственный выход - это писАть эксперта для тестера, т.е. использовать собственные функции открытия и закрытия позиций. Информацию же о всех открытых позах хранить в массивах. Соответсвенно профит, залог и свободные средства считать по формулам на каждом баре. Моделировать естественно по ценам открытия. Можно даже все операции заносить в лог-файл, а в конце формировать отчёт. Потом после тестирования и оптимизации заменить все функции на стандартные.
Я подумал, может есть какое готовое решение для такого спектра задач, но увы, пока ничего не нашел.
Я сейчас занимаюсь реализацией похожего проекта, и уже наткнулся на несколько "подводных камней".
Чем закончится - еще не знаю.
"А открыть ордер по другому инструменту в тестере нельзя в силу того, что неизвестно по какой цене его открывать, так как цена других символов не моделируется".
Неужели вот такого примера не достаточно iOpen("USDCHF",1,0) для определения текущей цены другой пары. Точнее все-равно не поймать, по той простой причине, что выполнение програмы происходит с приходом нового тика в той паре, на которой висит советник. Да это не точно, но +- пару пипсов можно перекрыть увеличенным значением проскальзывания на эти же пару пипсов.
Думаю, дело тут в не том,чтобы определить время открытия по цене открытия бара, а в принципе работы тестера. Я , конечно, не разработчик, но, судя по имеющейся информации, представляю дело примерно так:
Тестер - виртуальная машина, на вход которой подаются данные: сфрмированная тестовая последовательность тиков - .fxt - файл, и параметры символа и советника, данные о сервере. А он обрабатывает их в едином потоке. За счёт этого достигается высокая скорость работы тестера.
В случае тестиравания N инструментов, надо сформировать N тестовых последовательностей, запустить параллельно N тестеров, да ещё синхронизировать их работу во времени с помощью головного модуля-надстройки, что потребует , как минимум, в N раз больше ресурсов памяти и времени. И это не зависит от способа тестирования - по всем тикам или по открытию, просто в последнем случае тестовая последовательность будет короче. Конечно, всё это мои домыслы, во-всяком случае, думаю, что дело выглядит не так просто, как Вам кажется.
Переделывать сейчас тестер под мультивалютность, значит начинать рабрту почти с нуля, а они и так намучились. Тем более, что на повестке дня стоит задача создания MT5 с MQL5, вот там, я думаю, разработчики постараются устранить столь серьёзный недостаток MT4.
Единственный выход - это писАть эксперта для тестера, т.е. использовать собственные функции открытия и закрытия позиций. Информацию же о всех открытых позах хранить в массивах. Соответсвенно профит, залог и свободные средства считать по формулам на каждом баре. Моделировать естественно по ценам открытия. Можно даже все операции заносить в лог-файл, а в конце формировать отчёт. Потом после тестирования и оптимизации заменить все функции на стандартные.
Я подумал, может есть какое готовое решение для такого спектра задач, но увы, пока ничего не нашел.
Я сейчас занимаюсь реализацией похожего проекта, и уже наткнулся на несколько "подводных камней".
Чем закончится - еще не знаю.
Если не секрет, то насколько далеко Вы продвинулись и какие "подводные камни" встретились?
Продвинулся уже почти до конца - советник тестируется (и оптимизируется) на необходимом периоде сам.
Мультивалютным тестированием не занимался, но там все будет аналогично, просто сложнее будет составить синхронизированную тиковую последовательность.
Либо Mql4 + C++ +месяц работы...
Либо Mql4 + C++ +месяц работы...
Теперь я вдохновлен - неделя это более приемлимо.
М-дя... Два дня ковыряния FOREXTESTERa, AMIBROKERa, и WelthLab кончательно убедили меня что лучше MT ничего нет... Бесцельно убитые выходные.. .
Может все-таки разработчики сделают нас счастливыми и когда-нибудь добавят возможность мультивалютного тестирования? Ну хоть в каком-нибудь пусть усеченном виде? Ну хоть просто через возможность красиво объединять результаты тестирования отдельных пар?
Читал что, для мультивалютного тестирования, мол, требуются несметные вычислительные мощности и т.д. Но ведь можно же ограничить портфельное тестирование напр. моделью "по ценам открытия" + крупными ТФ или еще как. Вряд ли это будет так "прожорливо". ... Или тут просто-принципиально - "фигвам", кушайте что дают?)