Как эммулировать тики для эксперта?

 

Как эммулировать тики для эксперта?

Этот вопрос к знатокам WinAPI.

Эммуляция тиков (обновление графика), как для индикатора не работает для эксперта.

Функция "start()" не реагирует на обновление графика.

 

Не работает? Time[0] не обновляется или не перерисовывается?

Окно после тика получает сообщение WM_PAINT. Может это как-то использовать?

 

Вот это 'Конвертер периодов' не поможет?

int MT4InternalMsg = RegisterWindowMessageA("MetaTrader4_Internal_Message"); //incoming tick for EAs
PostMessageA(hwnd,MT4InternalMsg,2,1); //incoming tick for EAs

 
ForexTools >>:

Вот это 'Конвертер периодов' не поможет?


Спасибо! Ещё не пробывал, но это то, что нужно.

 

К сожалению самим экспертом невозможно это сделать. Между выгрузкой init() и началом start() проходит какое-то время. Все тики в пустую.

Надо в init() запускать скрипт-стартер, а в start() через глобальную переменную его завершать.

 

Сделал такой скрипт. Тиков от него нет.

#include <WinUser32.mqh> // Заголовочный файл библиотеки "user32.dll" функций API Windows XP.
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
void start()
 {
  while (true)
   {
    int MT4InternalMsg = RegisterWindowMessageA ("MetaTrader4_Internal_Message");
    int HandlWindow = WindowHandle (Symbol(), Period());
    PostMessageA (HandlWindow, WM_COMMAND, 33324, 0); // Обновляем окно.
    PostMessageA (HandlWindow, MT4InternalMsg, 2, 1); // Эммуляция тика для эксперта.
    if (GlobalVariableCheck ("glAIASM_START_EXPERT")) break;
    if (IsStopped()) break;                           // Если останавливаем скрипт, то выходим из цикла.
    Sleep (100);
   }
  GlobalVariableDel ("glAIASM_START_EXPERT");
 }
 

Ещё "интересная" проблема.

Только сейчас заметил, что init() эксперта не запускается без интернета.

Это нормально? Или Метаквоты не досмотрели?

 

Разобрался!!!

Всё работает. Это отсутствие запуска init() без интернета меня смутило. Таким образом имитировал отсутствие тиков.

Нашёл инструмент без тиков сейчас. На нём проверил.

 

ГЫ
если бы MQ дали бы нам технические тики, (как им неоднократно предлагалось нас осчастливить), мы бы таких тестеров навыдумывали,
да вот надо же так, нам это надо а им - не а

Причина обращения: