Избранное трейдера Smoker_Joker
--Массив с Тикерами, добавьте нужные тикеры aTickerList = {"MSNG", "GAZP", "LKOH", "SIBN", "GMKN","ROSN", "SBER", "TATN", "NVTK", "IRAO", "RSTI", "SBERP", "PHOR", "SNGS", "TRNFP", "VTBR", "FEES", "MVID", "RASP", "MFON", "AFLT", "MAGN", "ALRS", "MTSS", "MOEX", "RTKM", "MGNT", "NLMK", "SNGSP", "CHMF", "MTLR", "HYDR", "MFON", "RSTI", "PLZL", "BANEP", "POLY" }; --Функция поиска цены function fGetPrice(sTickerName, sNum) --Подключаемся к источнику данных local ds=CreateDataSource("TQBR", sTickerName, INTERVAL_D1); while (Error=="" or Error == nil) and ds:Size() ==0 do sleep(10) end; if Error ~="" and Error ~=nil then message("Error: "..Error, 1) end; local sSize=ds:Size(); local sCurrentPrice=ds:O(sSize); local sLastWeekPrice7=0; local sLastWeekPrice14=0; --Берем цену закрытия свечи неделю назад sLastWeekPrice7=ds:C(sSize-4); --Берем цену закрытия свечи 2 недели назад sLastWeekPrice14=ds:C(sSize-8); --Вычисляем проценты local sPrc7=math.floor((100-((sLastWeekPrice7*100)/sCurrentPrice))*100)/100; local sPrc14=math.floor((100-((sLastWeekPrice14*100)/sCurrentPrice))*100)/100; --Заполняем таблицу значениями SetCell(t_id, sNum, 0, tostring(sTickerName)); SetCell(t_id, sNum, 1, tostring(sCurrentPrice),sCurrentPrice); SetCell(t_id, sNum, 2, tostring(sLastWeekPrice7),sLastWeekPrice7); SetCell(t_id, sNum, 3, tostring(sLastWeekPrice14),sLastWeekPrice14); SetCell(t_id, sNum, 4, tostring(sPrc7),sPrc7); SetCell(t_id, sNum, 5, tostring(sPrc14),sPrc14); --Текущая цена больше цены прошлой недели - раскрашиваем зеленым if sCurrentPrice>sLastWeekPrice7 then fGreen(sNum); end; --Текущая цена меньше цены прошлой недели - раскрашиваем красным if sCurrentPrice<sLastWeekPrice7 then fRed(sNum); end; --Текущая цена больше цены прошлой недели и цена прошлой недели больше цены позапрошлой недели --раскрашиваем желтым if sCurrentPrice>sLastWeekPrice7 and sLastWeekPrice7>sLastWeekPrice14 then fYellow(sNum); end; end; --- Функция создает таблицу function CreateTable() -- Получает доступный id для создания t_id = AllocTable(); -- Добавляет 6 колонок AddColumn(t_id, 0, "Тикер", true, QTABLE_INT_TYPE, 15); AddColumn(t_id, 1, "Сегодня", true, QTABLE_INT_TYPE, 15); AddColumn(t_id, 2, "Неделя", true, QTABLE_INT_TYPE, 15); AddColumn(t_id, 3, "2 Недели", true, QTABLE_INT_TYPE, 15); AddColumn(t_id, 4, "Неделя (%)", true, QTABLE_INT_TYPE, 15); AddColumn(t_id, 5, "2 Недели (%)", true, QTABLE_INT_TYPE, 15); -- Создаем t = CreateWindow(t_id); -- Даем заголовок SetWindowCaption(t_id, "7 Days"); -- Добавляем строки for k,v in pairs(aTickerList) do InsertRow(t_id, k); end; end; --- Функции раскрашивают ячейки таблицы function fRed(col) SetColor(t_id, col, -1, RGB(255,168,164), RGB(0,0,0), RGB(255,168,164), RGB(0,0,0)); end; function fGreen(col) SetColor(t_id, col, -1, RGB(157,241,163), RGB(0,0,0), RGB(157,241,163), RGB(0,0,0)); end; function fYellow(col) SetColor(t_id, col, -1, RGB(249,247,172), RGB(0,0,0), RGB(249,247,172), RGB(0,0,0)); end; --Основная функция function main() -- Создаем таблицу CreateTable(); --Пробегаемся по массиву тикеров for k,v in pairs(aTickerList) do fGetPrice(v, k); end; end;как выглядит в квике:
AFLT горсть время=100324 buy лотов=7269 сделок=75 сдвинуло на 0.24
AFLT горсть время=100713 sell лотов=2644 сделок=4 сдвинуло на -0.02
AFLT горсть время=101013 buy лотов=4000 сделок=21 сдвинуло на 0.26
AFLT горсть время=102211 buy лотов=3000 сделок=3 сдвинуло на 0.00
AFLT горсть время=102228 buy лотов=7877 сделок=33 сдвинуло на 0.02
AFLT горсть время=103148 sell лотов=2750 сделок=15 сдвинуло на -0.16
AFLT горсть время=111126 sell лотов=3187 сделок=41 сдвинуло на -0.22
AFLT одна сделка время=111138 sell лотов=2333
AFLT горсть время=111138 sell лотов=2347 сделок=6 сдвинуло на 0.00
AFLT горсть время=112717 buy лотов=3078 сделок=10 сдвинуло на 0.08
AFLT горсть время=113750 sell лотов=3784 сделок=19 сдвинуло на -0.02
AFLT горсть время=121829 sell лотов=3993 сделок=8 сдвинуло на -0.02
AFLT горсть время=130114 sell лотов=2902 сделок=18 сдвинуло на 0.00
AFLT горсть время=130316 sell лотов=2102 сделок=27 сдвинуло на 0.00
AFLT горсть время=131424 sell лотов=10000 сделок=46 сдвинуло на -0.42
AFLT горсть время=134130 sell лотов=2500 сделок=48 сдвинуло на -0.16
AFLT горсть время=135054 buy лотов=2800 сделок=20 сдвинуло на 0.16
AFLT горсть время=145405 buy лотов=7777 сделок=59 сдвинуло на 0.28
AFLT горсть время=155949 buy лотов=9500 сделок=7 сдвинуло на 0.02
AFLT горсть время=162919 sell лотов=4563 сделок=20 сдвинуло на -0.20
AFLT горсть время=163629 sell лотов=13480 сделок=67 сдвинуло на -0.22
AFLT горсть время=164124 sell лотов=2067 сделок=13 сдвинуло на -0.12
AFLT горсть время=165442 sell лотов=2062 сделок=25 сдвинуло на -0.26
AFLT горсть время=165857 sell лотов=8016 сделок=146 сдвинуло на -0.18
AFLT горсть время=170309 buy лотов=3000 сделок=17 сдвинуло на 0.14
AFLT горсть время=170353 sell лотов=3262 сделок=24 сдвинуло на -0.22
AFLT горсть время=172751 sell лотов=4231 сделок=45 сдвинуло на -0.12
AFLT горсть время=172803 sell лотов=7341 сделок=35 сдвинуло на -0.20
AFLT горсть время=172818 sell лотов=3000 сделок=6 сдвинуло на -0.04
AFLT горсть время=172820 sell лотов=3000 сделок=3 сдвинуло на -0.08
AFLT горсть время=173912 buy лотов=4000 сделок=3 сдвинуло на 0.02
AFLT горсть время=174329 buy лотов=2001 сделок=10 сдвинуло на 0.12
AFLT горсть время=175103 sell лотов=5000 сделок=24 сдвинуло на -0.16
AFLT горсть время=182329 buy лотов=3112 сделок=27 сдвинуло на 0.14
AFLT горсть время=184522 sell лотов=3345 сделок=34 сдвинуло на 0.00