ChartScreenShot - как сделать серию снимков через скрипт?

 

Проблема в асинхронности функции ChartSetSymbolPeriod. Получаются снимки одного и того же графика. Кто решил(ал) это, поделитесь секретом, плз. 

void SwitchChart(string symbol, ENUM_TIMEFRAMES period) {

    ResetLastError();
    if (!ChartSetSymbolPeriod(0, symbol, period)) {
        Print("LastError = ", GetLastError());
        return;
    };
    Sleep(3000); // типа ждем окончания
}

void TakeScreenshot(string symbol, ENUM_TIMEFRAMES period) {
    
    SwitchChart(symbol, period);
    
    string path = StringFormat("_%s_%s.png", 
        symbol, StringSubstr(EnumToString(period), 7));
    ChartScreenShot(0, path, 800, 600);
    Print(path);
}

void OnStart() {
    TakeScreenshot("EURUSD", PERIOD_H1);
    TakeScreenshot("USDJPY", PERIOD_H1);
}
 
Когда на своем чарте меняете символ/период скрипт выгружается.
Причина обращения: