Постов с тегом "QuiK": 1983

QuiK


скрипт для quik

скрипт для отслеживания бумаг по системе BWS:

--Массив с Тикерами, добавьте нужные тикеры
aTickerList = {"MSNG", "GAZP", "LKOH",
	    "SIBN", "GMKN","ROSN",
	    "SBER", "TATN", "NVTK",
	    "IRAO", "RSTI", "SBERP",
	    "PHOR", "SNGS", "TRNFP",
	    "VTBR", "FEES", "MVID",
	    "RASP", "MFON", "AFLT", 
	    "MAGN", "ALRS", "MTSS", "MOEX",
	    "RTKM", "MGNT", "NLMK", "SNGSP",
	    "CHMF", "MTLR", "HYDR", "MFON",
	    "RSTI", "PLZL", "BANEP", "POLY"
	    };

--Функция поиска цены
function fGetPrice(sTickerName, sNum)
	--Подключаемся к источнику данных
	local ds=CreateDataSource("TQBR", sTickerName, INTERVAL_D1);
	while (Error=="" or Error == nil) and ds:Size() ==0 do sleep(10) end;
	if Error ~="" and Error ~=nil then message("Error: "..Error, 1) end;
	local sSize=ds:Size();
	local sCurrentPrice=ds:O(sSize);
	
	local sLastWeekPrice7=0;
	local sLastWeekPrice14=0;

	--Берем цену закрытия свечи неделю назад
	sLastWeekPrice7=ds:C(sSize-4);
	--Берем цену закрытия свечи 2 недели назад
	sLastWeekPrice14=ds:C(sSize-8);

		--Вычисляем проценты
		local sPrc7=math.floor((100-((sLastWeekPrice7*100)/sCurrentPrice))*100)/100;
		local sPrc14=math.floor((100-((sLastWeekPrice14*100)/sCurrentPrice))*100)/100;

		--Заполняем таблицу значениями
		SetCell(t_id, sNum, 0, tostring(sTickerName));
   		SetCell(t_id, sNum, 1, tostring(sCurrentPrice),sCurrentPrice);
   		SetCell(t_id, sNum, 2, tostring(sLastWeekPrice7),sLastWeekPrice7);
   		SetCell(t_id, sNum, 3, tostring(sLastWeekPrice14),sLastWeekPrice14);
   		SetCell(t_id, sNum, 4, tostring(sPrc7),sPrc7);
		SetCell(t_id, sNum, 5, tostring(sPrc14),sPrc14);

		--Текущая цена больше цены прошлой недели - раскрашиваем зеленым
		if sCurrentPrice>sLastWeekPrice7 then 
			fGreen(sNum);
		end;
		--Текущая цена меньше цены прошлой недели - раскрашиваем красным
		if sCurrentPrice<sLastWeekPrice7 then
			fRed(sNum);
	   	end;
		--Текущая цена больше цены прошлой недели и цена прошлой недели больше цены позапрошлой недели
		--раскрашиваем желтым
		if sCurrentPrice>sLastWeekPrice7 and sLastWeekPrice7>sLastWeekPrice14  then 
			fYellow(sNum);
	   	end;
end;

--- Функция создает таблицу
function CreateTable()
	-- Получает доступный id для создания
	t_id = AllocTable();	
	-- Добавляет 6 колонок
 	AddColumn(t_id, 0, "Тикер", true, QTABLE_INT_TYPE, 15);
 	AddColumn(t_id, 1, "Сегодня", true, QTABLE_INT_TYPE, 15);
 	AddColumn(t_id, 2, "Неделя", true, QTABLE_INT_TYPE, 15);
 	AddColumn(t_id, 3, "2 Недели", true, QTABLE_INT_TYPE, 15);
 	AddColumn(t_id, 4, "Неделя (%)", true, QTABLE_INT_TYPE, 15);
 	AddColumn(t_id, 5, "2 Недели (%)", true, QTABLE_INT_TYPE, 15);
	
	-- Создаем
	t = CreateWindow(t_id);
	-- Даем заголовок	
	SetWindowCaption(t_id, "7 Days");

   -- Добавляем строки
      for k,v in pairs(aTickerList) do
		InsertRow(t_id, k);
      end;
end;

--- Функции раскрашивают ячейки таблицы
function fRed(col)
	SetColor(t_id, col, -1, RGB(255,168,164), RGB(0,0,0), RGB(255,168,164), RGB(0,0,0));
end;
function fGreen(col)
	SetColor(t_id, col, -1, RGB(157,241,163), RGB(0,0,0), RGB(157,241,163), RGB(0,0,0));
end;
function fYellow(col)
	SetColor(t_id, col, -1, RGB(249,247,172), RGB(0,0,0), RGB(249,247,172), RGB(0,0,0));
end;

--Основная функция
function main()
	-- Создаем таблицу
 	CreateTable();

 	--Пробегаемся по массиву тикеров
	for k,v in pairs(aTickerList) do
	  fGetPrice(v, k);
	end;

end;
как выглядит в квике:

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

Lua индикатор тикера ищу.

Доброго времени всем.
Я ищу Lua индикатор в Quik, который пишет на графике в левом верхнем углу название инструмента. Однажды наткнулся на него в интернете, счёл что бесполезная вещь и не стал его сохранять. А вот теперь понадобился и самому, но не могу вспомнить где я его видел. Может он есть у кого или кто-нить знает с какого ресурса его можно качнуть? Буду очень признателен в помощи его отыскать.

Автоматизация торговли для нищеброда. Анонсирую небольшое дополнение в рамках своего парсера. Тестируем стратегию без денег.

Коллеги, всем добрый день!
В силу жизненных обстоятельств был вынужден вывести остатки денежных средств с торговой площадки. Но сила лудомании и тяга к исследованию рынка выше данных обстоятельств. Поэтому решил написать небольшое дополнение, которое позволяет протестировать стратегию без непосредственного выставления заявок в торговую систему. Вы скажете зачем это нужно, когда можно довольствоваться результатами бэк-теста. Но на мой взгляд данные результаты не в полной мере эмулируют реальную ситуацию на рынке, кроме того, форвардное тестирование тоже никто не отменял. Но, а в моём случае отсутствие дс на торговом счёте является ключевым фактором в пользу данного решения.
Если конкретизировать в программе появилась дополнительная кнопка «Equity» при нажатии на которую отображается график доходности тестируемой системы в декартовой системе координат: левая шкала-доходность в пунктах, ось X-номер сделки (см. рисунок нужен).



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

10 этапов разработки торгового робота под QUIK и TSLab от Robot Scalper

Торговый робот для QUIK на LUA

К нам поступил запрос на создание многопараметрического робота, с кучей условий торговой логики и в конце с припиской: «За работу я готов оплатить 800 рублей». Как у заказчика получилась такая сумма осталось не ясно. Возможно, всё тривиально, и это просто все его доступные средства, которые остались от торговли по интуиции. А возможно человек просто не понимает какую работу нужно проделать и из чего образуется цена на торговых роботов. Но это не страшно. Мы как раз сейчас и постараемся разобраться в этом.

Итак, чтобы разработать робота нужно выполнить определенные этапы. Рассмотрим их.
  1. Нужно определиться с торговой стратегией и формализовать её (точки входа, стоп-лоссы, тейк-профиты, фильтры и т.п.);
  2. Желательно создать прототип данного робота;
  3. Проверить работоспособность стратегии и прототипа на исторических данных;
  4. Желательно провести оптимизацию стратегии и найти оптимальные значения параметров;
  5. Нужно провести анализ сделок и добавить общие фильтры на ситуации в которых робот часто показывает убытки. Главное, нельзя примерять переоптимизацию! Иначе в реальной торговли результаты будут сильно отличаться! После этого возвращаемся к пункту 4. И работаем до тех пор пока стратегия не будет универсальной или пока мы её не забракуем как непригодную. Так тоже бывает, и не редко.


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

QuikOrdersDOM - Скальперский привод для Квика.

    • 18 февраля 2019, 18:32
    • |
    • _sg_
  • Еще
Примерно в 2009 — 2010 гг я наткнулся на интересный привод для скальпинга под Квик.
БЕСПЛАТНЫЙ.
Я, естественно, скачал, установил попробовал поработать — мне понравилось.
Для начинающих вполне подойдет быстро сделки совершать.
Жмакнул по кнопке напротив цены и привет — сделка сделана.

Но поскольку в 2009 году у меня уже были свои роботы полностью автоматические,
я про этот привод благополучно забыл.

А сейчас на нашем тухлом рынке скучновато стало, спать хочется. Захотелось поразвлечься.  
И я еле-еле вспомнил название этого привода. QuikOrdersDOM — называется.

Порылся в Google и нашел. Вот ссылка: ttools.ru/?page_id=384

Я считаю, что это интересный БЕСПЛАТНЫЙ продукт.
Попробовать себя в скальпинге и понять Ваше или нет — вполне подойдет. 
Конечно, он хуже, чем QScalp. Но QScalp денег стоит (Или 20 или 25 тысяч).

Я сам не пробовал последнюю версию этого привода.
Там данные по стаканам привод берет прямо из памяти Квика для быстрой работы.
Поэтому, может быть, с новыми версиями Квика он работать уже не будет.

Но кому нужно тот и проверит.
Желаю всем успехов в торговле.

PS.
Это не реклама. Я лицо не заинтересованное.
Но привод интересный.
  • обсудить на форуме:
  • QUIK

Загрузка процессора на 100% от запущенного скрипта lua. Что делать?...

Коллеги, Всем добрый день!

Раньше не приходилось работать с lua.  Но здесь накатал небольшой скрипт в рамках которого происходит запросы текущей цены инструмента и запись её файл и столкнулся с проблемами производительности.
До запуска скрипта  доля нагрузки Quik-a на процессор составляла порядка 2%.
После запуска скрипта нагрузка на процессор увеличилась до 30%.   На рабочем компьютере все работает, но вот на виртуалке, где производительность ниже, всё виснет.
Ребят кто сталкивался с подобным и возможно ли оптимизация данной ситуации?

Скрипт скрипта прилагаю, но не думаю, что в нём проблема:

local stopped=false
local FileNameRead=getScriptPath().."\\poz.txt"
local FileNameWrite=getScriptPath().."\\data.txt"
local FileRead
local ID
local code
FileRead=io.open(FileNameRead,«r»)
local Read
code,ID=FileRead:read(4,"*n")
FileRead:close()
--message(code)
local ID_back=ID
local direct

function OnStop()
stopped=true
return 5000
end


function main()

local TableSI=AllocTable()
AddColumn(TableSI,1,«Дата»,true,QTABLE_DATE_TYPE,10)
AddColumn(TableSI,2,«Время»,true,QTABLE_TIME_TYPE,10)
AddColumn(TableSI,3,«Код»,true,QTABLE_STRING_TYPE,10)
AddColumn(TableSI,4,«Цена»,true,QTABLE_INT_TYPE,10)
AddColumn(TableSI,5,«Позиция»,true,QTABLE_INT_TYPE,10)



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

QUIK

Предистория — QUIK

в итоге снес все, ВООБЩЕ ВСЕ, файлы .dat (у меня простой QUIK, без наворотов и изысков)

получил

= QUIK стал почти мгновенно загружаться и запускаться
= QUIK стал отжирать оперативки в ПЯТЬ РАЗ МЕНЬШЕ — счас около 350 Mb, а было до 1500
= QUIK перестал моментами перегружать проц и подвисать, когда помимо него на ноуте открыто много всякого учебного материала да ещё в разных средах

СПАСИБО ЖДУНУ ЗА СОВЕТ СНЕСТИ ВСЕ КВИКОВСКИЕ ФАЙЛЫ С .dat
  • обсудить на форуме:
  • QUIK

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