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

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

Страницы: 1
Оборот и объем
 
Не понял про параметр с общим количеством. Но если в оборот в ТТТ добавляются еще какие-то сделки, то тогда c Volume все в порядке и можно ориентироваться только на него, не беря оборот во внимание.
Оборот и объем
 
Вот пример по ВТБ, сегодня на момент фиксации (было утром), скрин из квика по ссылке

https://disk.yandex.ru/i/AHCSckZQYGAv7g

Объем 12 714 425, лотность 1, цена хай 72,77, перемножаем = 925 243 261, 25. И это завышенная сумма в деньгах, т.к. весь объем посчитан по хаю.
Оборот в ТТТ  = почти 6 лярдов.

Как это можно объяснить?
Оборот и объем
 
У меня оборот при подсчёте по объему в разы меньше оборота из ТТТ, поэтому когда я беру хай по цене, то я увеличиваю расчетное значение, но оно все равно на порядок меньше. Т.е. вопрос почему меньше, а не больше
Оборот и объем
 
Т.е. умножение объема на лотность и хай дня по цене значительно меньше оборота из ТТТ. Этого не понимаю
Оборот и объем
 
А что в таком случае показывает оборот в деньгах? Вопрос в том, связан ли он с объемом в бумагах и как
Оборот и объем
 
Смотрю сегодня по разным бумагам, тоже практически нигде не соответствует. Что тогда показывает Volume?
Оборот и объем
 
Добрый день, отцы!
Помогите, пожалуйста, разобраться с тем, как соотносится показатель Volume у свечи и оборот.
Например, сегодня, у Сбера на дневной свече Volume 106604, а оборот 601,2 ляма. Т.е.  106604 лотов х 10 бумаг х 310 = 330,5 лямов.
И так везде не бьётся.
В приложении у финама по торгам показывается соответствующая оборотк цифра объема 1,94 млн. Причем Volume на дневной свече там 1066к, т.е. как бы 1+ млн лотов.
И снова OnAllTrade
 
Пока не тестировал, т.к. ещё не реализовал. Структуру объема пока нужна как доп.фильтр, но в целом тут возможно получится и сигналы находить,. В любом случае анализ объема в моей стратегии это 50% сигнала. Понятно, что если свеча полнотелая, то тут преобладает одно направление, а если нет. И тут ведь без разницы на каком тф идёт торговля, т.е. кроме как по тикам структуру объема негде взять. Возможно это где то будет избыточной информацией, но кашу маслом не испортишь.  
И снова OnAllTrade
 
Код
Поэтому никаких HFT роботов не построите.  Тогда нет особого смысла  обрабатывать тики.
А как ещё получить структуру объема если не по ТОС. Задачи построить  HFT робота у меня нет, основная торговля на часовике.
И снова OnAllTrade
 
Т.е. тут вопрос как сшить данные от коллбеков и таблицы
И снова OnAllTrade
 
Изначально я так и хотел,  но чисто технически нет понимания как это сделать правильно. Например можно отделить историю от текущих данных по trade_num от первого коллбека при соединении, но если они приходят блоками, то я так понимаю нет гарантии, что первый коллбек самый  ранний. Тогда действительно понятнее работать только с таблицей через getitem, опрашивая циклически от последнего getnumberof до текущего. Или нет?
Код
Поэтому лучше при соединении, историю забрать из таблицы, а текущие данные получать из колбека.
 
И снова OnAllTrade
 
Спасибо, отцы! Ваше слово закон! Так и буду делать.
И снова OnAllTrade
 
Мне нужно считать структуру объема, дельту соответственно, ловить крупные сделки.
Может так и надо брать данные из таблицы, запоминая последний индекс и собирая  данные от него и до конца таблицы.
Searchitems не вариант, он фактически проходит по всей  таблице, а это долго, т к. в ней несколько  млн записей, а то и десятков млн, а данные нужны в постоянном режиме.
Поэтому надеялся на параллельный поток, который постоянно будет накапливать нужные данные.
И снова OnAllTrade
 
Добрый день, уважаемые отцы-основатели!
Помогите разобраться с поступлением данных от OnAllTrade.
Действительно ли все коллбеки от этой функции срабатывают когда бы не открыл терминал, т.е. с самого начала и до текущей секунды.
Пример, открыл терминал в 10, в таблицу all_trades закачались все данные, соответственно сработали коллбеки. Потом закрыл терминал и открыл его в 15 часов. При этом в таблице данные, что закачались утром уже есть, таблица дополняется данными до текущего времени, а коллбеки приходят с самого начала, т.е. с 06:59 примерно.
Т.е. когда бы не открыл терминал могу ли я быть уверен, что по коллбеку OnAllTrade соберу все данные за день?
Обезличенные сделки
 
И все же нет ясного понимания. Понял так, что в таблице ОС мы видим сделки по рыночным заявкам. Но вот например идут сплошняком покупки, при этом цена снижается, хотя должна или стоять на месте или расти. Как понимать такое явление?
Обезличенные сделки
 
Спасибо, отец!
Обезличенные сделки
 
Доброго времени!
Помогите, пожалуйста, разобраться что такое обезличенные сделки и какие требования к компу.
1. Что есть продажа и покупка в обезличенных сделках. Ведь кто-то продал, а кто-то купил, но сделки разделяются на покупки и продажи. Так что же показывается в таблице ОС в качестве покупки и продажи.
2 Возможно ли получать из таблицы сделки скажем по 30 инструментам, например акциям и какие системные требования это предъявляет к ПК? Или можно даже не пробовать и при таком подходе Квик просто будет висеть и не сможет работать в таком режиме.
Что возвращает SearchItems
 
И еще одно уточнение - getItems по возвращенным индексам выдает правильные строки из таблицы, но если смотреть глазами в таблицу в терминале, то не бьется на 1. Загадка.
Что возвращает SearchItems
 
Может не учитывает заявки на открытии? У меня первая заявка с периодом "Открытие".
Что возвращает SearchItems
 
Доброго времени, отцы! Снова ламерский вопрос, прошу прощения.
Отбираю заявки с помощью SearchItems, получаю массив индексов и он не бьется с таблицей заявок на 1. Т.е., например, получаю индексы 22, 23, 25, а на самом деле это 23, 24, 26. В чем может быть проблема?

На всякий случай вот код, отбирает по этому условию верно, а индексы возвращает с ошибкой на 1
Код
t1 = SearchItems ("orders", 0, getNumberOf ("orders")-1, function(par1,par2) if par1 == "ROSN" and bit.band(tonumber(par2), 1) > 0 then 
return true else  return false  end  end , "sec_code,flags,price")
Дата и время позиции
 
nikolz, спасибо, отец!
Дата и время позиции
 
А есть где почитать и главное увидеть элементарный пример постановки коллбека в очередь, в интернете именно такого примера не нашел. Могу только предположить, что в коллбеке поступившие данные пишутся в массив, который обрабатывается в main.

Куда же сохранять информацию о сделках, заявках, если не в файл. В терминале ее на следующий день нет, а мне важно понимать когда именно возникла позиция, от этой задачи все и пошло. Могу предположить, что в какую-нибудь базу данных, но это же тоже файл.

Можно ли обойтись перебором таблиц если предположить, что в реальной ситуации более 1000 сделок в день не будет.

И самое главное по поводу таблиц,  запоминания и скорости. Пока я делаю так - в текстовый файл пишу номера ордеров сделок, затем когда перебираю таблицу сделок беру в рассмотрение те номера, которых нет в файле, но таблица сделок перебирается вся.
Дата и время позиции
 
nikolz, Nikolay спасибо отцы! Буду грызть.
Но как же не использовать sleep в main? Разве тогда квик не зависнет от постоянных действий? Какой sleep можно считать долгм? 200-300 не долгий? Т.е. если коллбек приходит во время sleep, то он может быть проигнорирован main и то, что должно быть сделано в этом коллбеке сделано не будет?

И еще простейший вопрос, который сложно проверить на практике. Если заявка исполняется частями, то у каждой сделки по этой заявке будет свой trade_num?

Что касается таблиц, то с одной стороны проще, но с другой надо запоминать какие сделки уже учтены в позиции, какие новые, хоть это и не сложно сделать. Допустим скрипт остановился и нужно восстановить позиции. У меня в файле записаны позиции, потом я их обновляю через разбор таблицы сделок. Но если в течении дня потребуется несколько раз их восстановить, то без отдельной записи сделок дня невозможно будет понять, какие из них уже учтены в позиции, а какие нет.  
Дата и время позиции
 
Да, но я спрашивал несколько другой аспект. Что лучше обрабатывать для ведения позиции коллбеки или таблицы, учитывая ненадежность коллбеков? Если и то и то, то нужно это все постоянно приводить к одному, а если исходить, что первоисточник это таблица и сверяемся с ней, то зачем обрабатывать коллбек. Разве что коллбек может придти раньше обновления таблицы, но эта нано разница не играет роли.
Дата и время позиции
 
onTransReply тоже можно в источнике посмотреть, но тут кажется дешевле коллбек обработать. Можно и с заявками и сделками тоже дешевле? Ведь по итогу дня может быть и 1000 заявок и сделок и каждый раз дергать таблицу это замедление работы? Но опять таки если все равно с таблицей нужно сверяться, не очень понятна логика.
Дата и время позиции
 
"Запустил скрипт - просканировал сделки и убедился, что запомненная позиция корректна с точки зрения количества. "
Если у нас эталон это источник данных, то тогда зачем нужны коллбеки, когда всегда можно посмотреть в таблицу сделок и снять состояние. Тем более, если мы доверяем источнику, то если запомненная позиция отличается, то что, мы ее приводим в соответствие источнику? Тогда зачем запоминать.
На поверхности разница только в том, что колбеки в идеале приходят по факту изменения позиции, а смотреть нужно руками в какое-то время, как минимум перед действием (входом/выходом из позиции) при завершении работы скрипта в конце дня, чтобы зафиксировать сделки и обновить позицию.
Но опять таки вопрос, зачем нагружать скрипт дерганием по коллбекам?
Допустим отправку транзакции нужно фиксировать, а onTransReply обрабатывать, если вдруг ошибка. А результаты onOrder и OnTrade по идее должны отражаться в таблицах, может чуть чуть позже, но не суть.
Так все же какой сакраментальный смысл в их обработке?
Дата и время позиции
 
Не совсем понял про работу с коллбэком заявок, я как раз хотел от них уйти и использовать коллбэки от денег и депо.
Дата и время позиции
 
Спасибо за ответы, отец!
разбираюсь с обработкой коллбэков по заявкам, onTransReply, onOrder, onTrade. При этом есть коллбэки на изменение позиций по деньгам и инструментам. Т.е. если у нас выставилась заявка значит изменилась позиция по деньгам, т.к. заблокировался объем, если прошла сделка, значит изменилась позиция по депо.
А что если использовать эти коллбэки и смотреть в соответствующие таблицы для подбития баланса. В моих целях отслеживание коллбэков по заявкам нужно для понимания именно позиций по деньгам и инструментам, чтобы например не накупить лишнего, не превысить лимиты робота, не попасть на маржинальную позицию.
Что думаете и как обстоят дела в реальности с этими коллбэками?
Дата и время позиции
 
А на следующий день? Правильно ли понимаю, что единственный путь через свой лог в файле?
Дата и время позиции
 
Отцы, с праздниками!
Посоветуйте, пожалуйста, есть ли возможность в квике возможность связать сделку с позицией, а именно узнать время образования позиции? Т.е. у меня задача закрыть позицию не позднее 3 свечей от свечи, когда прошла сделка.  Можно ли в квике как-то понять, что имеющаяся позиция возникла тогда-то и во столько?
Использование индикаторов из терминала
 
Отцы, я разобрался, надо было считать слева направо, а не наоборот
Использование индикаторов из терминала
 
По ссылке написано
"учитывать, что при расчете индикаторов первые значения (1 .... Период расчета индикатора - 1)-- обычно nil"

Да, так и есть, после периода пошли значения. Но тогда вопрос зачем такой алгоритм, ведь нужно то значение если не на последней, то на предпоследней и близких свечах, а зачем нужно значение индикатора 20 или 50 свечей назад непонятно. Тем более, что все данные для расчета есть, терминал прекрасно индикатор строит. Непонятно.
Использование индикаторов из терминала
 
Добрый день!

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

Такой код выдает nil

dofile(getWorkingFolder().."\\LuaIndicators\\MA.lua")
ds = CreateDataSource("TQBR", "NLMK", INTERVAL_D1)
sleep(5000)
k = ds:Size()
message("==="..tostring(k))  -- для проверки получения данных
message("==="..tostring(ds:H(k)))
func = MA()
ema8 = func(k, {Period=8, Metod = "EMA", VType="Close"}, ds)
message("==="..tostring(ema8))

Последний message выдает nil, хотя данные в ds есть
И снова CreateDataSource
 
Также есть вопрос по параметру Interval в функции CreateDataSource. Его типа по документации  Number, т.е. числовой, при этом он передается через константы, например INTERVAL_H1.
А как его передать через переменную?  
И снова CreateDataSource
 
Отцы, помогите, пожалуйста, разобраться с еще одним ламерским вопросом.

В блоке MAIN у меня создается источник данных (ДС):
ds["NLMK"] = CreateDataSource("TQBR", "NLMK", INTERVAL_D1)

Далее мне нужно в функции обращаться к нему, но не напрямую, а присвоив его локальному дс:
local dsf = ds["NLMK"], т.е. чтобы можно обращаться через dsf:C(i).

Вопрос: если так сделать, не повлечет ли это за собой то, что терминал будет обновлять кучу копий датасорсов (которые будут созданы в функциях) и это потребует ресурсов, трафика и т.п. Это и не требуется, достаточно чтобы обновлялся основной, а тот, что в функции берется для анализа исторических данных и после отработки функции он не нужен.
И еще вопрос - после выполнения функции ее локальные переменные "разинициализируются" (обнуляются в памяти)? Если так, то тогда и вопрос решается сам собой.

 
И снова CreateDataSource
 
Не совсем понимаю с практической точки зрения, т.к. ds2 может и то, что Вы пишите, но и место хранения данных тоже, т.к. туда же пишутся заказанные данные и обращаясь к ds2 эти данные можно читать.
Вопрос связан с тем, что нужно ли повторно заказывать данные в ds2 если связь рвется, не закрывается ли при этом ds2, не рвется ли эта связь ds2 с сервером.
И снова CreateDataSource
 
Тогда еще один вопрос, пожалуйста.

Создан источник данных ds2 = CreateDataSource("SPBFUT", "RIU3", INTERVAL_M1), данные получены, обновляются.
Через 10 минут происходит разрыв соединения.
Еще через 10 минут соединение восстанавливается.
Вопрос: данные в ds2 продолжат поступать или для этого нужно снова вызвать ds2 = CreateDataSource("SPBFUT", "RIU3", INTERVAL_M1)?
И снова CreateDataSource
 
Забыл уточнить, 11 версия Quik
И снова CreateDataSource
 
Тогда все же вопрос разработчику с отсылкой к документации, которая размещена на сайте.
А именно речь про  SetUpdateCallback, SetEmptyCallback, эти функции работают? Не знаю правильно ли понимаю, но понимаю так, что   если эти функции работают, то однажды вызвав CreateDataSource он обновляется без его повторного вызова или это не так?

Пример: после вызова ds2 = CreateDataSource("SPBFUT", "RIU3", INTERVAL_M1) будет ли через минуту в ds2 новая свеча, через 5 минут 5 новых свечей или нет? Или чтобы они там появились надо снова выполнить вызов CreateDataSource? Или же эти методы обновляют только последнюю незакрытую свечу, которая уже оказалась в наборе с первым вызовом или вообще ничего не обновляется?
И снова CreateDataSource
 
Заранее прошу прощения за вероятно избитую тему с CreateDataSource, но огромная просьба помочь разобраться новичку.

Нужно в течении всего дня постоянно получать данные по свечам. Где-то раньше читал, что не требуется при этом повторно вызывать CreateDataSource, а можно просто обращаться к его функциям (т.е., ds:C(index)).
Или же все таки требуется? Или для того, чтобы не обращаться должен быть настроен какой-то колбек. Но пишут SetEmptyCallback уже бесполезен, SetUpdateCallback не работает с 2021 года. Т.е. нужно каждый раз в бесконечном цикле вызывать CreateDataSource?
Или все таки не нужно? А если бумаг будет 200?
Страницы: 1
Наверх