Кто подскажет как бороться с функцией ChartSetSymbolPeriod?

 
Сделал штуковину по типу скрипта PeriodConverter. Запускаю функцию ChartSetSymbolPeriod для преобразования таймфрейма на том же графике. И все. Далее висит "Ожидание обновления" и может висеть долго. Если активировать мышкой другой график, а потом вернуться обратно, то все ок и замечательно. Может кто подскажет какую-то функцию, растормаживающую график в момент обновления? Пробовал ChartRedraw(ID) и WindowRedraw() с паузой и без нее - не помогает...
 
Dmitry Sumsky:
Сделал штуковину по типу скрипта PeriodConverter. Запускаю функцию ChartSetSymbolPeriod для преобразования таймфрейма на том же графике. И все. Далее висит "Ожидание обновления" и может висеть долго. Если активировать мышкой другой график, а потом вернуться обратно, то все ок и замечательно. Может кто подскажет какую-то функцию, растормаживающую график в момент обновления? Пробовал ChartRedraw(ID) и WindowRedraw() с паузой и без нее - не помогает...

в клуб телепатов

 
Aleksey Mavrin:

в клуб телепатов

сказал - как в лужу булькнул

 
Dmitry Sumsky:

сказал - как в лужу булькнул

идиотизм это призвание

 
Есть другие предложения?
 

Что действительно так сложно доходит что требуются уточнения, хотя бы в какой момент из какой функции вызываете, а лучше код для воспроизведения проблемы.

В индикаторах все ок, если это скрипт то он же этой функцией вызывает перезагрузку графика, и ChartRedraw(ID) и WindowRedraw()  уже просто не выполняются.

 
Обязательно было оскорблять? Тем более в такой день?
 
И что, мне весь код, написанный для заказчика сюда выкладывать?
 
Dmitry Sumsky:
Обязательно было оскорблять? Тем более в такой день?

Кто-то начал первый, я всегда готов поддержать )

я думал клуб телепатов - известный мем, призванный напомнить людям что в их вопросе не хватает инфы.

код оставьте только тот который нужен для воспроизведения проблемы.

я начал догадываться что проблема именно в том что скрипт выгружается при смене периода, а в тот момент ещё не дописана в файл история по новому периоду.

 

В ренко для МТ4 есть такое:

int     MT4InternalMsg = 0;

// +------------------------------------------------------------------+
void UpdateChartWindow()
{
    static int hwnd = 0;

    if (hwnd == 0)
    {
        hwnd = WindowHandle(SymbolName, RenkoTimeFrame);
        if (hwnd != 0)
            Print("Chart window detected");
    }

    if (EmulateOnLineChart && MT4InternalMsg == 0)
        MT4InternalMsg = RegisterWindowMessageW("MetaTrader4_Internal_Message");

    if (hwnd != 0)
        if (PostMessageW(hwnd, WM_COMMAND, 33324, 0) == 0)
            hwnd = 0;

    if (hwnd != 0 && MT4InternalMsg != 0)
        PostMessageW(hwnd, MT4InternalMsg, 2, 1);

    return;
}

Сам не разбирался, что к чему, не было нужды.

 

Как я понял, эта функция обрывает расчеты и после нее ничего не выполняется?

Т.е. во время смены символа или ТФ запускается переинициализация - вызывается OnDeInit() и т.д. Так получается?