Постов с тегом "QLua": 179

QLua


Алготрейдинг - торговые роботы ROBOT_PYRAMIDING и ROBOT_MARKET_REVERSAL

Пару свойств и принципов движения цен, на основе которых построены два авторских торговых робота для терминала QUIK — трендовый робот ROBOT_PYRAMIDING и контртрендовый робот ROBOT_MARKET_REVERSAL:
1. Свойство трендов продолжаться, при этом цена колеблется от динамических уровней поддержки/сопротивления, в виде скользящих средних линий, в сторону существующего тренда;
2. Покупать следует то, что дёшево, но не дешевеет, продавать то, что дорого, но не дорожает. 

Скачать полнофункциональные ДЕМО версии торговых роботов можно по ссылке: 
www.tradingalgorithms2020.ru


Ниже приведены характерные точки входа против тренда (2-е дно с ложным пробоем, перевернутые голова и плечи, 2-й верх с ложным пробоем, голова и плечи), реализованные в контртрендовом роботе ROBOT_MARKET_REVERSAL:

Сбербанк   — бычий разворот 19.03.2020 (таймфрейм 4ч):
Сбербанк бычий разворот рынка 19.03.2020


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

Алготрейдинг - торговый робот ROBOT_PYRAMIDING

Отторговка торгового робота — ROBOT_PYRAMIDING, за прошедшую торговую неделю (16.11.2020 — 20.11.2020):

16.11.2020
Алроса вход вход выход ЛОНГ:
Алготрейдинг - торговый робот ROBOT_PYRAMIDING
Газпром вход выход ЛОНГ:
Алготрейдинг - торговый робот ROBOT_PYRAMIDING

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

QLua скринер стакана. Или стакан к празднику!

Всем привет, и желаю здравствовать!
Вчера один наш коллега попросил решить простенькую задачу — отображать стаканный спред в моменте, то есть (best_ask_price+best_bid_brice)/2 с помощью луа-скрипта. Вот такой был диалог:
QLua скринер стакана. Или стакан к празднику!
Чего уж проще, выдался час свободного времени решил помочь. Но походу разработки, пришли идеи сделать, что-то типа скринера стакана с дополнительной информацией, которая, возможно будет полезна для анализа.
А идеи возникли следующие: добавить для мониторинга объем всех бидов и асков, разницу (дельту) между объемами покупок и продаж. Но это можно теперь наблюдать даже на графике в Квике(не прошло и 15-ти лет). А вот следующая идея показалась мне интересной. Рассчитывать в моменте VWP (Volume Weighted Price) цену взвешенную на объем для бидов и асков по отдельности. Чтобы было понятно о чем идет речь покажу это на примере стакана в Jatotrader для RIZ0:
QLua скринер стакана. Или стакан к празднику!

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

бюджетный вариант удаленного робота на виртуальном сервере (4)

в продолжение поста https://smart-lab.ru/blog/offtop/638196.php
напомню еще раз сам себе, чем я занимаюсь, для чего мне нужен виртуальный сервер. Идея простая — для того, чтобы использовать преимущества мобильной торговли, мне нужен софт (можно назвать его «советник»), которое будет посылать сигналы на телефон. Понятно, что для такой «простой» задачи не требуется «навароченное железо». Задачи следующие — считать данные о текущих ценах из терминала, сохранить их в БД, посчитать свои индикаторы, сравнить с выставленными уставками и сигнализировать об алармах по почте или через бота. Планируется получать сигналы не чаще 3-5 раз за одну торговую сессию.
Что я сейчас уже реализовал — подобрал дешевый VPS (55 р/месяц), установил XP и два терминала (QUIK и ALOR) от разных брокеров, написал и протестил программы, которые позволяют сохранять информацию о ценах в файлы(SQLite база данных), через которые потом другая прога — «советник», будет формировать сигналы. Этот софт я начал писать на Python 3.4 (так как 3.4 это последняя версия поддерживаемая ХР)

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

бюджетный вариант удаленного робота на виртуальном сервере (3)

в продолжение поста https://smart-lab.ru/blog/634376.php
Удалось найти провайдера с VPS (RAM 512M+установка своей OS) всего за 55 руб/месяц.
Поставил минимальную XP + QUIK 7.5 + ALOR + Python 3.4 + VS2010 + NET 4.0  и все это на 7 GB влезло.
Неделю уже в реале работает !

бюджетный вариант удаленного робота на виртуальном сервере (3)

Теперь надо попробовать со скриптами QLUA + Python 3 запустить…

qlua написать скрипт, вывод таблицы в csv файл

сейчас вывожу по dde в excel.
Можно через lua выводить выбранные таблицы в csv файлы с интервалом 5-10мин, сразу после запуска quik ?

ps кто может написать скрипт?
  • обсудить на форуме:
  • Quik Lua

QLua скринер, или то, о чём мечтал Weddy!

Всем, привет!
Мечты сбываются (и не только у Газпрома)! Weddy, надеюсь этим постом я полностью закрываю ваше ТЗ.
QLua скринер, или то, о чём мечтал Weddy!
Суть скринера в вышеизложенном пожелании. Т.к. первый и второй скринеры не удовлетворяли требованиям ТЗ Weddy.
Надеюсь, теперь все ок. Выглядит так:
QLua скринер, или то, о чём мечтал Weddy!

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

QLua скринер. Обновление.

Всем привет!
В продолжение топика «QLua скринер в 10 строк кода. Или „за базар отвечаю“, можно качать обнулённый обновлённый скринер.
Выглядит так в статике:
QLua скринер. Обновление.
А так в динамике.
Если в прошлом скринере отображалось изменение текущей цены от цен закрытия за соответствующее количество торговых сессий (список „срезов“ задается пользователем), то в этом будет две таблицы. Первая таблица — изменение текущей цены от предыдущих хаев (чуть не оговорился...) за N-торговых сессий, вторая — от предыдущих лоёв.
В первой таблице от минимумов выделена строка с длинными ОФЗ. Видно, что минимум цены за 30 торговых сессий был на прошлой сессии.
А во второй таблице, мы видим, что Яндекс и Магнит обновили сегодня свои максимумы за последние 90 торговых сессий.
Таким образом, техзадание (ТЗ) участника тусовки Weddy практически выполнено, остается доделать, как он просил, тот же функционал, только относительно списка заданных дат.

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

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

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

( Читать дальше )
  • обсудить на форуме:
  • 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

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