- обновление МТ привело к неработоспособности индикаторов
- Спред в тестере МТ5
- Исчезает индикатор на графике
Не знаю как помочь вам, но несколько подобная ситуация происходила у меня, когда советник на нестандартном тф работал.
На форуме в какой-то ветке такой способ нашел.
int init() { logFileInit(); if (useNotStandartTF == true) // вычислялся в logFileInit() { // при нестандартном ТФ именно everyTick() будет выполнять на себе функцию start() while (!IsStopped()) { // пока тебя ничто не остановит, через 1.5 секунды прикидывайся Новым Тиком everyTick(); Sleep(1500); } } return(0); } int start() { everyTick(); } //+------------------------------------------------------------------+ //| Каждый тик :-) | //+------------------------------------------------------------------+ int everyTick() { RefreshRates(); // ну и дальше все что в START() должно было быть }
Ситация : Метатрейдер в офлайне, т.е не подключен ни к какому серверу котировок. Есть внешняя программа, которая генерит файл истории и посылает метатрейдеровскому окошку сообщение, что надо обновиться ( PostMessageA(mtWin, 0x0111, 33324, 0) ), Все работает хорошо, свечки рисует, но есть один недостаток. Если на offline окошко, наложить любой индикатор, хоть встроеный, хоть пользовательский, то проявляется такой баг: При отрисовке новой свечки, график свечей как и положено сдвигается влево, а индикатор так и остается на месте. Например. Последняя свеча 10:35, кидаем на график индикатор "фрактал", он рисует макс. фрактал в 10:30, пока все хорошо. Но вот появляется новая свеча (10:36), а фрактал уже рисуется не над 10:30, а над 10:31. Може кто сталкивался с такой проблемой и есть пути ее обхода?
Проблема в том что у нас как обычно зубы рвут через ж автогеном,
вы ведь не генерите серверное время и естевственно что индикаторы у вас не двигаются.
Не проще ли сформировать файл и запускать его через тестер там полная эмуляция.
Ситация : Метатрейдер в офлайне, т.е не подключен ни к какому серверу котировок. Есть внешняя программа, которая генерит файл истории и посылает метатрейдеровскому окошку сообщение, что надо обновиться ( PostMessageA(mtWin, 0x0111, 33324, 0) ), Все работает хорошо, свечки рисует, но есть один недостаток. Если на offline окошко, наложить любой индикатор, хоть встроеный, хоть пользовательский, то проявляется такой баг: При отрисовке новой свечки, график свечей как и положено сдвигается влево, а индикатор так и остается на месте. Например. Последняя свеча 10:35, кидаем на график индикатор "фрактал", он рисует макс. фрактал в 10:30, пока все хорошо. Но вот появляется новая свеча (10:36), а фрактал уже рисуется не над 10:30, а над 10:31. Може кто сталкивался с такой проблемой и есть пути ее обхода?
Получается, что терминал распознает новый бар, как добавленный слева (как подгрузку истории). Может быть со временем баров что-то перепутано?
Проблема в том что у нас как обычно зубы рвут через ж автогеном,
вы ведь не генерите серверное время и естевственно что индикаторы у вас не двигаются.
Не проще ли сформировать файл и запускать его через тестер там полная эмуляция.
Беда у нас в другом, в том что когда не могут конкретно ответить, очень любят порассуждать о вечном, о ж с автогеном.
PostMessageA(mtWin, 0x0111, 33324, 0), надо послать еще ондно сообщение
PostMessageA(mtWin, 0xC1B2, 2, 1);, где 0xC1B2 - уникальный идентификатор сообщения, зарегестрированного с помощью RegisterWindowMessage(" MetaTrader4_Internal_Message " );
но пока енто как-то через раз раюботает
Беда у нас в другом, в том что когда не могут конкретно ответить, очень любят порассуждать о вечном, о ж с автогеном.
http://termorect.narod.ru/
.
Я видел такой код:
#define WM_COMMAND 0x0111
PostMessageA (HandlWindow, WM_COMMAND, 33324, 0); // Обновляем окно.
PostMessageA (HandlWindow, WM_COMMAND, 2, 1); // Эммуляция тика для эксперта.
http://termorect.narod.ru/
.
Я видел такой код:
#define WM_COMMAND 0x0111
PostMessageA (HandlWindow, WM_COMMAND, 33324, 0); // Обновляем окно.
PostMessageA (HandlWindow, WM_COMMAND, 2, 1); // Эммуляция тика для эксперта.
Последняя строчка не работает(
PostMessageA (HandlWindow, WM_COMMAND, 2, 1); // Эммуляция тика для эксперта.
Помогите разобраться если у кого получилось. Нужно именно эмулировать тик!
Последняя строчка не работает(
PostMessageA (HandlWindow, WM_COMMAND, 2, 1); // Эммуляция тика для эксперта.
Помогите разобраться если у кого получилось. Нужно именно эмулировать тик!
с кодом не разбирался, но этот https://www.mql5.com/ru/code/7737
работает как часы, эмуляция тика в этом коде:
void RefreshWindow() { //---- находим окно, в которое будем "отправлять" свежие котировки if ( hwnd == 0 ) { hwnd = WindowHandle( StringConcatenate( "!Eqv", _Symbol ), TicksInBar ); if ( hwnd != 0 ) { Print( "< - - - График ", "!Eqv", _Symbol, TicksInBar, " найден! - - - >" ); } } //---- и, если нашли, обновляем его if ( hwnd != 0 ) { PostMessageA( hwnd, WM_COMMAND, 33324, 0 ); } }
у меня встречный вопрос:
как посчитать корреляцию между двумя графиками offline, для https://www.mql5.com/ru/code/7737
пока ничего в голову не приходит кроме как через выгрузку в файл данных offline графиков и дальнейшей манипуляции с этими данными
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования