Справочник MQL4

WindowScreenShot

Сохраняет изображение текущего графика в файле формата GIF.

bool  WindowScreenShot(
   string           filename,                   // имя файла
   int              size_x,                     // ширина
   int              size_y,                     // высота
   int              start_bar=-1,               // первый видимый бар
   int              chart_scale=-1,             // масштаб графика
   int              chart_mode=-1               // вид отображения
   );

Параметры

filename

[in]  Имя файла скриншота. Не может превышать 63 символов. Скриншот помещается в директорию \Files.

size_x

[in]  Ширина скриншота в пикселях.

size_y

[in]  Высота скриншота в пикселях.

start_bar=-1

[in]  Номер первого видимого бара на скриншоте. Если указано значение 0, то скриншот снимается с текущего первого видимого бара. Если значение не указано, или указано отрицательное значение, то делается скриншот конца графика с учётом правого отступа.

chart_scale=-1

[in]  Масштаб графика, выводимого на скриншот. Может принимать значение от 0 до 5. Если значение не указано, или указано отрицательное значение, то используется текущий масштаб графика.

chart_mode=-1

[in]  Вид отображения графика. Может принимать значения: CHART_BAR (0 - последовательность баров), CHART_CANDLE (1 - японские свечи), CHART_LINE (2 - линия по ценам закрытия). Если значение не указано, или указано отрицательное значение, то график выводится в своем текущем виде.

Возвращаемое значение

Возвращает true в случае успеха, иначе false. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().

Примечание

Скриншот сохраняется в папке каталог_терминала\experts\files (каталог_терминала\tester\files в случае тестирования эксперта) или ее подпапках.

Пример:

  int lasterror=0;
  //---- тестер закрыл однин или несколько ордеров
  if(IsTesting() && ExtTradesCounter<TradesTotal())
    {
     //---- снимем скриншот для проверки
     if(!WindowScreenShot("shots\\tester"+ExtShotsCounter+".gif",640,480))
        lasterror=GetLastError();
     else ExtShotsCounter++;
     ExtTradesCounter=TradesTotal();
    }