lergen (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 След.
Разработчик стратегий косячит или это нормально для выходного дня?, Версия терминала 7.27.2.1
 
Вчера 20.03.20 т.е. в пятницу кода все работает щлюзы шмузы разработчик стратегий опять косячил. Вместо  графика опционной позиции на экране просто наклонная линия хотя должен отображаться стредл. Это при том что заказаны котировки интересующих опционов и базового актива, сняты фильтры параметров. В таблице параметров стратегии не отображается цена базового актива ни в столбце "фактич." ни в сценариях. Предположу что это как то связано со сменой базового актива которая произошла как раз с 19.03 на 20.03. Хотя до 19.03 корректно отображалась позиция которая была собрана из опцоинов на разные базовые активы - RIH0 и RIM0. Хотя говоря корректно отображались я имею ввиду форму но не значения - здесь то же есть что сказать. Когда позиция собрана из опционов на разные базовые активы для построения графика позиции берется только цена одного - ближайшего по дате истечения .
В связи с этим:
1. Скажите что сделать что бы заработал разработчик стратегий  - удалить какие то дат файлы или еще что.
2. Прошу зарегистрировать пожелание на доработку разработчика стратегий - что бы при построении суммарной опционной позиции учитывались цены базовых активов разных опционных серий из которых собраны эти позиции.

Спасибо.
Разработчик стратегий косячит или это нормально для выходного дня?, Версия терминала 7.27.2.1
 
Цитата
Сергей написал:
День добрый!
Некое противоречие между двумя предложениями: "загружает текущую позицию  но не прорисовывает графики " и "данные перезаказаны и получены  графики перерисованы ".
Если Ваш вопрос - к пустым стаканам, то да - они пустеют сразу по закрытию сессии. К наполнению готовятся другие стаканы  ::  
Не знаю как у вас у меня стаканы котировок после сессии не пустеют и в них присутствуют заявки которые конечно не сняли участники торгов. Если систему перезагрузить то да стаканы будут очищены. После перезаказа данных прорисовываются графики по кокретным инструментам которые мы открываем как "построить график" или " создать диаграмму по интересующим инструментам". В разработчике стратегий строятся диаграммы по совокупности всей позиции по фьчам и опционам которые и не прорисовываются.
Разработчик стратегий косячит или это нормально для выходного дня?, Версия терминала 7.27.2.1
 
Здравствуйте!
При запуске разработчика он загружает текущую позицию но не прорисовывает графики. Заказ данных для инструментов включен, фильтров параметров нет. Из видимых причин - в поле цена б/а ноль. Пытался подставлять актуальную цену в сценарии - результат тот же. Возможно причина в том что сегодня суббота - но подключение установлено даже данные перезаказаны и получены графики перерисованы - только стаканы(пардон) пустые. Да и проявился этот баг еще вчера. В чем причина может быть?
Получение цены по наклонному тренду., наклонная линия тренда для расчетов., Как рассчитать в будущем цену для наклонных трендов.
 
Зачем заморачиваться с индикаторами. Весь расчет который я вам предложил укладывается в одну формулу. Как получить пиковые значения так же Вам предложил. С более крупного таймфрейма берете значения максимумов или минимумов цен в зависимости от того линию сопротивления или поддержки ищете - сложность только в том что для этих цен нужно будет найти время но опять же на мелком таймфрейме. Но это не так уж и сложно.
Получение цены по наклонному тренду., наклонная линия тренда для расчетов., Как рассчитать в будущем цену для наклонных трендов.
 
Цитата
lergen написал:
Здесь вопрос совсем  в другом - как определить ключевые точки по которым вы будете строить линию тренда. Если Вы знакомы с программированием и сможете достаточно четко формализовать решение данной задачи  то возможно даже денег тут заработаете :)
Пардон, то же все элементарно если не заморачиваться. Можно взять значения цен с более крупных таймфреймов с дневного или 4-х часового.
Получение цены по наклонному тренду., наклонная линия тренда для расчетов., Как рассчитать в будущем цену для наклонных трендов.
 
Вам же правильно подсказали что можно использовать уравнение линии. Считается все элементарно.
P1 - пик цены 1
Р2 - пик цены 2
NT1 - количество интервалов между Р1 и Р2
NT2 - количество интервалов после Р2 до крайнего периода
(Р2 - Р1)/NT1 - коэффициент для построения этой линии назовем его К
Р2 + (NT2 * K)  - то что Вы хотели найти


Здесь вопрос совсем  в другом - как определить ключевые точки по которым вы будете строить линию тренда. Если Вы знакомы с программированием и сможете достаточно четко формализовать решение данной задачи  то возможно даже денег тут заработаете :)
Можно ли из Квика на lua запустить внешний ехе файл?, mail.
 
Спасибо! Будем копать.
Можно ли из Квика на lua запустить внешний ехе файл?, mail.
 
А еще подскажите кто в теме как из виндовсой библиотеки iphlpapi.dll (в частности из ее функции GetIfTable() )получить информацию в скрипт( о состоянии сетевых подключений). За пример буду особенно признателен или хотя бы направление подскажите.
Можно ли из Квика на lua запустить внешний ехе файл?, mail.
 
Бли-и-и-н. Все перепробовал а на это внимание не обратил. Вернее смутило то что это ID оборудования.
Михаил - снимаю шляпу. Работает.
Можно ли из Квика на lua запустить внешний ехе файл?, mail.
 
День добрый!
Не запускается exe файл с параметрами. От поиска в глазах рябит уже.

os.execute("C:\\Work\\2\\devcon.exe enable USB\Class..")
os.execute("C:\\Work\\2\\devcon.exe -enable USB\Class..")
os.execute("C:\\Work\\2\\devcon  -enable USB\Class..")
io.popen -также не спасает
на что ругается cmd не вижу поскольку не могу в параметрах ему задать паузу. Квик запущен от админа, в свойствах devcon  так же указан запуск с правами админа. Пробовал через батник. Если сам батник запускаю руками из cmd все работает -  из скрипта ни как.
Что не так делаю подскажите  
Взаимодействие OLua и Lua под Виндой
 
Готов взять обратно свои слова о слабом быстродействии Qlua. Оптимизацией алгоритма добился того что скрипт обрабатывающий таблицу в 6500 строк делает 15 проходов в секунду. Опять же оговорюсь что это для моего железа - для кого то возможно это так себе показатель. Замедление происходит в основном при взаимодействии виртуальной машины с квиком - при опросе графиков, таблиц, выводах в таблицы, сохранении в файл .... Если эти операции ограничить до необходимой целесообразности то все работает довольно шустро.
Что приходит в OnTransReply ?
 
Цитата
Nikolay написал:
Сам же себе и отвечу.

Если пишем систему в реальном времени, то функция main должна просто что-то инициализировать и все.
Далее все должно выполняться в коллбэках. Если их нет, то и нечего анализировать получается.
Пришла свечка - отвечаем на событие, решили, что надо сделать транзакцию, отправили ее. Ждем ответа о ее завершении.

А вот в функции main, видимо, надо как раз анализировать ситуации когда ответа нет. Скажем, нет ответа на транзакцию, значит перебери ордера, чтобы понять, может она прошла. Видимо, так. Я пока не все еще продумал, т.к. не очень знаком с организацие вызовов в qlua, но, наверно, есть ситуации неуловимые коллбэками.

А вот если система не реального времени, а по расписанию, то, как я понимаю, все надо реализовывать в бесконечном цикле main.
Скажем, цикл, перебирающий список бумаг каждые 15 минут и рассчитывающий что-то. Правда в этом месте возникает вопрос, а нельзя ли при инициализации скрипта назначить один и тот же коллбэк на получение данных разных инструментов, разных интервалов? Тогда и здесь можно было бы все в этом одном коллбэке делать не утилизируя функцию main. Судя по описанию нельзя. Т.е. я вынужден каждые 15 минут заново перибирать список инструментов, получать данные, считать. А если бы в коллбэк приходил не только индекс, но признак чей это индекс, то можно было бы сохранив ранее DS каждого инструмента, отреагировать именно на него.
Колбеки нельзя перегружать кодом, можешь завесить Квик. Процесс main это один поток, рядом в потоке сам квик с колбеками. В одном OnTransReply анализируй все. Сначала отфильтруй повторный вызов колбека, потом фильтруй по бумаге если нужно, потом фильтруй по своим ID.
QUIK для HFT
 
Вы можете разместить ваш терминал на серверах биржи или где то поблизости исключив тем самым некоторую зависимость от временной задержки сигнала- но это нельзя назвать прямым доступом. Все равно ваша заявка будет сначала попадать на сервер квик потом уже на биржу. Для непосредственно прямого доступа нужно использовать PLAZA2, FAST/FIX или что там может уже новое есть. Но там уже используются не Квик а другие терминалы и скорее всего там нужно писать на "С". Но еще нужно сказать что это будет вам стоить дополнительных денег. Если вы уверены в своей стратегии то необходимости самому учить "С" нет  - можно же заказать. В свое время то же планировал выйти на прямой доступ но потом отказался от этой затеи - после обсуждения возможностей стратегии которую хотел использовать с теми кто уже занимался тем же.
OnTrade для сделок по FUTSPREAD
 
Проблему можно было бы решить легко, например в операторе сравнения номеров использовать "<=" для случая когда не делаем ни чего, это было бы справедливо если бы номера инициированных сделок по фьючу были больше номера сделок по спреду, что казалось мне логичным пока не увидел в таблице сделок что номер сделки по спреду больше. Поэтому вопрос - это случайность или закономерность?
OnTrade для сделок по FUTSPREAD
 
Кажется дошло.
За сделками по спреду автоматически следуют сделки по фьючам и видимо повторные вызовы по спреду приходят уже после колбека по фьючу. А поскольку я сохранял один номер только последний то он забивался фьючем перед приходом повторного по спреду   Нужно запоминать несколько номеров а не один.
OnTrade для сделок по FUTSPREAD
 
Не совсем Вас понял.
Вы хотите сказать что по одной сделке будут колбеки с разными номерами?
OnTrade для сделок по FUTSPREAD
 
День добрый всем!
В обозначенном колбеке обрабатываются сделки по указанному класскоду. При этом есть фильтр для отсеивания  повторных вызовов с одинаковыми номерами.
Но в результате " ни когда такого не было и вот опять" - прошла одна сделка по FUTSPREAD и получил два срабатывания колбека.

function OnTrade (trade)
if tr_num~=trade.trade_num then tr_num=trade.trade_num; new_trade=1

if (trade.sec_code==spreadPara) and (string.match(trade.brokerref,"limit")) then
local lot=math.abs(trade.qty)
--============================================================­=====
if bit.band(trade["flags"],4)>0 then

SendOrder("S",lot,bid-500,"M", "market", nF,M_SellNF,"SPBFUT")
SendOrder("B",lot,offer+500,"M", "market", fF,M_BuyFF,"SPBFUT")
else

SendOrder("S",lot,bid-500,"M", "market", fF,M_SellFF,"SPBFUT")
SendOrder("B",lot,bid+500,"M", "market", nF,M_BuyNF,"SPBFUT")
end
end
end
end
Это что какие то особенности FUTSPREAD.Возможно появление сделок по фьючам которые следуют за спредом несут признаки сделки по спреду?
Взаимодействие OLua и Lua под Виндой
 
Андрей спасибо за помощь. На сколько я помню МТ работает на исторических данных мне это не подходит. Да и не вспомню сейчас насколько он гибок в настройках, уж сам то я сваяю что мне в голову взбредет. На данный момент есть несколько наметок как развязать узелок. Возможно обойдусь оптимизацией алгоритма.
За ссылки спасибо - "С" думаю все равно нужен будет со временем.
Взаимодействие OLua и Lua под Виндой
 
Цитата
Андрей написал:
Цитата
lergen   написал:
Возникла необходимость ускорить обработку данных в написанном тестере стратегий
А как тестер писали ? он на Луа у Вас ?

По теме, можно на С++ он запускает Луа скрипты спокойно, только нужно будет источники данных делать думаю и скрипты квика переписывать под тестер. По сути программа - тестер. (первое что в голову пришло)
Писал сам на lua. С "С" вариант мне не подходит пока с ним не работал. Дело не в языке даже а во взаимодействии его с виндой и с lua. Во все это вникнуть это отдельная тема  - пока такой задачи не ставлю - со временем свободным не так хорошо как хотелось бы.
  Хочу пока с lua разобраться какие варианты есть передать параметры из скрипта работающего в квике скрипту который запущен  в винде.
Взаимодействие OLua и Lua под Виндой
 
Возникла необходимость ускорить обработку данных в написанном тестере стратегий поскольку на том железе что я имею мой бот с таблицей необходимгого мне размера плохо справляется - всего 4 прохода в секунду(весь скрипт). По личному опыту знаю что аналогичный скрипт исполняемый не в квике а запущенный  в винде работает в десятки раз быстрее. Подскажите есть какие нибудь  варианты связать два скрипта работающие в квике и в винде кроме как через запись в файл? Вариант с С# пока не подходит поскольку с ним пока не работал.
number value
 
Ок. Спасибо за оперативность. Нашел косяк - в одном месте было присваивание st.n_f = ...которое и ломало таблицу.
number value
 
Ну хорошо. Создаем таблицу:
st=LoadTable(StatePath)
var=LoadTable(varPath)
if st==nil then st={}
st.line = { -20, -10, 10, 20, 30 }
st.chart = { -4, -2, 2, 4, 6 }
st.profit = { 10, 30, 50, 70, 90 }
st.stop = { 100, 200, 300, 400, 500 }
st.open_poz = {};
st.open_fut = {};
st.nh = {};
st.h_r = {};
st.tax = {};
st.n_f = {};
st.state_max = {};
st.state_min = {};
Потом ее иницализирую нолями
local m = #st.line * #st.chart * # st.profit * #st.stop

if #st.tax < m then
for r = #st.tax + 1 ,m - #st.tax do
st.open_poz[r] = 0;
st.open_fut[r] = 0;
st.nh[r] = 0;
st.h_r[r] = 0;
st.tax[r] = 0;
st.n_f[r] = 0;
st.state_max[r] = 0;
st.state_min[r] = 0;
end
end
.......
.......
Потом та строка которая вызывает ошибку.
Что не так?
number value
 
И даже вот так
if tonumber(st.n_f[i])>tonumber(0) then
st.open_fut[i] = offer_Fut
elseif tonumber(st.n_f[i])<tonumber(0) then
st.open_fut[i] = bid_Fut
end
результат тот же
number value
 
День добрый!
Строка:
if st.n_f[i] > 0 then
st.open_fut[i] = offer_Fut
elseif st.n_f[i] < 0 then
st.open_fut[i] = bid_Fut
end
вызывает ошибку:
attempt to index field 'n_f' (a number value)

В чем закавыка?
open_interest, актуальность данных
 
Цитата
lergen написал:
Цитата
Stanislav Tvorogov   написал:
Добрый день,
Цитата
lergen   написал:
Складывается впечатление что обновление open_interest несколько запаздывает. Это может быть  так?
Уточните, относительно чего определяется запаздывание?
Во втором посте пример, цифра перед "//" показывает количество в последней заявке, после "//" - новое количество открытых позиций и в последних строках оно не меняется.
Вопрос - количество открытых позиций пересчитывается после каждой сделки, может ли этот пересчет запаздывать?
И еще дополню свой вопрос :
если я в этом же колбеке(OnAllTrade) буду обрабатывать все сделки по одному из инструментов то в моменты сильных движений колбек вероятно будет вызываться в связи с новой сделкой до того как я успею обработать старую. Не будут ли теряться при этом данные. т.е. новый вызов колбека не прервет работу старого или данные будут сохраняться в стеке?
open_interest, актуальность данных
 
Цитата
Stanislav Tvorogov написал:
Добрый день,
Цитата
lergen   написал:
Складывается впечатление что обновление open_interest несколько запаздывает. Это может быть  так?
Уточните, относительно чего определяется запаздывание?
Во втором посте пример, цифра перед "//" показывает количество в последней заявке, после "//" - новое количество открытых позиций и в последних строках оно не меняется.
Вопрос - количество открытых позиций пересчитывается после каждой сделки, может ли этот пересчет запаздывать?
open_interest, актуальность данных
 
Цитата
Stanislav Tvorogov написал:

Цитата
lergen   написал:
А скажите какой строка в таблице параметров сделки может указывать на открытие или закрытие позиции?
В таблице обезличенных сделок такого параметра, к сожалению, нет.
А любые другие косвенные признаки найти могут помочь?
open_interest, актуальность данных
 
Теоретически можно предположить что это все встречные сделки - в смысле открытие об закрытие и наоборот. Но столько подряд как то мало вероятно.
А скажите какой строка в таблице параметров сделки может указывать на открытие или закрытие позиции?
open_interest, актуальность данных
 
для примера
      покупка
10410,000000      03.06.2017     1:15:10     2 // 609296
10411,000000      03.06.2017     1:15:10     покупка
10412,000000      03.06.2017     1:15:10     1 // 609294
10413,000000      03.06.2017     1:15:10     покупка
10414,000000      03.06.2017     1:15:10     1 // 609292
10415,000000      03.06.2017     1:15:10     покупка
10416,000000      03.06.2017     1:15:10     8 // 609276
10417,000000      03.06.2017     1:15:10     покупка
10418,000000      03.06.2017     1:15:10     4 // 609276
10419,000000      03.06.2017     1:15:10     покупка
10420,000000      03.06.2017     1:15:10     29 // 609276
10421,000000      03.06.2017     1:15:10     продажа
10422,000000      03.06.2017     1:15:10     1 // 609276
10423,000000      03.06.2017     1:15:10     продажа
10424,000000      03.06.2017     1:15:10     1 // 609276
10425,000000      03.06.2017     1:15:10     продажа
10426,000000      03.06.2017     1:15:10     1 // 609276
10427,000000      03.06.2017     1:15:11      продажа
10428,000000      03.06.2017     1:15:11      1 // 609276
10429,000000      03.06.2017     1:15:11      продажа
10430,000000      03.06.2017     1:15:11      1 // 609276
open_interest, актуальность данных
 
Есть задача вычислять онлайн количество лонговых и шортовых открытых позиций.
Для этого в OnAllTrade вставил код просчета опираясь на open_interest и qty.
Предварительно делаю снимок потока этих данных по нужному мне инструменту.
Складывается впечатление что обновление open_interest несколько запаздывает. Это может быть  так?
В колбеке поставлена защита от повторных срабатываний.
Создание торговых алгоритмов на LUA, Ищу программистов для создания робота под LUA
 
Ответил в личку.
Двойное срабатывание OnOrder, Двойное срабатывание OnOrder
 
Цитата
Анатолий написал:
Совсем неожиданно образовалась еще одна проблема. Данная функция сработала до начала торговой сессии. В чем проблема? И как избежать таких срабатываний?
Обычное дело. Решение простое - время работы скрипта установи.С колбеками то же обычное дело  - фильтруй по маркерам, например так:
if tr_num~=trade.trade_num then tr_num=trade.trade_num
..............
end
Идентификатор обрабатываемого события сохраняем в глобальной переменной и повторный колбек с тем же идентификатором отсеивается.
KILL_BALANCE, Заявка тут же снимается???
 
Занавес!
Перечитайте это все  завтра!
KILL_BALANCE, Заявка тут же снимается???
 
Нужно что бы висела лимитная заявка!!! И при частичном исполнении снялся остаток. Можно этого добиться просто установив нужные параметры заявки. Если да то какие?
KILL_BALANCE, Заявка тут же снимается???
 
Нужно что бы выставлялась лимитная заявка с условием  - если исполнение  частичное снять эаявку на остаток. Как это делается?
KILL_BALANCE, Заявка тут же снимается???
 
transaction={
["TRANS_ID"]="111",
["ACTION"]="NEW_ORDER",
["CLASSCODE"]="SPBFUT",
["SECCODE"]="SiU7",
["EXECUTION_CONDITION"]= "KILL_BALANCE",
["OPERATION"]="B",
["QUANTITY"]="50",
["ACCOUNT"]=account,
["PRICE"]= price,
}
Заявка появляется в таблице как снятая.
Подскажите что не так делаю?
Что с оператором "if"?, Он не умеет сравнивать дробные числа?
 
Забыл уточнить числа округлены. Я так думаю проще будет оба числа для верности умножить на 100...
Что с оператором "if"?, Он не умеет сравнивать дробные числа?
 
Пример кода:
....
function ...(dp)
for i=-8.8,-0.8 do
--message(i.."/"..dp)
     if dp==i then
.....
    end
 end
end
...
Для проверки совпадения переменных включил оператор message, совпадения происходят а проход через if нет.
Оговорюсь что пару дней назад все работало.
Файлы dat и info.log удалял не помогло, откат обновления не делал.
Это что америка начала воплощать хакерские угрозы :D Или это подтверждение существования практики двойных стандартов и программировании:D
Установка отметок на графике через скрипт
 
Не знаю как в последних версиях квика, но раньше эти скриптовые метки жутко тормозили терминал.
Актуальная пок/прод =/= активные заявки
 
Отправлять пока ни чего не стал.
Откатился на версию 70410.
История та же.
Может быть дело в инструменте (календарный спред) ? Глюк вылазит после сделок с ним.
Странно но на первом терминале все работает.
Еще на терминале где проявляется глюк заведен счет с единой денежной позицией - может в этом дело?
Или просто мой брокер мне кислород перекрывает?
Плата за транзакции - а где их взять, У биржи есть плата за транзакции - вопрос в том где их взять
 
Цитата
DeSan DeSan написал:
привет
у биржи есть плата за транзакции
как я понял текущая формула - если транзакций больше 2000
Именно так.  
Актуальная пок/прод =/= активные заявки
 
Цитата
Stanislav Tvorogov написал:
Архив рабочего места QUIK необходимо разместить на стороннем ресурсе, а ссылку для скачивания направить в письме.
Если можно объясните для чего это нужно.
Актуальная пок/прод =/= активные заявки
 
Цитата
Николай Камынин написал:
попробуйте откатится к предыдущей версии КВИК

Похоже придется.
Актуальная пок/прод =/= активные заявки
 
Цитата
Stanislav Tvorogov написал:

:  quiksupport@arqatech.com  указав в письме ссылку на данную ветку форума.

Письмо на этот адрес не доходят:
"Извините, мы вынуждены информировать Вас, что письмо,
которое Вы отправили, не может быть доставлено одному или
нескольким адресатам"
Актуальная пок/прод =/= активные заявки
 
Все повторяется. Указанные файлы отправил.
Актуальная пок/прод =/= активные заявки
 
Цитата
Stanislav Tvorogov написал:

При сохранении проблемы просьба прислать архив рабочего места QUIK с открытыми таблицами "Заявки" и "Позиции по клиентским счетам" с видимыми параметрами "Акт.покупка", "Акт. продажа". без файлов ключей и файла справки info.chm на адрес:  quiksupport@arqatech.com  указав в письме ссылку на данную ветку форума.
Уточните про архив с открытыми таблицами. Может скрин окна квика с открытыми таблицами?
Актуальная пок/прод =/= активные заявки
 
В добавок терминал упал с сообщением " не хватило памяти под объекты...."
Актуальная пок/прод =/= активные заявки
 
Версия терминала 7122. Часто проявляется такой баг заявок активных нет а в таблице открытых позиций FORTS висит актуальная покупка или продажа. Иногда это уходило после удаления дат файлов. Сегодня ни чего не помогает. В результате система отвергает заявки - превышен лимит по инструменту.
Рисовать линию на графике
 
Да нашел. Не в то место я его прописывал.
Спасибо.
Рисовать линию на графике
 
Простите за детский вопрос. Не получается вставить метку на график:

label_params={}
label_params.TEXT="ТECT"
label_params.IMAGE_PATH=""
label_params.ALIGNMENT="LEFT"
label_params.DATE=20151207
label_params.TIME=111400
label_params.YVALUE=80840
label_params.TRANSPARENCY=50
label_params.TRANSPARENT_BACKGROUND=0
label_params.HINT=""
label_params.R=255
label_params.G=0
label_params.B=0
label_params.FONT_FACE_NAME="Arial"
label_params.FONT_HEIGHT='18'

x=AddLabel("RIZ5", label_params)
message(tostring(x))

chart_tag прописан. Функция к сожалению ошибку не комментирует. Что не так делаю?
Страницы: 1 2 3 След.
Наверх