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

Материал из ТХАБ.РФ
Перейти к: навигация, поиск
м
м
Строка 1: Строка 1:
 
{{#ask: [[Категория:QUIK]] [[Категория:QLua]] [[Категория:Торговый робот]]
 
{{#ask: [[Категория:QUIK]] [[Категория:QLua]] [[Категория:Торговый робот]]
 +
| ?Название = Название <br> Торгового робота
 +
| ?Язык программирования
 +
| ?Версия
 +
| ?Описание
 +
| ?Торговая система
 +
| ?Цена
 +
| ?Русификация
 +
| limit=30 | searchlabel=роботов для QUIK на QLua
 +
| intro=Список роботов для QUIK на QLua (не более 30):&nbsp;
 +
| default='''!!!Ошибка SMW запроса'''
 
}}
 
}}
 
  
 
Пытался решить вопрос с интерфейсом для QLUA.  
 
Пытался решить вопрос с интерфейсом для QLUA.  

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

Список роботов для QUIK на QLua (не более 30): 
 Название
Торгового робота
Язык программированияВерсияОписаниеТорговая системаЦенаРусификация
Lua
Lua. Справочное руководство по языку Lua 5.1
LuaRu
LuaRu компиляция исходников в Windows7
QLua
QLua. Скрипт для QUIK
QPILE
QUIK
QUIK. QLUA. Функция чтения CSV файлаQLuaВыводит данные в Excel через CVS файлQUIKКомментарии
QUIK. QLua. Индикаторы технического анализа
Облигационный торговый робот
Простой торговый робот по скользящей средней
Тест Lia работы на этой вики
Торговые роботы
Торговые роботы на Lua для QUIK
Торговый робот
Торговый робот для QUIK на Python с использованием QLua для передачи данных
Торговый робот с приоритетами обработки потоков (заготовка)
Торговый робот(тест)QLua1Пример самого простого скриптаQUIK0Комментарии
Учебник по 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 файл можно держать открытым.

Ссылки