Постов с тегом "Quik Lua": 232

Quik Lua


QLua скринер в 10 строк кода. Или "за базар отвечаю".

Всем привет!
Никогда не давайте обещаний которые не можете выполнить. Во-первых — это портит карму. Во-вторых, за сказанное нужно отвечать. В далеких (не очень) 90-х, если человек не держал слова, к нему приезжали «санитары» с электроприборами, типа дрель, паяльник, утюг — все перечислять не буду, чтобы не пугать читателя, т.к. пост многие найдут полезным не только для торговли, но и для написания собственного кода. Так вот, пообещал я человеку, дело было так:
QLua скринер в 10 строк кода. Или "за базар отвечаю".
Мой родной язык, помимо русского, Common Lisp. С недавних пор породнился с Питоном. А тут луа, да еще с Квиком вперемешку. Не фиг было обещания давать. Больше времени потратил на изучение структур данных луа и особенностей QLua. Сам код был написан за пару часов, как увидите ниже — чё там писать-то...
Как я обещал — пользователь Смартлаба Weddy получает код бесплатно, как и остальные участники тусовки. Ну а я, в качестве вознаграждения получаю приобретенный опыт. Проверял сегодня — работает с любым Квиком (6, 7, 8). Конечно дополнительных «наворотов» я не делал, как в идеале желал Weddy, но это уже детали.

( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Python-->Lua-->Квик. Управление заявками в Квике из Питона.

Всем привет!
То о чем так долго мечтали большевики — свершилось!
Представляю QLua-сервер для управления заявками в Квике Квиком. Как обычно, в несколько строк кода.


( Читать дальше )

Индикатор для QUIK на LUA

    • 11 июня 2020, 12:39
    • |
    • VladEK
  • Еще
Добрый день.

Ищу специалиста, который напишет индикатор для QUIK на LUA.
Для обсуждения условий, прошу оставить контакты либо в личку, либо в этой теме.

Также буду благодарен, если кого то рекомендуете или напишите специализированный ресурс.
  • обсудить на форуме:
  • Quik Lua

Как я переехал на версию Quik 8.5 ничего не перекомпилируя и не переделывая в роботах. Лайфхак для нубов в программировании.

Из за того, что у меня накрылся на прошлой неделе арендуемый физический сервер, я решил его проапгрейдить  заодно установить в ВТБ новый квик.
В ВТБ  в частности постоянно прилетало сообщение, что надо устанавливать новый квик, что то там с нумерацией заявок на срочном рынке, а так же о том, что версия ЛУА, встроенного в квик, тоже проапгрейдится, и возможно скрипты работать не будут.

Все это пугало, так как программист из меня никакой, все что я умею, это нагуглить, как написать простые логические действия в Питоне или Луа.
В каждом втором посте было что то  про перекомпиляцию, а это для меня вообще не понятно, о чем речь.
Что значит перекомпиляция, если я в блокноте написал код, потом выбрал этот файл в квике, и запустил его нажав на треугольничек?

Ну ладно, деваться некуда, тем более, что когда с сайта ВТБ качаешь дистрибутив квика, там сейчас безвариантивно доступна только версия 8.5

Установил запустил. Скрипт, как и следовало ожидать, на первый взгляд, заработал сразу, без всяких «перекомпиляций». Потому что он написан в блокноте, а переводит в машинный код его (если я правильно понимаю, как все устроено) непосредственно встроенный в квике модуль ЛУА. 

( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Алготрейдинг. Получение данных свечей средствами QLUA и запись их в .CSV

Алготрейдинг. Получение данных свечей средствами QLUA

Очень часто бывает необходимо получить данные последних N-свечей различного интервала инструмента торговли. К сожалению, в справке QLUA нет достаточно полных примеров кода работы получения данных. В скрипте приведён пример получения данных интервала М1 инструмента BRN0 в формате <Инструмент> <Дата> <Время> <Цена_Open> <Цена_High> <Цена_Low> <Цена_Close> <Объем>. Данные пишутся в CSV формат.
Почему просто не выводить по DDE график и обрабатывать его в чём-нибудь более приятном? Есть простые вещи, для которых нет необходимости в таких конструкциях (проанализировать резкое изменение объема, найти определенную формацию/комбинацию свечей, а затем вывести в quik сообщение).
-------------------------------------------------------------------------------------------------------
--- Функция получения результатов свечей в .CSV в виде:
--- <Инструмент> <Дата> <Время> <Цена_Open> <Цена_High> <Цена_Low> <Цена_Close> <Объем>
--- BRN0	1	20200605	200100	42.15	42.16	42.1	42.1	2150
-------------------------------------------------------------------------------------------------------
is_run=true

-- Параметры
tInstr="BRN0" --код инструмента/бумаги
classcode="SPBFUT" --код класса инструмента/бумаги, если нужен фондовый рынок - вводить TQBR вместо SPBFUT
iNterval=INTERVAL_M1 --таймфрейм
-- доступные таймфреймы указаны в справке Quik (qlua.chm в папке с quik) по поиску CreateDataSource
-- пример INTERVAL_H1
corrTime=3 --Время МСК. C сервера время приходит без корректировки.
pFile="w:\\temp" --путь, где будет создаваться файл
cBars=10 --сколько свечей надо вывести
--настройка параметров

function OnInit()
	out_file=io.open(pFile .."\\"..tostring(tInstr)..".csv","w")
	is_run=(out_file~=nil)
	ds=CreateDataSource(classcode, tInstr, iNterval ) --создаем источник данных
	ds:SetUpdateCallback(NewChartData) --обновление последних данных
end

function strText(int)
	local m=tostring(int)
	local mLen=string.len(int)

	if mLen==1 then
		Output="0" .. tostring(m)
	else Output=m
	end
	return Output
end

function main()
	while is_run do
	local Size=ds:Size() --Получение количества всех свечей в источнике данных

	if cBars>Size then
		cBars=Size-1
	end

	for i=Size-cBars, Size, 1 do
		local O=ds:O(i) -- Значение цена открытия свечи
		local H=ds:H(i) -- Значение High для свечи
		local L=ds:L(i) -- Значение Low для свечи
		local C=ds:C(i) -- Значение Close для свечи
		local V=ds:V(i) -- Значение Volume для свечи
		local T=ds:T(i) -- Значение Time для свечи

		sTime=os.time(T)
		datetime=os.date("!*t",sTime)

		--вывод в файл
		out_file:write(tInstr..";"..tostring(iNterval)..";"..tostring(datetime.year)..tostring(strText(datetime.month))..tostring(strText(datetime.day))..";"..tostring(strText(datetime.hour + corrTime))..tostring(strText(datetime.min))..tostring(strText(datetime.sec))..";"..tostring(O)..";"..tostring(H)..";"..tostring(L)..";"..tostring©..";"..tostring(V).."\n")
		out_file:flush() --запись данных
	end
		out_file:close()
		sleep(1000)   -- приостановка на 1 секунду
		out_file=io.open(pFile .."\\"..tostring(tInstr)..".csv","w")
	end
end
  • обсудить на форуме:
  • Quik Lua

Измерение волатильности. Выбор индикатора.

    • 05 июня 2020, 15:10
    • |
    • 3Qu
  • Еще
Иногда для ТС требуется измерение волатильности. Написал два индикатора, вначале простой, потом более сложный. Каждый из них имеет совершенно разные принципы работы, каждый имеет свои преимущества и недостатки. И, вот, сижу, чешу репу, и не могу выбрать.
Смотрим рисунок:
Измерение волатильности. Выбор индикатора.
В более хорошем разрешении картинку можно посмотреть здесь.
На разницу числовых показаний можно не обращать внимания, это вопрос калибровки.
Все настройки индикаторов на картинке полностью идентичны.

Те, у кого Quik 8.5 и уже есть Lua 5.3.5 могут посмотреть индикаторы в своем терминале. Скачать скомпилированные индикаторы можно здесь.


  • обсудить на форуме:
  • Quik Lua

Индикатор в LUA для Квик

    • 02 июня 2020, 14:31
    • |
    • VladEK
  • Еще
Добрый день.

Решил написать индикатор на LUA. Подскажите, пожалуйста, есть ли уже стандартная функция (или куда можно посмотреть), которая, например, на 15 минутном графике получит данные свечки с дневки.
  • обсудить на форуме:
  • Quik Lua

Quik 8.5.2.11, Lua 5.3.5. Первые впечатления.

    • 01 июня 2020, 19:50
    • |
    • 3Qu
  • Еще
Quik, по сравнению с версией 8.2, стал несколько лучше. Меньше подвисает, но иногда бывает. Мелкие, наверно несущественные, изменения в интерфейсе — не сразу и заметил.
Lua 5.3.5, по сравнению с Lua 3.1, летает. То, что исполнялось несколько секунд, теперь пролетает практически мгновенно. В программах Lua никаких изменений делать не пришлось, мною не использовались специфические для Lua 5.1 конструкции.
Вот, DLL, цепляющиеся к Lua, все упали, в буквальном смысле. Пару дней разбирался, несколько изменился C-API, пришлось переделывать функции luaopen в DLL. Помогли ребята с http://quikluacsharp.ru/, если что — смотрите решение у них.
В DLL, по идее, еще надо переделывать int на 64 бит целое (при компиляции куча алармов на эту тему), но, кроме номеров заявок в обозримом будущем, не обязательно. Кроме заявок-сделок, таких номеров в инструментах нет. Пока, по крайней мере.

КВИК-->Lua-->Python. Трансляция данных из КВИКа в Питон в реальном времени

Всех с пятницей — самоизолятницей!
Представляю общественности Python-сервер (в 9 строк кода) для получения данных из КВИКа в Питон через луа-скрипт в режиме реального времени.
Для примера приведу получение тиковых данных по SIM0.
Нам понадобятся следующие ингредиенты.
1. Понятное дело КВИК, версии ниже 8 или 8.5.2 и выше.
2. Питон Jupyter Notebook (Anaconda 3)
3. Луа-скрипт, взятый из Jatotrader (в нем буквально изменено пару строк)
Как работает сервер можно посмотреть в этом видео (1 мин. 38 сек.) Ну и по правилам хорошего тона, естественно сам текст ниже.


( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

....все тэги
UPDONW
Новый дизайн