Игорь М (Все сообщения пользователя)

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

Страницы: 1 2 3 4 След.
Что изменилось в версии 11.1.1.11?
 
Цитата
Kolossi написал:
Опять костыли строгать ((
У меня раньше где-то была дополнительная проверка функцией getInfoParam ("BYTESPERSECRECV"). Это принятые байты за секунду. Попробуйте, может как-то поможет, сам проверить не могу, так как старой версией Квика пользуюсь.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
Только пару ремарок.
1)  Права и обязательство по договору и технологии применяемые для торговых  операций, чуть чуть, ну совсем чуть чуть разные вещи! ::
2) Повод причина и следствие,  чуть чуть, ну совсем чуть чуть разные вещи! ::
Пара бессмысленных и совершенно не относящихся к теме ремарок. В вашем фирменном стиле.
Цитата
А так все супер, обязуюсь все свое свободное время чувак, использовать на изучение предмета!
Забудьте про мою рекомендацию, я был наивным оптимистом. Вы безнадежно необучаемы, с данным предметом у вас точно ничего не получится.
Вопросы к спецам по Lua и Lua C API
 
Цитата
Serge123 написал:
Я смотрел исходники на бразильском, но с налёту так и не смог выяснить: по-бразильски я ещё не очень понимаю, да и буковки там мелкие, плохо видать...
По-бразильски я ещё не очень понимаю... Ха-ха. Повеселили. :smile:  
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
Игорь М,
А дело вот в чем, я написал "про Ивана, а Вы мне втюхиваете про Болвана!"
Да нет, конечно. У нас с вами не дискуссия по спорным вопросам, вы просто не разбираетесь в основах, вам объясняли и разжевывали (не только я). А что потом? Вместо того, чтобы прочитать и понять, то что я написал, вы задаете вопрос "А позвольте узнать, у столь просвещённого, а кем и чем привязан???". Так я в самом первом комментарии это и объяснил! Зачем спрашивать про то, на что уже ответили? Цель не важна, важен путь?
Цитата
2)  Маркет мейкер - компания (или группа компаний) заключившая с биржей  договор, одной из главных задач которого, является устранения меж  биржевого дисбаланса в котировках.
Какой бред... Какого ещё "меж  биржевого дисбаланса в котировках"? Да на сайте всё написано! Зачем дичь выдумывать?
Цитата
1) Геп - сильное, мощное движение, когда сносится встречное  предложение/спрос, заявки не попадают даже в стакан, продукт  высокочастотной тарговли.
Да где вы этого понабрались? Такое впечатление, что вы просто слова из трейдинга случайным образом компануете и думаете, что смысл появится. Даже(!) в стакан! Почитайте, что такое стакан. Если "предложение/спрос" сносится, то заявки уже зарегистрированы. Открыт у вас стакан или нет, отображаются они там или нет - без разницы. Продуктом  высокочастотной торговли у вас является гэп или стакан? Потому что ни то, ни другое не верно. Гэп делается одной сделкой по факту. По одной сделке нельзя сказать высокочастотная она или нет. Гэпы к высокочастотной торговле отношения не имеют и существовали даже тогда, когда не было электричества, какое там HFT.
Цитата
3) "Поводырь" - сленг, ведущий индикатор относительно которого принимаются торговые решения.
Ну, здесь уже хоть что-то близкое. Ура! Поводырем на сленге называют инструмент, за которым следуют какие-то другие инструменты.
Цитата
4)  Высока частотная торговля, торговые операции Маркет мейкера или  компаний разместивших свою инфраструктуру на бирже, обладающих  алгоритмами позволяющими это делать.
Я не понимаю к чему вы приплетали HFT тогда и сейчас. ММ и без HFT может прекрасно работать. Какое отношение к рассматриваемому вопросу имеет HFT?
Цитата
Геп на открытие торгового дня,  как правило продукт торговой деятельности маркет мейкера, решая  предписанные ему задачи, вынужден набирать позицию по невыгодным ценам.
Нет, на аукционах открытия ММ не обязан участвовать и не "вынужден он набирать позицию по невыгодным ценам". На такие условия дураков поискать... То у вас ММ это монстр, который гэпом хомяков наказывает, а то "вынужден набирать позицию по невыгодным ценам".
Цитата
Вынужден  по кругу своих обязанностей торговать большими объемами, большие объемы  оставляют следы на графике и ленте.
Нет у него обязанностей торговать. Ни большими, ни малыми объемами. Другие у него обязательства. Он может, вообще, сделок не заключать, а какие вы всё там следы ММ на графиках видите - загадка.
Цитата
Применяемые технологии практически  известны.Строя гипотезы относительно действий ММ можно строить торговые стратегии.
Гипотезы? Чувак, договор на сайте лежит.
Цитата
Ну а дальше сами.
Вот это ваше снисходительное "Ну а дальше сами" мне больше всего понравилось. И это после всего написанного вами бреда. Смешно. Если бы вы, вместо бессмысленной писанины и флуда здесь на сайте, потратили бы время на изучение основ предмета, то это пошло бы на пользу прежде всего вам. Думайте о себе. На данный момент вы, вообще, не алё в вопросе. За эти пару дней вы имели возможность практически полностью разобраться, но вам это, видимо, не нужно. Вот вы поняли, например, кем и чем NG привязан? Или завтра гэп вниз на NG опять из-за действий какого-то вашего ММ произойдет?
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
Мне не нужно себе ответьте.
Вам, как человеку, который не имел никакого понятия о рынке газа и инструменте NG, указали на фактические ошибки.
Вы вместо того, чтобы сказать "спасибо, не знал", пишете "только что это отменяет?". (Аналогия: вы пишете, что самолет летит, потому что крыльями машет. Вам объясняют, что у него не крылья, а крыло, и он им не машет. Затем вы пишете "только что это отменяет?" Это ничего не отменяет, просто у вас абсолютно неверное знание о предмете).
Дальше вы зачем-то продолжаете писать какую-то дичь про высокочастотный трейдинг, поводырей и задавать какие-то нелепые вопросы, которые вы даже не в состоянии сформулировать, при том, что ответы вам не нужны. Вам вот это всё здесь зачем? Вы реально хотите донести, что то, что вы написали в своем первом посте про маркет-мейкера, верно?
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
Вы не понимая сами,    описали только что автоматическую, высокочастотную торговлю "с поводырем". А причины определяемые, как триггер, бывают разные.
Важно, что цену сильно опустили, и нужна была причина для разворота рынка.
Не фантазируйте и не приписывайте другим то, чего они не писали. Я не описывал никакую "автоматическую, высокочастотную торговлю "с поводырем". Вы смысл слова "высокочастотный" в принципе понимаете? Каким тут боком HFT? Вам факты изложили: Рынок просто вырос на отчете на основном рынке. Не очень сильно на общем фоне долгосрочного падения, обоснованного фундаментальными причинами. До моего комментария вы ни малейшего представления не имели о NG и что там происходит, но продолжаете упорствовать и фантазировать, теперь уже про какой-то HFT и какого-то "поводыря".
Цитата
А я лишь указал на графике, где можно наблюдать классическую работу маркет - мейкера
Вы такую "классическую работу маркет-мейкера" можете увидеть в колебаниях деревьев на ветру. Это апофения называется. Вы читайте хотя бы, что сами понаписали: "С утра гэпом улучшает свою логовую позицию, разворачивает рынок в рост". Там и близко такого нет. Вам написали, чем занимаются маркет-мейкеры. Можете сами взять деньжат, зайти на неликвид какой-нибудь, задрать его в цене процентов на 40%, а потом сюда придете и расскажете нам про своё удивление тому, что за вами никто не присоединился и отдать то, что вы понакупили, некому. Может тогда ваше детство закончится и сказки про всемогущих кукловодов, маркет-мейкеров и прочих оставят вас и этот форум.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
Интересная ситуация сложилась на рынке ПРИРОДНОГО ГАЗА (NG) , всю прошлую неделю даже раньше, шли мощные продажи, казалось что уже совсем на этих уровнях нет покупателей. И вот вчера 21.02.24г., в работе маркет - мейкер, во всей своей красе. С утра гэпом улучшает свою логовую позицию, разворачивает рынок в рост, мощное пробитие уровня 1.692, запирает "шортистов" на уровне 1.790,
и целый день работает от этого диапазона видимо, разворачиваются и набирают лонговые позиции. А как вы хотели маркет - мейкера обижать!
Проведу ликбез небольшой, а то вы так далеко от реальности удалились, что читать больно:
NG на МБ это расчетный контракт, цена исполнения которого привязана к значению расчетной цены соответствующего фьючерса Henry  Hub Natural Gas Futures, которая определяется биржей NYMEX и публикуется  на сайте CME Group. То есть это "зеркало" - цена на МБ ходит за ценой на CME. Оригинальный фьючерс торгуется круглосуточно, 20 февраля в 16-00 по Eastern Time, когда МБ не работает, вышел отчет известной газовой компании Chesapeake Energy Corporation. На этом отчете газ сильно вырос, естественно без всякого гэпа, просто за несколько свечей. Тут график посмотрите. NG на МБ с утра, естественно, открывается гэпом, так как он привязан. Вот и всё.
пс. Забудьте вы про кукловодство маркет-мейкеров - это всё конспирология для недалёких.
После длительной работы QUIK: os.clock() =-0.001
 
Цитата
Михаил Понамаренко написал:
Если повторится попробую второе.
:smile: Обязательно повторится на 25-й день, вам же paluke написал почему: "Microsoft implements clock_t as a long, a signed 32-bit integer, and the CLOCKS_PER_SEC macro is defined as 1000. This macro gives a maximum clock function return value of 2147483.647 seconds, or about 24.8 days".
Можно ли узнать, что скрипт qlua не дополучает инфо по onalltrade/onquote?
 
Цитата
Serge123 написал:
Хм, а я как-то не обращал внимание на эти функции. Тогда выходит, что можно не загружать ЦП коллбэком OnAllTrade, если всё это можно брать напрямую из таблицы all_trades?
Да, многие так делают.
Цитата
Хочу ещё уточнить, как узнавать направление сделки по флагам, описание на https://luaq.ru/getItem.html неясное:

===
Набор битовых флагов
Параметр Тип Описание
бит 0 (0x1) - Сделка на продажу
бит 1 (0x2) - Сделка на покупку
===

Такое   чувство, что я всё время неправильно определяю направление (buy или   sell). Я считал, что если младший бит = 0, то buy, а если младший бит =   1, то sell.
Сделка на продажу получается, когда активный продавец бьет по лимитной заявке покупателя.
Цитата
А из этого объяснения вроде бы следует, что если мл.  бит = 1, то это  sell, а если следующий за младшим битом бит = 1, то это  buy, так? Вроде  бы можно было обойтись одним мл. битом...
Скачайте на сайте полное Руководство пользователя. Там написано: "Если флаги не установлены, направление сделки не определено".
CalcBuySell. Что не так?
 
Цитата
nikolz написал:
Функция выдает нули.  Что не так?
На реальном сервере функция работает.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал: Я вообще не понимаю в чем различие loadfile от load в каком случае чем пользоваться (может есть какие то критерии) ???
Всё из той же книги: "Функция load похожа на loadfile, за исключением того, что она берет кусок кода не из файла, а из строки (Примечание: В Lua 5.1 функция loadstring выполняет роль load)".
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
"Errare humanum est. Поэтому мы должны обрабатывать ошибки как можно лучше...
По вашему предыдущему вопросу в этой же книге есть пояснение: "Многие программисты пытаются писать нечто подобное: value = loadstring("return " .. varname)(). Если, скажем, varname равно x, то результатом конкатенации будет "return х", что при выполнении даст нам желаемый результат. Однако, этот код включает в себя создание и компиляцию нового куска кода, что является довольно затратным. Вы можете добиться того же эффекта при помощи следующего кода, который в десятки раз эффективнее предыдущего: value = _G[varname]".
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
Игорь М, А вы сами то о чем написали, хоть одно слово про код?
Про какой код-то? Про фреймворк этот? Так он простой и примитивный, своего рода общая канва, как у всех. Что там обсуждать-то, это же не заумный торговый алгоритм, это просто каркас.
Цитата
Пафоса  много, а потом сами обижаетесь что все пустое, да и общаемся мы в одной ветке ни кому не мешаем,
принцип здесь простой "не нравится запах отойди в сторону"!
На технических форумах для общего удобства принято обсуждать что-то по конкретной узкой теме, чтобы люди не тратили свое время в поисках чего-то нужного, о чем я и написал. Люди заводят конкретную тему на профильном подразделе и её обсуждают. Подобное структурирование и вам может пригодится, а так я за обсуждение любых тем всеми, кому это нужно.
Цитата
Да код старый, такой старый что за это время лучшего никто не показал,
напишите свой будем обсуждать Ваш.
Я, если честно, не очень понимаю вашего восторга по поводу данного фреймворка. Можно подумать, что все, кому нужно будет написать код для торговли на бирже, пишут что-то концептуально разное. Достаточно простая задача и выбора вариантов реализации решения там практически нет, у всех плюс/минус всё одинаковое.
Цитата
Про "айсберг", чтоб этим алгоритмом пользоваться нужно 2 контракта.
Вам Владимир написал "99.999% трейдеров не имеют денег ни на какие айсберги". Это он про биржевые "айсберги" писал, а не какие-то ваши самодельные на 2 контракта. Я вам ссылку давал на сайт МБ.
Цитата
Про деньги у кого их не тот, тот их на бирже не сливает.

Ну и с арифметикой полный "пипец".
Не достаточно таких средств под Ваши "аппетит" как минимум нужно умножить на 4,
иначе счет будет перегружен.
Это реально невозможно понять. Русский язык для вас родной? Если да, то нет никакой необходимости спешить и превращать свой текст в шизофазию.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
Glukator написал:
 Извините, что встреваю в столь многозначительную беседу ))
Но я вот тоже ни разу не понимаю, на кой рожн нужны конкретно здесь "сопрограммы", "многопоточность", "многозадачность" и прочая хренота.
Весь разговор с самого начала идет в русле "вот у нас есть такие ахренительные суперхреновины, давайте подумаем, как нам их присобачить на нашей задаче". Может, стоит наоборот рассуждать, "вот у нас есть такие задачи, давайте подумаем, как их можно реализовать возможно проще и надежнее без всяких сложных хреновин"?
Тут особо никто не рассуждает, здесь в принципе нечего обсуждать. Рассказываю. История проста: VPM нашел старый фреймворк и носится с ним, как с писаной торбой. Повторяет одно и то же, цитирует сам себя, не анализирует то, что ему отвечают, пиарит этот великий и могучий фреймворк; русскому языку, кстати, тоже перепало. Эдакая сектантская модель поведения.
Казалось бы, ну, понравилась тебе программка - пользуйся и радуйся, оповестил всех о ней - все тебе сказали "спасибо" и оценили нужна она или нет, но зачем на 10 страницах повторяться? Залезаешь как-нибудь в поиск по форуму что-нибудь найти конкретное, а там вот такие темы... И листаешь всё это, тратя время. Нужно поболтать а ля вообще? Заведи тему в "Обмен опытом".
Ну, если тебе пишут, что не нужно "это", "это"и "это" потому что, и объясняют, а ты не врубаешься, то какой смысл дальнейшей писанины?
Пишет Владимир: "99.999% трейдеров не имеют денег ни на какие айсберги". VPM сокращает цитату, изменяя тем самым смысл, до "99.999% трейдеров не имеют денег", а затем отвечает про стоимость ГО для одного контракта в 15000 рублей. На кой хрен нужен такой диалог? Владимир прав, для айсберга нужно много денег, так как "минимальный объем всплывающей части" айсберга это 100 контрактов, а для Brent это 300. То есть, 300*14530 = 4359000 руб. И это только одна часть айсберга. И все остальные диалоги примерно такие же. Зачем это всё VPMу - загадка...
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
Цитата
Игорь М написал:
 
Цитата
VPM написал:
Прислушался к автору, "Таблицы в Lua — это не одна из структур данных, — это единственная структура данных.",
перевожу все переменные в формат таблицы луа,
не знаю поможет?
 Я думаю, что автор будет впечатлён.
Не понимаю к чему этот сарказм?
Да какой сарказм-то... Я реально думаю, что автор будет впечатлён тем, что его фраза "Таблицы в Lua —... — это единственная структура данных" способна вызвать действие "перевожу все переменные в формат таблицы луа". Что это такое "перевожу все переменные в формат таблицы луа", как и зачем?
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
Прислушался к автору, "Таблицы в Lua — это не одна из структур данных, — это единственная структура данных.",
перевожу все переменные в формат таблицы луа,
не знаю поможет?
Я думаю, что автор будет впечатлён.
Учусь работать с метками, Помощь в написании кода для выставлении меток на графике
 
Вы разделите проблему на части, а то непонятно, что у вас не получается. В теме написано, что пытаетесь метку вывести. Так создайте простую метку, попробуйте её вывести, если выводится, то с остальными проблемами разбирайтесь
Получить данные свечи у правого края окна (на истории)
 
Цитата
Сергей написал:
Может быть найдутся другие пути, чтобы передвинуть график в окне, например инициировать событие нажатия на стрелочку, которой передвигается график.
Не та задача для настолько сложных подходов. Колхозный метод получения данных свечи такой: Ставите метку на график на оси той свечи, которая нужна (в вашем случае правая крайняя). Ставите её таким образом, чтобы она была по итогу вне границ графика (например, под осью времени внизу). Это чтобы метка не маячила и вы её случайно не задели. Снимаете с неё галки "Перемещать со шкалой времени" и  "Перемещать со шкалой цены". Дальше определяете её идентификатор простым скриптом. Если график новый, то идентификатор равен 1. Дальше в цикле эпизодически будете эту метку опрашивать и она будет отдавать вам реальные координаты времени, по которым будете брать данные с уже текущей свечи графика, которая будет с этой меткой на одной вертикальной оси. Если будете удалять все метки на графике, то удаляйте через скрипт, который не будет трогать вашу поставленную метку (её сделайте с каким-либо редким шрифтом, чтобы по нему идентифицировать). Это всё работает на данный момент.
Получить данные свечи у правого края окна (на истории)
 
Цитата
Сергей написал:
Хотел написать программу, которая бы при просмотре свечей в одном окне (допустим на М5), сама пододвигала график в окнах других ТФ
"Данные последней видимой в окне свечи (у правого края экрана)" получить можно, но колхозным способом. Для решения вашей задачи это не поможет, так как средствами Qlua нельзя двигать графиками.
getitem и тип сделки. маркет-мейкер маркет-тейкер
 
Цитата
Kolossi написал:
Как всегда, хороший вопрос перевели в срач.
В продолжение темы: насколько реально когда-нибудь объем свечи ds:V(n) получать в виде V(n).maker+V(n).taker?
Так это и 10 лет назад можно было, ещё на Qpile такое писали. Пишете скрипт, который ТОС обрабатывает, и выводите результат в таблицу или метками на график.
getitem и тип сделки. маркет-мейкер маркет-тейкер
 
Цитата
Владимир написал: Во-вторых, эти данные нафиг не нужны: при подаче заявке мы не можем гарантировать, будет ли сделка тейкерной или мейкерной, а после того, как сделка состоялась, это и тем более никому не интересно.
Можем. Для этого всё и делалось. Мейкерная заявка с условием "Только пассивная" (скриптом или руками) поданная по рынку будет отклонена биржей. Обсуждали уже здесь.
getitem и тип сделки. маркет-мейкер маркет-тейкер
 
Цитата
Glukator написал:
А вопрос-то правильный, интересный и нужный. И хорошо бы узнать, что скажут об этом разработчики.
Поскольку внятного ответа так и не было, подниму тему вновь. Вопросов здесь, на самом деле, два:
1. Какой параметр в таблице сделок (или в данных, получаемых от прерывания OnTrade) позволяет определить, была ли сделка "тейкерной" или "мейкерной" в том смысле, что заложен в комиссионные тарифы Мосбиржи?
2. Зависит ли передача этого параметра в терминал пользователя от настроек на стороне брокера?
Нет там проблем никаких. Просто nshch спутал Сделки с Заявками и выкатил сюда описание битовых флагов для Заявок. В описании флагов для Сделок всё есть:
бит 5 (0x20) Пассивная сделка («Состояние» — «П»)
бит 6 (0x40) Активная сделка («Состояние» — «А»)
QLua — Получить время возобновления торгов, "Старт торгов ... установлен с хх:хх:00 мск."
 
Цитата
Nikolay написал:
Цитата
Игорь М написал:
Причем здесь какой-то мой алгоритм? Подняли тему и я написал,что TRADINGSTATUS криво работал раньше, написал что проверю снова. Вот проверил, ничего не поменялось. Написал сюда, чтобы люди, которые будут потом читать, не тестировали заново. Резюмируя: TRADINGSTATUS - бесполезная мура, 10-15 секунд это перебор для любых систем. За эксклюзивную информацию о том, что "система торговли Квик - это не тот инструмент, что стоит использовать" для "мгновенной реакции", низкий поклон, конечно.  ::  

Вы же говорите, что задержка в 15 секунд для Вас критическая. Я пока не видел с этим проблем, для любых торговых систем. Совершенно разные мнения.
Я такого не писал. Она для меня не критическая, я TRADINGSTATUS не использую. Я имел в виду, что если такая простая опция, как определение статуса сессии, имеет задержку в 10-15 секунд, то этим не следует пользоваться в любых системах. Она просто тупо неправильно работает. Не может быть в современных реалиях такой задержки. Возможно, когда-то она работала правильно, но потом что-то поменялось, а её не исправили. Она стабильно выдает нереальную задержку - это баг.
QLua — Получить время возобновления торгов, "Старт торгов ... установлен с хх:хх:00 мск."
 
Цитата
Nikolay написал:
Цитата
Игорь М написал:
Для информации: проверил снова за эти два дня, как были раньше неадекватные задержки, так и остались. Значения писались в лог при их изменении (SiU3):
140514.690: status: 1

Вчера статус на 11-ой секунде после возобновления торгов поменялся, а сегодня на 15-й.
Если Ваш алгоритм требует мгновенной реакции, то, видимо, стоит задуматься, что система торговли Квик - это не тот инструмент, что стоит использовать. Хотя, конечно, можно дополнить получение статуса косвенными методами. Получите статус по тому, какой сработает быстрее.
Причем здесь какой-то мой алгоритм? Подняли тему и я написал,что TRADINGSTATUS криво работал раньше, написал что проверю снова. Вот проверил, ничего не поменялось. Написал сюда, чтобы люди, которые будут потом читать, не тестировали заново. Резюмируя: TRADINGSTATUS - бесполезная мура, 10-15 секунд это перебор для любых систем. За эксклюзивную информацию о том, что "система торговли Квик - это не тот инструмент, что стоит использовать" для "мгновенной реакции", низкий поклон, конечно.  :smile:  
QLua — Получить время возобновления торгов, "Старт торгов ... установлен с хх:хх:00 мск."
 
Для информации: проверил снова за эти два дня, как были раньше неадекватные задержки, так и остались. Значения писались в лог при их изменении (SiU3):
134806.371: status: 1
134806.372: phase: 2
134806.372: session: 0
140008.938: status: 0
140008.938: phase: 1
140511.145: phase: 2
140514.690: status: 1

Вчера статус на 11-ой секунде после возобновления торгов поменялся, а сегодня на 15-й.
QLua — Получить время возобновления торгов, "Старт торгов ... установлен с хх:хх:00 мск."
 
По поводу TRADINGSTATUS: Я когда-то тестировал его и, если не ошибаюсь, он криво работал. Он в 14:05:10 показывал 0, хотя торги уже 10 секунд шли, и лишь на 11-ой секунде он стал 1. Такая же история и с вечерней сессией. Надо в понедельник проверить снова.
Как получить полное наименование фьючерса?
 
Цитата
Николай написал:
С одной стороны грустно, что нет такой информации. С другой стороны хорошо, что я не зря писал такую функцию, которая по коду фьючерса выдает его наименование. Если кому-то нужно - то пользуйтесь. :-)

https://nikolai-antonov.ru/scripts/giveFullName.lua

Правда, функция обрабатывает только те фьючерсы, которые были доступны у моего брокера (ВТБ).
Я вам код подкорректировал. Лучше это через таблицу сделать. Не благодарите.
Код
local t_full_name_fut = {
     RI = "Фьючерсный контракт на Индекс РТС",
     Si = "Фьючерсный контракт на курс доллар США - российский рубль",
     -- ......
     KZ = "Фьючерсный контракт на курс казахстанский тенге – российский рубль"
    }
    
local function getFullSecCode (sec_code)
   if type(sec_code) == "string" then
       return t_full_name_fut[string.sub(sec_code, 1, 2)]
     else
       return nil           -- или что-то другое
   end
end

message ("Код инструмента: " .. tostring(getFullSecCode("RIU3")))     -- --> Фьючерсный контракт на Индекс РТС
message ("Код инструмента: " .. tostring(getFullSecCode("abcdef")))   -- --> nil
message ("Код инструмента: " .. tostring(getFullSecCode(nil)))        -- --> nil
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
Код
  Кое что нашел:

 true   -  флаг установлен
 false   -  флаг не установлен
 -- Функция проверяет установлен бит, или нет (возвращает true, или false) 

-------

где: 
х – значение; 
n – номер бита. Нумерация битов начинается с « 0 ».
  

Всем спасибо, кое что понял!
На это невозможно смотреть.  :smile:    У вас есть руководство пользователя "Интерпретатор языка Lua" ? Там в п. 6 описаны все функции для работы с битовыми масками. Зачем вам эта гроздь elseif-ов или test? test для теста. Пример:
Код
       local order = getItem("orders", i)                             -- получение таблицы данных из i-ой строки ТЗ

       if order and order.flags & 5 == act_direction and order.sec_code == SEC_CODE then       -- если есть активная заявка рабочего инструмента заданного направления
Вы здесь за один удар определяете и то, что у вас заявка активная и то, что она купля/продажа (5: 00000101). Если act_direction = 1, то это активная на покупку, если act_direction = 5, то это активная на продажу. Сразу, не выясняя по отдельности биты флагов.
Еще пример:  
Код
       if order.flags & 1 == 1 then                                    -- соответствующая заявка активна (исполнена частично)

              -- бла бла

         elseif order.flags & 2 == 0 then                              -- соответствующая заявка исполнена полностью

           if order.qty > trades_qty_order[order.order_num] then         -- количество контрактов в заявке больше суммарного количества контрактов всех сделок, соответствующих этой заявке
              -- бла бла
             else                                                            -- заявка полностью исполнена (все соответствующие данной заявке сделки появились в ТС и были обработаны)
              -- бла бла
           end

         else                                                          -- соответствующая заявка исполнена частично и снята

           if order.qty - order.balance > trades_qty_order[order.order_num] then   -- исполненная часть заявки больше суммарного кол-ва контрактов всех сделок, соответствующих этой заявке
              -- бла бла
             else                                                            -- все сделки, которые соответствуют исполненной части заявки, появились в ТС и были обработаны
              -- бла бла
           end

       end
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
Ziveleos, Спасибо!

Можно утверждать что такая запись надежна?
Цитата
VPM написал:
nikolz, Я про надежность какой вариант надежней? Или все безопасно?
В фрейморке HackTrade так было написано не из-за надежности, а из-за отсутствия побитовых операций в Lua52 на тот момент, они только в 2015 году появились в Lua53.
Как запустить скрипт qlua из командной строки?
 
Цитата
Alexander написал:
Да, действительно не надо его постоянно удалять и заново загружать. А я вот так тупил всё это время. Я просто начинал с QPILE и там постоянно надо было скрипт загружать локально.
Я некоторое время на Qpile еще и каждый раз заново таблицу создавал без надобности.
Как запустить скрипт qlua из командной строки?
 
Цитата
Alexander написал:
Я хочу более простого подхода. Зачем мне все эти лишние телодвижения? Я и так уже написал программу на C++, которая сам запускает квик, ждёт появление окна логина, вводит логин и пароль, запускает программу DebugView, получает ID процесса квика, настраивает фильтр в DebugView по этому ID, сама отвечает на вопрос диалогового окна не обновлять инструменты и нажимает в окне на OK. Всё это упрощает мои действия, которые мне приходилось бы делать руками. Вот и тут я не хочу руками постоянно сохранять скрипт, в квике удалять старый скрипт, загружать новый, опять его запускать, иногда можно запариться и не удалить старый и запустить, или внести изменения в скрипт и забыть по запарке сохранить и в квике загрузить тот же самый предыдущий скрипт. Конечно это уже делается на автомате и практически без таких ошибок, но иногда по запарке можно и накосячить на голом месте. А зачем всё это надо? Есть же нормальные простые решения для этого.
Зачем вы удаляете в Квике старый скрипт и загружаете новый? Вы каждый раз сохраняете его под новым названием? Вы в этой теме потратили на написание текста времени больше, чем сэкономите за ближайшие 2 года, реализовав вот это вот всё, а может и не сэкономите. У вас какая-то автоматизация ради автоматизации. Вот вы в блокноте отредактировали скрипт, допустим у вас там сообщения контрольные вставлены или запись в лог файл, сохранили вы его и кнопку запуска скрипта в Квике нажали. Всё. Что вы тут сэкономите? Да, бывает не нажал Ctrl S, но это редкость, в том же Notepad подсветка меняется и * в панели задач на несохраненном видна. Ради этого редкого события?
В чём преимущество OnInit
 
Вы писали, что используете OnTrade и обрабатываете в мэйне, хотя у вас в OnTrade  аж 250 мс обработка, ну это ладно.  Наверху большим количеством текста спорили с TGB , что лучше. Я кратко  описал возможные варианты, даже не для вас, а для тех кто читает. В том  варианте, что используете вы (только с одной функцией обратного вызова OnTrade), разницы между OnTrade и getNumberOf  ('trades') с вашей скоростью опроса нет. Кому, что нравится, то он и  делает.
В чём преимущество OnInit
 
Цитата
Владимир написал:
Игорь М, Ну, я обрабатываю в мейне, на флаг изменения состояния OnTrade мне насрать - я даже не знаю, что это такое. OnTrade лишь записывает данные в стек, код я приводил.
В коде у вас изменение размера стека. Это и есть флаг изменения состояния OnTrade.
В чём преимущество OnInit
 
По поводу getNumberOf ('trades') vs OnTrade:  Всё зависит от того, где вы обрабатываете. Если из мэйна флаг изменения состояния OnTrade в цикле опрашивать, чтобы потом всё в мэйне обработать, то особой разницы между опросом в цикле изменения количества сделок getNumberOf ('trades') и этого флага в OnTrade практически нет, без OnTrade тогда проще. А если 2+2 непосредственно в OnTrade складываете и в мэйне обработки нет, то тогда не нужно с getNumberOf ('trades') заморачиваться. Всё зависит от трудоемкости обработки сделки, у каждого свой случай.
Ошибка при создании метки
 
Сюда дополню по этой проблеме. Там подставляются по умолчанию кривые координаты с противоположным знаком по оси Y. Если их исправлять при постановке метки, то она выставляется.
Работа нескольких скриптов с одним файлом, Выдает периодически ошибку при работе нескольких скриптов с одним файлом
 
Цитата
Дмитрий написал:
function mark_Fail (zap, mark) - моя функция записи в файл
FileWrite = io.open('D:\\QLUA\\fails\\mark.txt', zap)
FileWrite:write(mark)
FileWrite:close()
end
а другой скрипт читает этот файл.
Вы бы написали ещё как читаете. У меня записываются данные в файл одним скриптом и читаются другим в 10 раз чаще и не было подобных проблем. Не знаю как вы читаете, могу предположить, что открываете и закрываете файл при каждом чтении. В этом нет необходимости, открывайте файл на чтение в начале работы читающего скрипта и закрывайте файл в конце работы непосредственно перед остановкой. Попробуйте.
Тормоза в отрисовке меток в 10 версии
 
Продолжаю увлекательное тестирование свежих версий. На 10.2 визуально отметил тормоза в отрисовке графики и тормоза в выставлении заявок, о чем здесь писали. Ну, это четко ещё не проверил. Теперь о том, что проверил: Метки в 10 версии отрисовываются в 4-5 раз медленнее. Не поленился и проверил много версий и установил, что фиаско случилось в самом начале: с версии 10.0.1. А в версии 9.7 все замечательно, даже лучше процентов на 20, чем в предыдущих. Возможно, эта заторможенность носит какой-то общий характер, а не касается исключительно меток. Вот скрипт для теста:
Код
local CHART_TAG_PRICE = "Test_speed_lab"

local function sysTime ()
   local t_time = os.sysdate()
   return 10000 * t_time.hour + 100 * t_time.min + t_time.sec + 0.001 * t_time.ms
end

function main ()

   local label = {

     IMAGE_PATH = "C:\\Quik_Pic\\Lines\\500_1_red.bmp",

--[[                                                          -- закомментированно: рисунок, раскомментированно: текст
     TEXT = "________________________",
     IMAGE_PATH = "",
     TRANSPARENT_BACKGROUND = 1,
--]]
     ALIGNMENT = "TOP",
     YVALUE =  84.00,
     DATE = 20230615,
     TIME = 130000,
     R = 0,
     G = 160,
     B = 0, 
     FONT_HEIGHT = 12 
   }

   local sys_time = sysTime()

   for i = 1, 1000 do
       label.YVALUE =  label.YVALUE + 0.001
       AddLabel(CHART_TAG_PRICE, label)
   end

   sys_time = sysTime() - sys_time

   message("sys_time: " .. tostring (sys_time))

   sleep(2000)
   DelAllLabels(CHART_TAG_PRICE)

end
График USDRUB_TOM, дату/время текущие поставите, путь для картинки свой пропишите. Картинка здесь эта простая линия, можно взять любой рисунок. На тексте разницы почти нет, на картинке замедление в 4-5 раза. Рисуется прямоугольник снизу вверх.
10.2.1.12, отображение
 
Сюда напишу по версии 10.2.2.24
Неправильно работает опция "Контролировать цены заявок".
Привязка меток к графику
 
Цитата
Karina Dmitrieva написал:
Здравствуйте, Игорь М.

Да, начиная с версии Рабочего места QUIK 9.1 так реализовано.
В данном случае можем предложить зарегистрировать пожелание на доработку функционала.
Уточните, пожалуйста, регистрируем?
Да, зарегистрируйте, пожалуйста. Чтобы метки не пропадали и их можно было выставить, когда график, к которому эти метки привязаны, не находится в области видимости. Чтобы было как раньше.
Шрифты., Вернуть в Quik возможность использования всех доступных шрифтов, как это было в версии 6.17
 
Цитата
Kalmar написал:
Цитата
Игорь М написал:
Уважаемые разработчики, спасибо, что вернули MS Sans Serif в шрифты!
Разве вернули? Или это сарказм?
Не сарказм, вернули. Я тут стал новые версии смотреть, поставил 10.1.2.2 - и там, о чудо, многие шрифты, включая этот, присутствуют. Я все эти годы так решал: ставил в терминале шрифт тоже на 13 символов (Comic Sans MS), сохранял файл настроек (.wnd) и затем в файле настроек уже менял Comic Sans MS на MS Sans Serif и всё работало. Но теперь всё стало нормально, можно без этих огородов обойтись.
Шрифты., Вернуть в Quik возможность использования всех доступных шрифтов, как это было в версии 6.17
 
Уважаемые разработчики, спасибо, что вернули MS Sans Serif в шрифты!
Ошибки в документации (руководстве пользователя)
 
Цитата
Egor Zaytsev написал:
Добрый день.

Игорь, уточните, что Вас смущает в данной формулировке?
Егор, она очень странная. Какие инструменты в лотах? В пункте "4.5 Заявки" у вас нормально написано: "qty NUMBER Количество в лотах". Также и в сделках должно быть.
Привязка меток к графику
 
Цитата
Karina Dmitrieva написал:
Здравствуйте, Игорь М.

Да, с версии Рабочего места QUIK 9.1 метки привязываются к графикам.
Такое поведение было реализовано для того, чтобы метки можно было оставлять на графике при смене инструмента по аналогии с трендовыми линиями, фигурами.

Цитата
Если теперь поставить шкалу на графике в ручном режиме от 100 до 200, к примеру, а максимум графика цены будет ниже 100, то метку не будет видно.
Приложите, пожалуйста, скриншоты как именно отображаются метки у Вас на графике сейчас и как по Вашему мнению должно было бы быть.
Я понимаю, что не просто так это нововведение сделали. Но в результате, если график выходит за видимую область в окне, то метка пропадает. До версии 9.1 такого не было, метка оставалась. Хотелось бы, чтобы метка оставалась на месте, даже если графика на данный момент нет в области видимости. Например, метка (картинка из файла), которая используется в качестве уровня экстремума цены, благополучно пропадает, если вы сдвинули график таким образом, что в нем график цены на этот момент не виден.
Как убрать рекламный баннер?, Реально злит!
 
Цитата
Karina Dmitrieva написал:
Добрый день.

К сожалению, мы не можем заставить брокера использовать или, наоборот, не использовать тот или иной функционал.
Каждый брокер самостоятельно принимает решение.
Понятно, что вы не можете "заставить брокера использовать или, наоборот, не использовать тот или иной функционал". Идея была в том, чтобы вы попытались донести до них мысль о более цивилизованном решении трансляции рекламы.
Как убрать рекламный баннер?, Реально злит!
 
Цитата
nikolz написал:
Прикольно, но вставка рекламного банера - это фишка разработчиков QUIK.
---------------------
Ау, Разработчики объясните начинающим Вашу фишку с этим банером.
-----------------------
Можно убить этот банер хуком.
Class: ShowBannerWindow.
Разработчики уже отвечали когда-то, что эта возможность была сделана по просьбе брокеров, от них деньги-то идут. Это паровозик был самостоятельной фишкой разработчиков
Привязка меток к графику
 
Как я понял в версии 9.1 изменили функционал меток на графике и теперь "Привязка меток теперь осуществляется не к шкале, а к графику...". Если теперь поставить шкалу на графике в ручном режиме от 100 до 200, к примеру, а максимум графика цены будет ниже 100, то метку не будет видно. Что скриптом ставить по координатам, что руками тоже по координатам. Это неудобно, обрезает некоторые возможности, до этой версии всё нормально работало, куда хочешь метку поставить - туда и ставишь. Зачем это сделали? Есть какие-то настройки, чтобы можно было сделать, как в 8-х версиях?
Форматирование таблицы сделок
 
Цитата
Roman Azarov написал:
Игорь М, добрый день!

Мы обнаружили причину проблемы и исправим ее в ближайших версиях. Приносим извинения за доставленные неудобства.  
Обновился и не увидел, что проблема решена. Два с лишним года прошло, до этого нормально всё было. Какие перспективы?
Как убрать рекламный баннер?, Реально злит!
 
Эта тема неоднократно поднималась. Это какой-то лютый колхоз иметь на рабочем пространстве слепящий рекламный баннер... Жаль, что не бегущая строка со звуковым сопровождением. Еще можно сделать, чтобы он мигал апериодически.

Уважаемые разработчики, обратитесь, пожалуйста, к брокерам и донесите до них простую мысль, что рекламу, тем более не часто меняющуюся, можно слать на почту или, на худой конец, показывать при загрузке Квика. Еще вариант, показывать её в течение первой минуты после подключения к серверу. Много существует грамотных и удобных для всех решений.
Сделки
 
Цитата
Дмитрий написал:
 Искал но ответа так и не нашел, поэтому решил спросить
Странно, я в поиске по запросу OnTrade сразу нашел: https://forum.quik.ru/forum10/topic1082/
Вас подобное интересовало?
Сделки
 
Цитата
Дмитрий написал:
Добрый день!
Вопрос почему то приходит ответ на сделку 2-3-4 раза в function OnTrade(trade_data)
Много раз здесь объясняли, поиском по форуму воспользуйтесь.
Страницы: 1 2 3 4 След.
Наверх