Создание эмулятора сервера

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

Однако в результате пришел к выводу что это сделать очень не легко. Если просто писать индикатор или эксперта для этих целей? Индикатор не поддерживает зацикливание (ни в процедуре start ни в процедуре init), которое необходимо чтобы равномерно выводить эмулируемые бары с одинаковым промежутком времени. Эксперт поддерживает зацикливание, но нету доступа к буферам графиков чтобы вывесьти график котировок. Да и еще большая проблема, что индикаторы не будут работать на эмулируемой истории, так как они испольуют функции типа Close[] и др , которые естественно берутся с реального времени. В любом случае все необходимые индикаторы (и эксперты если захочется их потестировать) придется пересобачивать чтобы они были способны к такой эмуляции.

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

Хорошим выходом было бы эмулировать сами котировки и подавать их на нужный порт компа. Однако сколько я не искал так и не нашел ничего по этой теме. Какой используется порт? и в каком виде передаются данные, зашиврованные или нет? Если нет то почему бы не опубликовать используемый протокол?
 
Ткните мышкой в график, нажмите кнопку Home,
затем нажмите и держите кнопку F12.
Такой вариант вас устроит?
 

а как вариант ... эксперт int start() { return(0);}
затем тестер... визуализация... все происходит отрисовка по одному бару
все индикаторы работают...

 
Rosh">Визуализация тестирования. Ручная торговля.
Всё это замечательно. Объем проделанной работа внушает уважение. Однако, при всё моём уважении, есть одно НО...
Этот проект выглядит как история про то как Левша блоху английскую подковал - работа тонкая, филигранная, но вот только не пляшет блоха после этого.
Потому вопрос-просьба к разработчикам сделайте, пожалуйста, возможность ускоренной эмуляции ручной торговли в самой программе без ухищрений с объектами и пр. Мне кажется, возможно в силу непонимания сложности вашего продукта, что это должно быть не очень трудно.
 
У меня есть реализованый эмулятор торговли, правда платформа совершенно другая (не MT4). Ну и только для механических ТС. Хотя, по идее, несложно переколбасить под ручную торговлю. Индикаторы и торговые системы сейчас пишутся на C++ (в перспективе хочу переделать на VBA/VBScript) - могу предположить, что после MQL это несколько непривычно. Хотя реализовывать индикаторы и торговые системы в моей системе намного легче, реализованы многие вещи которых нету в MT4 - в плане объектной модели.
и что меня лично конкретно убивает в MT4 - это отсутствие отладчика экспертов и необходимость знать множество "магических" мелочей.
что еще есть полезного - все результаты тестирования сохраняются в базе данных, соответственно можно сравнивать "на глаз" разные системы протестированные в прошлом. Правда, за счет использования БД тестирование работает на порядок медленнее.
 
А чем плохо указанный способ визуального теста? Там же потиковая эмуляция идет и все абсолютно видно.

Вы ее пробовали?
Причина обращения: