Не запускается Lua на Quik

Страницы: 1
RSS
Не запускается Lua на Quik, Не работает скрипт (сделки на график Квика)
 
Здравствуйте
Помогите разобраться, почему не работает скрипт
(это для нанесения сделок на график Квика)
При запуске горит красный квадратик и дальше некуда
Картинки buy.bmp, sell.bmp и файл trades.csv находятся в папке со скриптом  
---
  Скрипт стащил отсюда
----------------------

function main()

   local iif = function( cond, ifTrue, ifFalse )

       if( cond ) then return ifTrue; end
       return ifFalse;
   end

   local trades = {};
   local charts = {};
   
   local path = getScriptPath() .. "\\";
   
   local IMAGE_BUY = path .. "buy.bmp";
   local IMAGE_SELL = path .. "sell.bmp";


   -- заполняем таблицу сделок
   for line in io.lines( path .. "trades.csv" ) do
       
       local isNewTrade = true;
       local row = {};

       for column in string.gmatch( line, "([^;]+)" ) do

           table.insert( row, column );
       end

       local trade =
       {
           timestamp = row[ 1 ],
           ticker = row[ 2 ],
           lots = tonumber( row[ 3 ] ),
           price = tonumber( row[ 4 ] ),
           date = string.gsub( string.match( row[ 1 ], "(%d+-%d+-%d+)" ), "-", "" ),
           time = string.gsub( string.match( row[ 1 ], "(%d+:%d+:%d+)" ), ":", "" )
       };
       
       -- суммируем лоты сделок одного инструмента в один момент времени (минута) по одинаковой цене, чтобы не заграмождать график
       for _, t in pairs( trades ) do
           if t.ticker == trade.ticker and t.timestamp == trade.timestamp and t.price == trade.price then
               t.lots = t.lots + trade.lots;
               isNewTrade = false;
           end
       end
       
       
       if ( isNewTrade ) then
           -- запоминаем тикеры графиков, для последующий очистки
           charts[ trade.ticker ] = true;
           table.insert( trades, trade );
       end
         
   end
   

   if( table.maxn( trades ) < 1 ) then

       return;
   end
   
   -- удаляем все предыдущие метки с используемых графиков
   for chart, _ in pairs( charts ) do
     
       DelAllLabels( chart );
   end
   
   -- добавляем метки по таблице сделок
   for _, t in pairs( trades ) do

       local label =
       {
           -- параметры текста метки - отрисовываются со смещением от точки сделки :-(
           --TEXT = iif( t.lots > 0, "5", "6" ),    -- в шрифте "Webdings" это значки треугольников
           FONT_FACE_NAME = "Webdings",
           FONT_HEIGHT = 25,
           R = iif( t.lots > 0, 0, 255 ),
           G = iif( t.lots > 0, 255, 0 ),
           B = 0,
           
           -- параметры картинки
           IMAGE_PATH = iif( t.lots > 0, IMAGE_BUY, IMAGE_SELL ),
           ALIGNMENT = iif( t.lots > 0, "BOTTOM", "TOP" ),
           TRANSPARENCY = 0,
           TRANSPARENT_BACKGROUND = 1,
           
           -- парамтеры координат
           YVALUE = t.price,
           DATE = t.date,
           TIME = t.time,
           
           -- всплывающая подсказка
           HINT = tostring( t.lots ) .. " @ " .. tostring( t.price )
       };

       local labelId = AddLabel( t.ticker, label );

   end
end
 
Какие-то ошибки пишет?
 
Цитата
Петя Иванов написал:
Скрипт стащил отсюда

Рекомендуем обратиться непосредственно к автору скрипта за решением описанной проблемы
 
Цитата
swerg написал:
Какие-то ошибки пишет?
 Если trades.csv переименовать или убрать из папки, то пишет
D:\Test-Lua\LCHI.lua:19: bad argument #1 to 'lines' (D:\Test-Lua\trades.csv: No such file or directory)
и оставляет красный квадратик
на файлы картинок не реагирует никак
Если все файлы на месте и с корректными именами, то никакой реакции на запуск скрипта нет
Остается красный квадратик запуска не происходит
 
Простенькая рабочая программа.
Скачал - запустил.
Только надо, чтобы на вашем QUIK был график инструмента из файла trades.csv.
И еще малость: присвоить этому графику идентификатор - код тикера.
Например, "SiZ5"

Lbot3D
 
Нагуглил: http://smart-lab.ru/blog/279473.php
Вам бы, Петя, там спросить.
Lbot3D
 
Цитата
XXM написал:
Простенькая рабочая программа.
Скачал - запустил.
Только надо, чтобы на вашем QUIK был график инструмента из файла trades.csv.
И еще малость: присвоить этому графику идентификатор - код тикера.
Например, "SiZ5"
График инструмента RIH6 в квике есть, в файле trades.csv. этот же тикер
присвоил графику идентификатор RIH6 - скрипт начал запускаться, но на 2 сек. метки не появляются даже на это короткое время
не каких сообщений по ошибкам не выдает
Основной квик стоит 7.1.2.2, думал возможно он лагает, попробовал на квик 6.17 таже история ;-(
 
Шарманка заработала, метки сделок ставит
Скрипт не ставил метки поначалу из-за того, что не был прописан идентификатор на график Например, "SiZ5"
А затем, забыл вернуть имена картинкам buy.bmp, sell.bmp
Во время экспериментов переименовал их в buy2.bmp, sell2.bmp
Идентификатор прописал, имена вернул – заработало…
Метки ставит, но квадратик в окне запуска скриптов остается красный
Возможно это «норма»
Страницы: 1
Читают тему
Наверх