Эмулятор тиков - страница 2

 
Нельзя ли сделать небольшое приложение, позволяющее эмулировать тики в автономном режиме?


Проще договориться с кем-либо из Разработчиков MT за доп.плату, чтобы если и не сделали такой тестер, то хоть сделали бы возможность обновления открытого графика в соответствии с измененным не метатрейдером .hst-файлом (хотя и это сомневаюсь).
Тестер (без обработки торговых операций) с синхронным изменением всех таймфреймов (добавление бара в М1, изменение текущего бара или добавление нового на бОльшем таймфрейме) себе написал, но не хочу выкладывать, т.к. он, мягко говоря, работает убОго с теми возможностями, которые предоставили разработчики МТ4.
А именно попробуйте в автономной работе (offline) последовательно выполнить следующее:
1) Загрузите МТ4;
2) Откройте график, скажем EURUSD на H1;
3) Сохраните на память EURUSD60.hst открытого графика;
3) Найдите старенький файл (без последних котировок) EURUSD60.hst и скопируйте его поверх имеющегося файла открытого графика EURUSD60.hst;
4) А теперь найдите, please, в МТ4 вариант (пункт меню или еще что-нибудь, как некоторые предлагают скрипт на MQL4 или DLL) обновить данные графика, чтобы пропали последние котировки и показались данные только старого EURUSD60.hst. Перезапуск МТ - исключается!

Я нашел и применил один вариант: работать с профилем Default и при изменении котировок вызывать смену профиля на Default (прим. для программистов: выполнение по таймеру команды SendMessage(FindWindow('MetaQuotes::MetaTrader::4.00', 0), WM_COMMAND, 8534h, 0) перегружает профиль Defaul).
Минусы данного варианта:
1) не работает при одном имеющемся в МТ профиле Default, должен быть еще какой-нибудь профиль, при этом в МТ происходит:
- сохранение всех настроек открытых графиков (со всеми индикаторами, объектами на графиках) в профиле Default;
- закрытие всех графиков;
- чтение профиля Default (который был только что сохранен)
- открытие всех графиков заново с инициализацией всех индикаторов с соответствующей записью по каждому в журнал событий.
2) при обновлении профиля происходит моргание окон графиков - естественно, т.к. они закрываются-открываются.
3) сложные индикаторы каждый раз пересчитываются на всем своем временнОм рабочем промежутке.
4) при попытке что-то нарисовать, ЕСЛИ ЭТО ПРОИСХОДИТ В МОМЕНТ ОБНОВЛЕНИЯ графика, рисуемый объект исчезает, а если модифицируется (например тянете уже имеющуюся линию тренда) - модификация сбрасывается;
5) все выделенные объекты теряют свое выделение;
6) при открытом окне свойств объекта/индикатора В МОМЕНТ ОБНОВЛЕНИЯ графика происходит критическая ошибка, ведущая к закрытию МТ.
7) при каждом обновлении растет лог событий: "индикатор такой-то инициализ." и т.п. и вырастает до больших размеров, а очистка данного журнала Разработчиками не предусмотрена;
8) автосдвиг графика работает только на максимизированном окне графика (хотя есть вариант это устранить, если залезть в файл профиля).
9) Может быть самый главный МИНУС: если разработчикам не выгоден такой тестер, им достаточно изменить номер сообщения обновления профиля или имя класса окна, например, на 'MetaQuotes::MetaTrader::4.01', чтобы сделать тестер нерабочим.

Другие варианты - дизассемблировать МТ4, найти момент обновления; создать программу-тестер, создающую удаленный поток, принадлежащий МТ и делающий такое обновление, но я не спец. лезть в такие дебри, т.к. программирование - всего лишь хобби.

Найдите нормальное обновление графиков и я доработаю свою программку и выложу ее, может даже бесплатно :). Сам использую осторожно, с учетом всех недостатков, перечисленных выше, т.е. ставлю свой FXServer на паузу или устанавливаю промежуток обновления тиков (М1) подольше (до 60 сек.) и тогда модифицирую объекты, изменяю параметры индикаторов, затем продолжаю работу или уменьшаю время обновления.
Прошу, Разработчики (Slawa и др.), сообщите вариант обновления графиков по обновленному .hst-файлу без закрытия графиков и переинициализации индикаторов. Сколько уже твердят, что такой Offline-тестер нужен очень многим, чтобы тестировать по истории как в Online, а не пытаться свои разрабатываемые методики загнать в эксперта.
Причем какой же будет эксперт, если в сильном тренде используется одна методика, в слабом медвежьем - другая, в бычьем - третья, да и еще использующая наборы свечных паттернов... Забеситься можно...
С уважением
 
а PostMessageA(hwnd,WM_COMMAND,33324,0); из period_converter-а разве не обновляет график?
я в эти дебри никак не залезу - времени нет..
 
а PostMessageA(hwnd,WM_COMMAND,33324,0); из period_converter-а разве не обновляет график?

К сожалению для себя я не лазил в исходник period_converter-а, т.к. не думал, что там происходит обновление окна с нестандартным таймфреймом, открытом в автономном режиме.
Спасибо, что ткнули носом :). В свободное от работы время попробую, может это то, что надо.
 
komposter
Проверил вариант с PostMessageA(hwnd,WM_COMMAND,33324,0) - работает только на графиках, открытых автономно, т.е. открытых через меню "Файл"->"Открыть автономно" и в заголовке которых имеется надпись "(offline)". Минусы данного варианта:
- невозможно изменить таймфрейм на данном графике (пункты выбора таймфрейма - серые) - хочешь посмотреть набор индикаторов на нескольких таймфреймах (H1 и H4) - открывай их все автономно и устанавливай наборы индикаторов на каждый;
- при установке некоторых скриптов обновление почему-то прекращается и уже не восстанавливается;
- не показываются линии Bid и Ask (можно конечно попробовать установить скрипт МТ, рисующий/модифицирующий горизонтальные линии, если только он не прекратит обновление).
- такое обновление графика не работает из скрипта, запущенного в том же окне (скрипт графика не обновляет этот же график), во всяком случае я не смог добиться.
В принципе минусов намного меньше, чем у моего варианта.
C уважением
 
Nas4iot testera, nixvatajet pauzy i slidera po vremeni, tak kak inogda nado posmotret' iz za 4evo expert v testere rabotajet ni tak kak nuzno, a opciji "rewind" netu 4toby otmatat' nazad "tekus4eje" vremia pri testirovaniji i posmotret' na grafike slu4ishavsuju situaciju...
 
По-моему, проще всего организовать это явление на стороне сервера.
Ничего не стоит создать фиктивную валютную пару и давать на ней тики с периодичностью от 1 до 5 сек.
Всё равно в выходные дни серверы всех ДЦ работают. А этот небольшой трафик не загрузит сервер сколько-нибудь существенно, поскольку работать с ним будут только редкие программисты ( в сравнении с той массой трейдеров, кот. подклюаются в будни). При желании можно продумать и алгоритм изменения фиктивного курса. Можно давать "пилу"(10 тиков по пункту вверх, потом 10 вниз), синусоиду и т.д.

МетаКвотовцы, подумайте над этим предложением.
Ваша программа выгодно отличается от аналогов тем, что даёт возможность создавать профессиональные эксперты. Если вы дадите возможность работать в выходные, то это добавит к вашему рейтингу. Для кого-то это может стать окончательным аргументом в пользу МТ. Не грех и об экономике подумать.

А сделать-то надо - всего-ничего - генератор тиков. При вашем опыте - несколько дней работы.
 
К сожалению, никаких предлагаемых режимов симуляции с нашей стороны не будет.
 
Renat ,
а можно узнать о планах компании на перспективу? Хотя бы в двух словах.
Если не секрет, конечно..
 
Renat ,
а можно узнать о планах компании на перспективу? Хотя бы в двух словах.
Если не секрет, конечно..

Сначала доведем MetaTrader 4. А дальнейшие планы - секрет.
 
Renat ,
а можно узнать о планах компании на перспективу? Хотя бы в двух словах.
Если не секрет, конечно..

Сначала доведем MetaTrader 4. А дальнейшие планы - секрет.

Очень надеюсь что появятся версии 4.x, учитывающие нереализованные пожелания пользователей :)
Причина обращения: