QUIK. QLUA. Функция чтения CSV файла — различия между версиями

Материал из ТХАБ.РФ
Перейти к: навигация, поиск
м
м
Строка 1: Строка 1:
 +
{{#ask: [[Категория:QUIK]] [[Категория:QLua]] [[Категория:Торговый робот]]
 +
}}
 +
  
 
Пытался решить вопрос с интерфейсом для QLUA.  
 
Пытался решить вопрос с интерфейсом для QLUA.  

Версия 15:56, 21 ноября 2019

Lua, Lua. Справочное руководство по языку Lua 5.1, LuaRu, LuaRu компиляция исходников в Windows7, QLua, QLua. Скрипт для QUIK, QPILE, QUIK, QUIK. QLUA. Функция чтения CSV файла, QUIK. QLua. Индикаторы технического анализа, Облигационный торговый робот, Простой торговый робот по скользящей средней, Тест Lia работы на этой вики, Торговые роботы, Торговые роботы на Lua для QUIK, Торговый робот, Торговый робот для QUIK на Python с использованием QLua для передачи данных, Торговый робот с приоритетами обработки потоков (заготовка), Торговый робот(тест), Учебник по Lua для программистов


Пытался решить вопрос с интерфейсом для QLUA.

Испробовал IUP, VCL и еще какая-то библиотека была. Но ни одна библиотека стабильно не работала, через какой-то промежуток времени Квик вставал колом.

Т.к. нам красоты не надо, а удобство хочется, то решил пусть интерфейсом будет Excel (файл.CSV).

функция для чтения CSV файлов:

  • можно задать до 20 столбиков параметров, количество строк не ограничено.
  • запятую заменяет на точку в вещественном числе
  • удаляет заголовок столбца, т.е. на выходе получаем массив начинающийся со второй строки

function File_Read(filename)
local col = 1
local pat = "(.*)"
local A={};local B={};local C={};local D={};local E={};
local F={};local G={};local H={};local I={};local J={};
local K={};local L={};local M={};local N={};local O={};
local P={};local Q={};local R={};local S={};local T={};
local file, err = io.open(filename,«r»)
if err ~= nil then PrintDbgStr(«err read file: »..err); return; end
str = file:read()
for var in string.gmatch (str, ";") do col=col+1 end
for i = 2, col do pat = pat..";(.*)" end
for line in io.lines(filename) do

--PrintDbgStr(line)
local _,_,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s16,s17,s18,s19,s20 = string.find(line,pat)

--PrintDbgStr(tostring(s1))
table.insert(A,s1);table.insert(B,s2);table.insert(C,s3);table.insert(D,s4);table.insert(E,s5);
table.insert(F,s6);table.insert(G,s7);table.insert(H,s8);table.insert(I,s9);table.insert(J,s10);
table.insert(K,s11);table.insert(L,s12);table.insert(M,s13);table.insert(N,s14);table.insert(O,s15);
table.insert(P,s16);table.insert(Q,s17);table.insert(R,s18);table.insert(S,s19);table.insert(T,s20);
end

file:close()
table.remove(A,1);table.remove(B,1);table.remove(C,1);table.remove(D,1);table.remove(E,1);
table.remove(F,1);table.remove(G,1);table.remove(H,1);table.remove(I,1);table.remove(J,1);
table.remove(K,1);table.remove(L,1);table.remove(M,1);table.remove(N,1);table.remove(O,1);
table.remove(P,1);table.remove(Q,1);table.remove(R,1);table.remove(S,1);table.remove(T,1);

--Print_Table® Print_Table(S) Print_Table(T)
return A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T
end


Во время работы робота смело изменяем CSV файл и сохраняем, и новые параметры у вас в роботе. CSV файл можно держать открытым.

Ссылки