1. Создать текстовый файл 2. Скопировать туда следующий код: PORTFOLIO_EX EXPORT_QUOTE; DESCRIPTION EXPORT_QUOTE; CLIENTS_LIST ALL_CLIENTS; FIRMS_LIST ALL_FIRMS; PROGRAM Secboard = "INDX" Seccode = "MICEXINDEXCF" TimeFrame = 60 DaysBack = 100 DELETE_ALL_ITEMS() Count=0 CurYear = GET_VALUE(GET_DATETIME(), "YEAR") CurMonth = GET_VALUE(GET_DATETIME(), "MONTH") CurDay = GET_VALUE(GET_DATETIME(), "DAY") CurHour = GET_VALUE(GET_DATETIME(), "Hour") CurMin = GET_VALUE(GET_DATETIME(), "Min") if TimeFrame > 0 CurMin = TimeFrame*Floor(CurMin/TimeFrame) end if for i from 1 to (DaysBack*24)*(Floor(60/TimeFrame)) TextData=Date2Text(CurYear, CurMonth, CurDay) & "" TextTime=Time2Text(CurHour, CurMin) & "" Candle=GET_CANDLE(Secboard,Seccode, "", TimeFrame & "", "PRICE", TextData, TextTime) Open=GET_VALUE (Candle, "Open")+0 if Open>0 Count = Count + 1 High = GET_VALUE (Candle, "High") + 0 Low = GET_VALUE (Candle, "Low") + 0 Close = GET_VALUE (Candle, "Close") + 0 Volume= GET_VALUE (Candle, "Volume") + 0 output = CREATE_MAP() output = SET_VALUE(output, "Time", CurDay & "." & CurMonth & "." & CurYear & " " & CurHour & ":" & CurMin & ":00") output = SET_VALUE(output, "Open", Open) output = SET_VALUE(output, "High", High) output = SET_VALUE(output, "Low", Low) output = SET_VALUE(output, "Close", Close) output = SET_VALUE(output, "Volume", Volume) ADD_ITEM(Count, output) end if CurMin = CurMin - TimeFrame if CurMin CurMin = 60 + CurMin CurHour= CurHour - 1 if CurHour CurHour = 23 CurDay = CurDay - 1 if curDay CurDay = 31 CurMonth = CurMonth - 1 if CurMonth CurMonth = 12 CurYear = CurYear - 1 end if end if end if end if end for func Date2Text(Year, Month, Day) if (LEN(Month) Month = "0" & Month end if if (LEN(Day) Day = "0" & Day end if result = Year & Month & Day end func func Time2Text(Hour, Min, Sec) if (LEN(Hour) Hour = "0" & Hour end if if (LEN(Min) Min = "0" & Min end if result = Hour & Min & "00" end func END_PROGRAM PARAMETER Time; PARAMETER_TITLE Время; PARAMETER_DESCRIPTION Время; PARAMETER_TYPE STRING(30); END PARAMETER Open; PARAMETER_TITLE Open; PARAMETER_DESCRIPTION Open; PARAMETER_TYPE NUMERIC(11,5); END PARAMETER High; PARAMETER_TITLE High; PARAMETER_DESCRIPTION High; PARAMETER_TYPE NUMERIC(11,5); END PARAMETER Low; PARAMETER_TITLE Low; PARAMETER_DESCRIPTION Low; PARAMETER_TYPE NUMERIC(11,5); END PARAMETER Close; PARAMETER_TITLE Close; PARAMETER_DESCRIPTION Close; PARAMETER_TYPE NUMERIC(11,5); END PARAMETER Volume; PARAMETER_TITLE Объем; PARAMETER_DESCRIPTION Объем; PARAMETER_TYPE NUMERIC(4,0); END END_PORTFOLIO_EX 3. Перименовать, сменив расширение на qpl 4. В следущих строках кода сменить следующие параметры параметры (они в верхней части): Secboard = "INDX" (это код класса инструмента, берется из таблицы параметров, например, для фортс будет "SPBFUT") Seccode = "MICEXINDEXCF" (код инструмента, например, для гамака будет "GMKN") TimeFrame = 60 (период времени, выбираются только минуты) DaysBack = 100 (количество временных периодов) 5. Сохранить изменения и загрузить данный файл в квик, для чего нужно: 5.1. Выбрать в квик "таблицы" - "портфели" - "задать портфель" - выбрать сохраненный файл и "загрузить локально" 5.2. Выбрать "портфели" - "просмотр портфеля" 6. Когда будет выбран портфель, откроется таблица (при этом важно, чтобы одновременно был открыт график с тем же таймфреймом, что был выбран в параметрах кода в файле) 7. Если все правильно было сделано, то в таблице будет отбражена истоия котировк, которую можно вывести в любую программу, например в Эксель через DDE