Насколько я понял, акции, которые не связаны с долларом, продавать не стоит?
Автор Ютюб канала "Профита нет" часа два назад сказал, что в такое время очень хорошо перекладываться в фонды ликвидности, но я сейчас вижу, что там тоже много продают, и началось это с вечерней сессии. Не стоит обращать на это внимание, или тоже выйти в кэш?
Сейчас поймал момент, о котором писал в этой ветке в сообщении #2, чтобы показать что-то конкретное, и сделал копию экрана.
Это случается нечасто, как правило, сразу после запуска Квика. Если закрыть это меню с посторонними картинками и тут же его открыть, то этих картинок уже нет! Иногда такие посторонние иконки бывают в начале всех строк меню и они большие, в результате чего расстояние между строками меню увеличивается. Например, я как-то во всех строках видел иконку Квика с большой буквой Q, причём она была чёрная, как будто это была маска для этой иконки, как делается в граф. редакторах.
Как я писал выше, это стало происходить после того, как мой скрипт на Lua вызывал зависания Квика и после какого-то ожидания отклика от программы приходилось снимать его с выполнения. После этого в одном wnd файле во вкладке с графиками количество тикеров в списке стало меньше, чем было до этого, при этом Квик с загруженным этим файлом работал. Я восстановил этот wnd файл из его копии, в которой количество тикеров было больше.
С тех пор прошло одно обновление Квика, но проблема осталась. Квик работает. Памяти, как показывает окно "Диспетчер задач/Производительность", расходуется примерно столько же, что и до этого зависания, хотя и многовато: ~ 44% из 8 Гб, которые установлены на этом безвентиляторном мини ПК с алиэкспресс. Мне этот ПК понравился: энергии ест мало, а ЦП даже понимает AVX2.
Пока я не пытался переустанавливать Квик, чтобы не случилось дополнительных проблем с его работоспособностью, хотя, собираюсь это сделать. Похоже, что-то подпортилось в какой-то программе или файле данных.
Вот кусок скриншота, на котором виден голубой бублик от микрософта, он рисуется на экране около курсора, когда у программы, похоже, переполняется очередь сообщений. Я как-то даже видел в меню Квика ошибочную иконку с изображением экранного курсора. Т.е. в меню Квика откуда-то попадают кусочки от изображений на экране.
Было ли у кого-то подобное явление? Какие будут конкретные предположения о его причине?
Случайно нашёл ссылку https://arqatech.com/upload/Public/quik_lua.zip Внутри этого архива в папке examples лежат старючие примеры lua программ. Внутри аналогичного архива, который можно скачать со стр.https://arqatech.com/ru/support/files/ папки examples нет. Что это значит: эти примеры устарели, или засекречены, или теперь только за деньги?
Почему не дают доступ к папке arqatech.com/upload/Public/ ? Может быть, оттуда можно ещё что-то полезное накачать? Тут говорилось о примерах торговых программ "от арки", как их можно бесплатно скачать?
To All: и вообще, где можно надыбать нормальные примеры торговых программ, а не всякий хлам? На сайте брокера БКС я видел статьи о создании таких программ, но ссылки на тексты этих программ не работают. Может быть, кто-то скачивал эти тексты или знает, как их найти в архиве Интернета?
Спасибо, а я уже начал смотреть getItem('money_limits', i) и аналогичные таблицы. И не понял, почему таблицы account_balance и account_positions пустые...
В Квике я вижу это в таблице "Состояние счёта" в строке "Российский рубль", столбец "Позиция", сверху "На дату Tx". И где можно посмотреть имена подобных параметров, которые надо задавать в скрипте для их чтения?
А ошибка в строке local order_info = getItem("orders", f) ? Такое впечатление, что во время работы цикла колич. ордеров уменьшается. Проверяйте ордера на ниль и выведите на печать число ордеров и номер ордера, который ниль.
Сегодня видел, как с 10:35 по 11:35 был перерыв, сейчас вижу, что за мин. свечой от 10:35 идёт свеча от 11:35. Я cначала подумал, что Москвы уже нет... Техподдержка брокера ответила, что вчера тоже был перерыв, после которого стаканы очистились, а Мосбиржа ни вчера ни сегодня не назвала причину перерывов. Сегодня стаканы не очищались.
Кто знает, в чём причина? Интересно, чтО надо предусмотреть в скриптах в связи с такими явлениями? Наверно, скрипт должен мониторить что-то часто меняющееся (напр., IMOEX2), чтобы не наделать ошибок?
nikolz написал: Поэтому когда крупный игрок приходит за товаром, то он не смотрит по сторонам. Кто сидит в "яме", тот это видит. А буратинам потом рассказывают как круто вчера рынок двигался и можно легко огребать бабло.
Эти образные выражения я что-то не совсем понял...
paluke написал: Тут выше уже отвечали, что часть ошибок при выставлении заявки - от сервера брокера.
Возможно, это был пост, когда я ошибался в причинах появления ошибочных сообщений. Я в скрипте в OnTransReply выводил только trans_reply.trans_id и не выводил trans_id, считая по умолчанию, что эти коллбэки приходят в той же последовательности, в какой выставляются заявки. Поэтому, видя сообщение "Скорректированное значение НПР1 -1553943.84 (RUB) меньше 0" или что инструмент не торгуется в шорт и время в этих сообщениях больше, чем 09:50:04, я считал, что на сервере брокера поздно загружаются данные о моём счёте (после начала приёма предварительных заявок). Несколько раз им звонил по этому поводу, и никто не мог сказать, в чём там дело. И только где-то на 3-4-й раз попался админ, который посмотел журнал сервера и пояснил, что, когда я получаю эти сообщения, мои заявки на покупку и продажу уже приняты, просто, я получаю сообщения сначала от более поздних заявок. Когда я стал выводить trans_id, то немного ахнул: один раз при выставлении 15 заявок сообщения в OnTransReply я получил точно в обратном порядке, т.е. сначала от 15-й по очереди заявки и в конце от 1-й. А сегодня я получил эти сообщения строго по очереди подачи заявок: сначала от 1-й, а в конце от 15-й...
Anton Belonogov написал: Рекомендуем уточнить эту информацию у специалистов биржи или у Вашего брокера.
Сейчас позвонил брокеру, там после косультаций оператор ответила, что в связи с выставлением ошибочных заявок у них не предусмотрено ни штрафов, ни комиссий. Звучит немного странно, скорее всего, попались люди, которые в этом не разбираются (такое у меня уже было..)
Мосбиржу беспокоить неохота, от них будет отписка с количеством информации = 0 (мол, не беспокойте больших людей). Тем более, что на их сайте об этом написано оригинальным языком. Кто-то на форуме смарт-лаба предположил, что там специально держат такого человека, чтобы были непонятны правила работы биржи и отъёма средств сравнительно честными способами...
Если бы меня за хороший гонорар наняли отредактировать эти правила или, скажем, налоговый кодекс, я бы смог написать это понятным языком и при этом юридически строго (как мне кажется).
Nikolay написал: А зачем Вы отправляете еще одну транзакцию пока не дождались ответа от прошлой? Отправили, получили ответ, принимаете решение.
Приходится в начале приёма предварительных заявок (в 09:50) раз несколько повторять заявки, т.к. скрипт не сразу узнаёт, что они приняты. А если ждать, когда получу ответ, то я могу не встать в начало очереди, а она растёт быстро. Немного промедлил, за это время кинули заявок на покупку 300 млн. акций, и в принципе можно выключать ПК, т.к. ловить в этом инструменте будет нечего. К тому же, я сижу далековато от Москвы, поэтому точность синхронизации часов не лучше 0.01 сек.
Возможно, мне стОит проверять число записей в таблице заявок: кто-то тут писал, что туда информация приходит быстрее, чем в OnTransReply. Тогда скрипт может меньше посылать ошибочных заявок.
Брокер ВТБ почему-то не даёт торговать на премаркете, при этом я иногда видел, как кто-то до 10:00 совершает сделки с моими заявками, которые я успел выставить пораньше.
Ясно. А как сейчас торгуют крупные игроки, можно где-то почитать/послушать? Чтобы набраться опыта в торговле и попробовать что-то заработать программным путём...
Anton Belonogov написал: Сообщение 1 возвращает Торговая система, сообщения 2 и 3 - сервер брокера. При получении сообщений 2 и 3 для выяснения причин ошибки или получения дополнительной информации Вы можете обратиться к Вашему брокеру.
Спасибо. Торговой системой, насколько я понял, называется сервер биржи(?) Я не знаю в подробностях, как там на бирже всё работает...
Сообщения 2 и 3 ясны: эти мои заявки на покупку и на продажу уже выполнились, но мой скрипт ещё не получил подтверждений этого, поэтому он повторяет эти заявки, которые уже стали необеспеченными (ошибочными).
Насколько я понял, таких ошибок допускается в день до 30000, чтобы не было штрафов? А месячный лимит на их число есть? Я смотрел биржевую документацию, но она написано на таком кривом жаргоне (как и законы), да ещё и с формулами, что очень тяжело что-то понять...
nikolz написал: Вы о каком типе крупного игрока рассуждаете? Они разные есть.
Я не знаком с ними, я смотрел видео от опытных трейдеров. Они говорят о 3-х фазах рынка - накоплении, движении цены и распределении. Если боковик идёт месяцами, то я не установлю, что это кто-то один что-то там копит. На графиках видно, что перед взлётом цены она какое-то время идёт в узком канале вбок. Возможно, что здесь кт-то что-то копит...
Я в 9:50 при выставлении заявок несколько раз программно повторяю одну заявку, т.к. не сразу узнаЮ, выполнилась она или нет, и получаю такие ошибки (всего штук 14) trans_reply.result_msg:
1. ОШИБКА: (133) Торги по этому финансовому инструменту сейчас не проводятся. 2. Данный инструмент запрещен для операции шорт 3. Скорректированное значение НПР1 -1540915.18 (RUB) меньше 0
2-е и 3-е сообщения это явно не от биржи, скорее, от брокера. А может быть, это Квик на моём ПК сообщает? Он же может проверять такие ошибки?
Поясните, что значит кол-во транзакций? Я видел на сайте Мосбиржи ограничение на 2000 невыполненных заявок в сутки, после этого биржа молча может повысить комиссию. Насчёт ограничений по кол-ву транзакций я не слышал. Где об этом можно прочитать?
Кр. игроку иногда нужны месяцы, чтобы нарастить позицию/скинуть акции. Чтобы не обнаружить себя и не двинуть цену против себя, он долгле время продаёт/покупает небольшими частями. Вопрос в том, как обнаружить, что в этом инструменте действует кр. игрок, и что он делает, чтобы узнать, куда он резко двинет цену.
Вопрос о том, как угадать, куда поведёт цену крупный игрок после периода накопления. В периоде накопления (боковике) рыночными или лимитными заявками крупный игрок накапливает позицию? Как ещё можно определить его действия?
Хм, а я как-то не обращал внимание на эти функции. Тогда выходит, что можно не загружать ЦП коллбэком OnAllTrade, если всё это можно брать напрямую из таблицы all_trades?
=== Набор битовых флагов Параметр Тип Описание бит 0 (0x1) - Сделка на продажу бит 1 (0x2) - Сделка на покупку ===
Такое чувство, что я всё время неправильно определяю направление (buy или sell). Я считал, что если младший бит = 0, то buy, а если младший бит = 1, то sell.
А из этого объяснения вроде бы следует, что если мл. бит = 1, то это sell, а если следующий за младшим битом бит = 1, то это buy, так? Вроде бы можно было обойтись одним мл. битом...
=== Комментарии Вызывающий процесс должен иметь привилегию SE_SYSTEMTIME_NAME. Эта привилегия отключена по умолчанию. Функция SetLocalTime включает привилегию SE_SYSTEMTIME_NAME перед изменением местного времени и отключает привилегию перед возвратом. ===
Я сейчас запустил её из Фара, который запущен не с правами админа, SetLocalTime возвращает 0 (ошибка) и время не меняет...
1. Будет ли утечка памяти, если C dll при работе со стеком Lua не будет вызывать lua_pop? Ведь сказано, что Lua при каждом вызове подпрограммы из C dll создаёт этот стек заново.
2. Решит ли проблему с возможной утечкой памяти, если не вызывать lua_pop, а в конце работы со стеком вызвать lua_settop(0)? Я думаю, что решит, т.к. lua_pop это макрос, который вызывает lua_settop.
3. Я попытался увидеть сборку мусора и написал такой код:
Код
function main()
s = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
local s1 = '' .. collectgarbage("count") .. '\n'
s = nil
s1 = s1 .. collectgarbage("count") .. '\n'
collectgarbage("collect")
sleep(10000)
s1 = s1 .. collectgarbage("count") .. '\n'
message(s1)
end
Получил такой вывод:
37.5439453125 37.619140625 36.046875
Видно, что памяти освободилось меньше, чем занимала строка s. Как это объяснить?
Я как-то заказал в Квике отчёт по всем заявкам или сделкам клиента за день, Квик задумался на 10 сек., а потом в файле, куда скрипт писал обезличенные сделки/содержимое стаканов за эти 10 сек. не было записей.
Если скрипт в коллбэке как-то притормаживает, то теряются эти сообщения. Неужели в Квике нет очереди, чтобы их не терять? Есть ли гарантированное время (скажем, 5 мс), что если коллбэк в него вписывается, то потерь данных гарантированно не будет? (Думаю, что его нет, т.к. интенсивность вызова коллбэка может быть высокой.) А если они были, можно ли как-то об этом узнать?
Между 9:50 и 10:00 наблюдал по одной акции то, что ещё не видел: в стакане не показывалась моя заявка на продажу и не было также строчки с ценой по этой заявке, но в таблице заявок она показывалась. Через некоторое время все заявки на продажу почему-то имели цену ниже всех заявок на покупку (строки с зелёным фоном были вверху, а с красным внизу), поэтому, чтобы увидеть привычный вид стакана, надо было встать на голову! И у всех заявок на покупку (или почти у всех) количество было в 1 акцию. И только в 10:00 (в начале торгов) содержимое стакана стало нормальным.
Кто-то ещё видел сегодня подобное? Это был сбой на бирже или в брокерском Квике?
Ксати, powershell это делает: start-process "C:\Program Files\Far Manager\Far.exe" -verb runas Причём, винда не спрашивает подтверждения разрешений для Фара, как она это делает при таком запуске с пом. иконки. Но неудобно запускать powershell и вводить команду...
Я также смотрел, как запусить из командной строки. Есть для этого в винде runas /user:admin, но она просит пароль админа, даже если он не установлен. Т.е. хочешь не хочешь, а надо дать админу пароль. Но ведь винда из ярлыка как-то запускает программу с правами админа, не спрашивая пароля. По идее, должна быть такая возможность в командной строке, может, кто-то знает, как?
1. Как можно (если можно) вызвать из qlua ехе программку с правами админа, напр., чтобы скорректировать часы ПК? А если эта программка сидит в dll, то тогда как? Видимо, можно как-то повысить права вызываемой программы?
2. Верно ли, что с ключом /nowait можно вызывать программы так, чтобы вызывающая программа продолжала работать и не ждала завершения вызываемой программы?
Можно брать только у моего брокера, т.к. она настроена у него только на работу через этого брокера и для его клиентов использование Квика бесплатно. Но у брокера нет версии в зипе, а есть только установщик в ехе...
Или можно переставить Квик поверх того, что стоИт, и он продолжит нормально работать? Откуда брать свежий дистрибутив, с сайта брокера, или где-то у производителя?
Не надо писать ерунду, разумеется, я перезагружал... А то, что микрософты пишут, что их NTFS ведёт журнал и при загрузке винды исправляет транзакции при зависании (синем экране), это тоже ерунда. Я давно ещё на вин хр видел, что после синего экрана винда не исправила попорченный файл ярлыка, имя ярлыка стало короче и его папка не открывалась. А после прогона scandisk имя ярлыка восстановилось и его папка стала рабочей.
Поэтому моё сообщение остаётся в силе: где взять последние версии исполняемых файлов Квика?
Сегодня загрузил Квик, в меню Сервисы опять увидел левые иконки слева от строк меню. Перезагрузил Квик - иконки исчезли. Такое ощущение, что где-то подпортились файлы. Это сам info.exe или какие-то ещё?
Как можно обновить этот info.exe, dll и другие исполняемые файлы? Почему никто не ответил?
Спасибо, попробовал по одному инструменту выставить глубину стакана в 1 и у себя в файлике, куда записывается выдача getQuoteLevel2, не обнаружил две одинаковых записи, идущие подряд. Но как попроще убедиться, что при изменении цены или количества вне этого диапазона не вызывается OnQuote? Ведь почти всегда меняется цена/значение в заявках по лучшей цене покупки и продажи...
Вчера в результате экспериментов с моим скриптом Квик завис и его пришлось снять с выполнения (виндовс крутила курсор в виде голубого бублика и предложила снять или ждать отклика). Вчера и сегодня по этой причине наблюдались такие явления, как появление в выпадающем меню "Сервисы/Lua скрипты..." в этой строчке слева какой-то иконки (потом она исчезла), потом вдруг в стаканах и в меню поиска в текстовых полях фон из чёрного стал белым. Программа работает, но, похоже, какие-то файлы подпортились. Я ещё вчера запускал chkdsk/f на диск C:, не помогло... Есть в Квике какое-то средство проверки целостности данных?
1-я вызывается даже чаще, чем происходят сделки, хотя, часто не несёт нужной информации. Предположим, что кого-то интересует только количество и лучшая цена на покупку. Иногда роботы-прилипалы и прочая чушь играет с выставлением заявок и весь этот мусор загружает программу. А из 1-й вызывается 2-я, в которой иногда идёт запись на диск.
Предлагаю сделать так, чтобы можно было задать количество значений цен на покупку от лучшей цены и ниже и отдельно, соотвественно, количество цен на продажу в стакане от лучшей цены и выше. И если были изменения вне этих диапазонов, не вызывать 1-ю.