Добрый день, ну да, "без выкрутасов": ------------------------------- есть общепринятые форматы дат. А это: 2015 0002 01, 2015 0002 01 не дата и не число. а последовательность цифр и пробелов.
Вилы Эндрюса
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2015 07:35:12
"Служить бы рад, прислуживаться тошно"
Зависание терминала, Зависание терминала при загрузке портфеля qpile
Пользователь
Сообщений: Регистрация: 30.01.2015
15.02.2015 10:18:21
, А если это "неправильно" так удивило ОС, что у нее пропал дар речи? Надо ставить BREAKPOINT и по шагам искать проблему.
Вилы Эндрюса
Пользователь
Сообщений: Регистрация: 30.01.2015
15.02.2015 10:07:36
, ВИЛЫ ЭНДРЮСА - это всего-то лишь прямая проведенная из одной точки через середину отрезка, соединяющего две других. Т е это настолько примитивный индикатор, что он без проблем рисуется в квике. -------------------------------------------------------- Неужели Вы серьезно верите, что Эндрюс на таком примитиве делал бабло на рынке. 50 лет ему приносит бабло издание книжечки для буратин. Как в прочем и большинству популярных книг о торговле на фондовом рынке. ---------------------------------------------------------- лучше почитайте книгу Сореса Новая парадигма финансовых рынков. Этот чел по крайней мере не пишет бульварных книг для буратин, но делает деньги. .
Список доступных для транзакций инструментов, получение списка инструментов для совершения транзакций с учетом различных аккаунтов у одного и того же брокера.
Пользователь
Сообщений: Регистрация: 30.01.2015
15.02.2015 09:56:20
, Вы заблуждаетесь. Ответ на вопрос платная или нет очень простой. Если Вы платите за эту программу, то она для Вас платная, если нет - то бесплатная. -------------------------------------------- Т е программу покупает проф участник рынка(брокер) , который вам оказывает услуги. Для него она платная. Но Вам он может предоставлять как платные так и бесплатные услуги. Большинство брокеров не берет плату за предоставление данной программы, что снимает с них ответственность за качество этой услуги. В этом случае данная услуга бесплатная для клиентов брокера. Кроме того, терминал QUIK -это программа подачи поручений, исполнение которых не является обязательным для брокера. Т е Вы ему сообщили? Он Вас услышал? Все!! Если окажет услугу (купит или продаст) - возьмет денюшку если нет, то нет. --------------------------------------------------------------------------- Вместо того, чтобы наезжать на разработчиков , перечитайте внимательно ГК РФ, ФЗ о защите прав потребителя, ФЗ о рынке ценных бумаг и регламент брокера. Претензии к бесплатным продуктам не имеют никаких правовых последствий. ---------------------------------------------------------------------- "Дареному коню в зад, т е в зубы не смотрят" - народная мудрость.
не добавляются строки в таблицу
Пользователь
Сообщений: Регистрация: 30.01.2015
15.02.2015 09:42:08
Вот так все работает: -------------------------------------------
local stopped, t_id ------------------------------------------------ function main() t_id = AllocTable() res = AddColumn(t_id,1,"col1",true,QTABLE_STRING_TYPE,30) message("AddColumn - " .. tostring(res), 1) res = AddColumn(t_id,2,"col2",true,QTABLE_STRING_TYPE,30) CreateWindow(t_id) SetWindowCaption(t_id, "Моя таблица" ;) local row = InsertRow(t_id, -1); SetCell(t_id, row, 1, "тест" ;) row = InsertRow(t_id, -1) ; SetCell(t_id, row, 2, "привет" ) while not stopped do sleep(1000) end end ------------------------------------------------- function OnStop(s) stopped = true if t_id~= nil then DestroyTable(t_id) end end
---------------------------------------------------- У Вас основная ошибка в том, что Вы пытаетесь работать с таблицей, т е добавлять строки и изменять название до ее создания - CreateWindow(t_id)
Библиотека QCtrls.dll
Пользователь
Сообщений: Регистрация: 30.01.2015
14.02.2015 16:04:01
В одной русской сказке, под названием "по щучьему велению" сидел Иван на печи и мечтал
В другом классическом произведении есть тост "Хочу чтобы Все" --------------------------------------------- мечтать оно конечно не вредно, но и бесполезно. ------------------------------- "С одной стороны....С другой стороны" -ничего не напоминает ? ( типа песню из одного классического фильма)
Список доступных для транзакций инструментов, получение списка инструментов для совершения транзакций с учетом различных аккаунтов у одного и того же брокера.
Пользователь
Сообщений: Регистрация: 30.01.2015
14.02.2015 15:57:54
вообще-то у большинства брокеров КВИК - бесплатная прога для подачи поручений и только, А не торговая платформа (можно почитать регламент брокера на досуге)
Не считываются параметры инструмента
Пользователь
Сообщений: Регистрация: 30.01.2015
14.02.2015 15:54:25
вместо SIH5 надо писать SiH5 (i вместо I)
Снятие заявки и тут же ее выставление., Снятие заявки и тут же ее выставление.
Пользователь
Сообщений: Регистрация: 30.01.2015
14.02.2015 15:49:52
проверять в таблице заявок ее снятие перед отправкой новой
Снятие заявки и тут же ее выставление., Снятие заявки и тут же ее выставление.
Пользователь
Сообщений: Регистрация: 30.01.2015
14.02.2015 15:48:47
проверить разрешен ли шорт
Формат даты
Пользователь
Сообщений: Регистрация: 30.01.2015
13.02.2015 22:51:24
Если без особых выкрутасов, то можно упростить:
function DateFormat(date, input_fmt, output_fmt) local day = date:sub(input_fmt:find("([d|D]+)") local month = date:sub(input_fmt:find("([m|M]+)") local year = date:sub(input_fmt:find("([Y|y]+)") local outstr = output_fmt:gsub("([d|D]+)", day) local outstr = outstr:gsub("([m|M]+)", month) local outstr = outstr:gsub("([y|Y]+)", year) return outstr end
примерно в 2 раза быстрее.
Конвертация Qple на Lua
Пользователь
Сообщений: Регистрация: 30.01.2015
12.02.2015 15:55:29
суть в том, что в LUA необходимо будет реализовать работу с событийной моделью робота, чего в QPILE просто нет. Вот и вырастет программа а если еще "да ладно " прикрутить то будет еще больше. Относительно того в 2 или в 10 раз - это уж от автора произведения зависит.
Конвертация Qple на Lua
Пользователь
Сообщений: Регистрация: 30.01.2015
12.02.2015 15:51:25
а если еще и "да ладно", то в десять.
Библиотека QCtrls.dll
Пользователь
Сообщений: Регистрация: 30.01.2015
12.02.2015 15:48:25
Почему-то полностью согласен с , за исключением его пристрастия к слову "дерьмо".
Конвертация Qple на Lua
Пользователь
Сообщений: Регистрация: 30.01.2015
11.02.2015 21:33:57
Если в QPILE 2000 строк, то в луа будет раз в пять больше (включая строки программ на СИ).
Определить время начала интервала для заданного таймфрейма
Пользователь
Сообщений: Регистрация: 30.01.2015
11.02.2015 21:31:35
вопрос не понял. Причем здесь os.time и таймфрейм?
Что кажет? Что надо?
CreateDataSource, какое правильное расположение функции CreateDataSource?
Пользователь
Сообщений: Регистрация: 30.01.2015
11.02.2015 21:27:22
Раньше надо было подписываться в main. Я так и делаю. Возможно разработчики уже исправили этот ляп, я не проверял.
iuplua, обсуждаем работу стороннего графического пакета
Пользователь
Сообщений: Регистрация: 30.01.2015
11.02.2015 21:24:06
так конвертирует WP , а редактировать лень, замените сами на кавычки ".
Создание "вечного робота"., Переподключение QUIK и Lua-скрипта на следующий день.
Пользователь
Сообщений: Регистрация: 30.01.2015
11.02.2015 20:46:51
Для проверки подключения рекомендую делать так:
if getInfoParam("SERVERTIME")=="" then --подключения нет else --подключение есть end
Конвертация Qple на Lua
Пользователь
Сообщений: Регистрация: 30.01.2015
09.02.2015 21:07:04
Так как QPILE - это танк первой мировой, то изготовить из него современный можно лишь с помощью кувалды и отбойного молотка, что автоматизировать очень сложно и следовательно дорого, но возможно.
iuplua, обсуждаем работу стороннего графического пакета
Пользователь
Сообщений: Регистрация: 30.01.2015
09.02.2015 21:03:17
они у каждого свои. работают любые.
iuplua, обсуждаем работу стороннего графического пакета
Пользователь
Сообщений: Регистрация: 30.01.2015
09.02.2015 20:56:56
На днях решил вернуться к пакету IUP и проверить его работу в QUIK . IUP - версия 3.13, QUIK - версия 6.16.1.15. Раньше не удавалось получить устойчивой работы пакета. Произнеся несколько заклинаний , я с удовлетворением отметил, что тест не падает и ничего не роняет. Предлагаю желающим повторить данный эксперимент. тест здесь :
Пожелания по квику и LUA
Пользователь
Сообщений: Регистрация: 30.01.2015
07.02.2015 17:32:57
Добрый день Всем, более пяти лет назад я возмущался, почему нельзя вместо допотопного QPILE сделать нормальный скриптовый язык например LUA. Когда появился ЛУА, я очень удивился решению в виде main потока и говорил , что будут проблемы с многопоточностью. Потому что мне было уже тогда понятно, что родилась вещь в себе (некий монстр, повадки которого даже создатели не знают). И в этом случае создание нормального API было бы более проcтым решением, чем такая модель встроенного языка. ---------------------------------------------- Мне объяснили, что так задумал автор данного творения и все проблемы синхронизации потоков уже решены (но очевидно автору и самому не все проблемы были понятны). ------------------------------- Увы, Пришлось все то, о чем правильно отмечено автором данной ветки писать самому. -------------------------------------------- Полагаю, что причина такого тусклого развития средств разработки торговых роботов в том, что терминал квик изначально это условно бесплатная программа для подачи поручений брокеру. И ВСЕ Остальное - это бесплатное приложение. ------------------------------------------------ Игры - это совершенно другая область бизнеса. Там игра - это массовый продукт(товар). ----------------------------------------------- А торговые роботы - это либо дорогие разработки проф участников, либо игрушечные поделки для малограмотных частных инвесторов. Луа в КВИК - это песочница для детского сада. Вот желающие могут строить дома и возить песочек на игрушечных машинах. Умеющие стряпать игрушечных роботов впаривают им свои поделки. -------------------------------------------------------------------- Здесь пока нет бизнеса, поэтому и нет нормальных решений среды разработки. Но это не только недостаток КВИК, это уровень данного вопроса на российском фондовом рынке. На российском рынке бабло делают без роботов. ---------------------------------------------------------------------- Но я рад , что в нашем полку недовольных прибыло. ----------------------------------------------------------------------- Порою смелое движение вперед есть результат пинка под зад.
Событие возвращает ошибку 1000
Пользователь
Сообщений: Регистрация: 30.01.2015
06.02.2015 17:30:27
может быть проблема в _luafix?
Создание "вечного робота"., Переподключение QUIK и Lua-скрипта на следующий день.
Пользователь
Сообщений: Регистрация: 30.01.2015
06.02.2015 17:23:13
например так: --------------------------- local qtnF=getQuoteLevel2 (ClassCode, nFuture)
if qtnF~=nil then local bid_=qtnF.bid; local bid_count=qtnF.bid_count; if bid~=nil and bid_count~=0 then bid=bid_[bid_count].price --делаем что надо -- end end
Очередь+Массив, Объединение свойств очереди и массива.
Пользователь
Сообщений: Регистрация: 30.01.2015
02.02.2015 19:48:31
Добрый день, Нарисовал библиотеку на чистом луа для работы с очередями без использования каких либо модулей. Полагаю должна работать с QLUA без проблем. ------------------------------ Отличается от написанной выше Владимиром следующим: 1) Вариант Владимира может работать лишь при условии что длина истории очереди не выходит за точность чисел в формате double. 2) В моем варианте функция push работает в 3 раза быстрее 3) добавил функцию full - для обнаружения заполненной очереди. -------------------------------------- Особо сильно не тестировал, поэтому сообщения об ошибках приветствуются. -------------------------------- модуль можно взять тут
Очередь+Массив, Объединение свойств очереди и массива.
Пользователь
Сообщений: Регистрация: 30.01.2015
02.02.2015 13:53:22
Владимир, Я вот немного ваши программы переписал в таком виде: -------------------------------------------- local function _new(q_size) return { first = 1, last =0, max_size = q_size } end
local function _delq(q) local m=q.first local x = q[m] q[m] = nil q.first = m + 1 return x end
local function _push( q, value ) q.last = q.last + 1 q[q.last] = value if q.last >q.max_size then return _delq(q) end end
local function _pop( q) if q.last>=q.first then return _delq(q); end end
local function _get(q,pos) local x=q.first+pos if q.last>=x then return q[x] end end -- если очередь пустая то get(q,0)=nil
Создание "вечного робота"., Переподключение QUIK и Lua-скрипта на следующий день.
Пользователь
Сообщений: Регистрация: 30.01.2015
02.02.2015 09:25:21
пардон, давно не пользуюсь этой функцией, поэтому забыл про данный ляп в QLUA.
Очередь+Массив, Объединение свойств очереди и массива.
Пользователь
Сообщений: Регистрация: 30.01.2015
02.02.2015 09:22:19
Добрый день,Владимир, 1) Из своего опыта замечу, что самый эффективный алгоритм и его реализацию подобного класса задач можно сделать с использованием операций над битами и языка уровня СИ.
Очередь+Массив, Объединение свойств очереди и массива.
Пользователь
Сообщений: Регистрация: 30.01.2015
01.02.2015 20:46:10
Добрый день, А такой вариант устроит ?
---- создать новый массив, максимальная длина N new=function(N) local t={}; t.len=N; return t; end
---- вытолкнуть первый элемент pop=function(t) if #t>0 then return table.remove(t,1); end end
---- поставить в очередь , если очередь >N -вытолкнуть первый push=function(t,x) t[#t+1]=x; if #t>t.len then return table.remove(t,1) end; end
--------------- доступ к любому элементу как к элементу таблицы квадратными скобками
Создание "вечного робота"., Переподключение QUIK и Lua-скрипта на следующий день.
Пользователь
Сообщений: Регистрация: 30.01.2015
01.02.2015 18:31:07
Добрый день, 1) tt1[0] В Lua принято индексы таблицы начинать с 1. иначе неправильно работает # (размер массива).
2) попробуйте так: if ( t~=nil and tt1~=nil and #t>0 and (my_position==0) and (ind==0) and (t[1].close > tt1[0].close)) then