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

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

Страницы: Пред. 1 2 3 4 5 6 7 8 9 След.
По поводу полей ввода P(rice) и Q(uantity) в стаканах.
 
> Правильно понимаем, что речь идет о полях P и Q?

Да.

> Если Вы про окно вида (См. Рис_1), то это реакция на горячие клавиши «Ctrl»+«X»- снимает все активные заявки на продажу из текущего окна котировок по данному инструменту.

На рис. 1 у Вас не окно вида, а окно сообщения. Ctrl+x вроде бы стандартно означает "вырезать":
ru.wikipedia.org/wiki/Вырезать,_копировать,_вставить

Я в стакане в поле Q выделил число, нажал Ctrl+Ins, но содержимое буфера обмена не изменилось...

> Уточните, пожалуйста, для чего Вам необходимо в поле Q (Количество инструментов) вводить числовые выражения?

Бывает нужно добавить к продаже сколько-то акций, которые были куплены по более низкой цене. И ещё бывает надо рассчитать, сколько акций, купленных взаймы у брокера, надо продать, чтобы не попасть на комиссию брокера при окончании вечерней сессии. (В этом случае нужны также умножения и деления). Я для этого пользуюсь калькулятором.
По поводу полей ввода P(rice) и Q(uantity) в стаканах.
 
Кстати, я заметил конфликт комбинаций клавиш при работе с этими полями: если выделить значение в этом поле и нажать Ctrl+x (вырезать и поместить в буфер обмена Виндовс), то возникает страшное окошко типа "Удалить все заявки?" Кроме того, желательно, чтобы работали не только комбинации Ctrl+c/Ctrl+v, но и парные к ним Ctrl+Ins/Shift+Ins. И эти поля желательно вытягивать, чтобы они занимали всю ширину стакана.

А как насчёт того, чтобы можно было вводить в поле Q числовые выражения, хотя бы бесскобочные с + и -? (Надо учесть унарные + и -).
Почему так сильно тормозит ввод/изменение заявки?
 
У меня самая свежая версия Квик, а проблема была всегда, сколько я помню. А помню, минимум, с полгода. При нажатии на клавишу при редактировании, напр., цены, задержка до появления/стирания цифры длится секунды две. Рынки/классы - обычные акции, напр., фонд ВТБ Ликвидность TQTF/LQDT.
Почему так сильно тормозит ввод/изменение заявки?
 
Такое впечатление, что при редактировании полей ввода цены/количества происходит какой-то тяжёлый счёт. Можно его как-то отменить, чтобы это работало так же быстро, как щелчок по быстрой заявке в стакане?
Робот Сетка LUA для QUIK бесплатно, Обзоры и обновления робота
 
>  Робот торгует на моём реальном счёте без вмешательств на удалённом сервере VPS. Результатом работы доволен.

Хотелось бы посмотреть видео, в котором вы заходите на свой брокерский аккаунт и показываете результаты работы за последнеи 3 года...
Хочется в биржевом стакане видеть объёмы заявок
 
Anzhelika Goncharenko, что, до сих пор не сделали?
Срок действия обычной лимитной заявки, Добавить срок действия в обычную лимитную заявку
 
А я думал, что это брокеры у себя хранят такие долгоиграющие лимитки, а также лимитки по инструментам, торги по которым закончились/ещё не начинались.
Пустая таблица позция по деньгам., На балансе есть деньги, в таблицах состояния счета, ограничения по клиентским счетам есть все данные. А в таблице позиции по деньгам пустота.
 
Да, на вкладке "Портфель ФР" таблица "Состояние счёта" через какое-то время сама заполнилась...
Программирование скриптов
 
Кстати, я как-то заметил, что если Квику задать сформировать отчёт по всем сделкам клиента (а их немного), то, пока он их 10 сек. формирует (Квик в это время слегка заблуривает окно), наблюдается потеря в получении скриптом обезличенных сделок и изменений в стакане (тоже на 10 сек.)

Необработанные сделки можно было бы ставить в очередь, чтобы потом отдать их скрипту?
Такое впечатление, что мой скрипт получения сделок и формирование отчёта Квиком не могут работать одновременно?
Квик не может использовать больше 2-х потоков? (Один для терминала и коллбэков, а другой для функции main)?
Примеры dll на GCC 64 для работы со скриптом
 
Цитата
nikolz написал:
покажите Ваш пример на C с ошибкой, исправлю.
Не понял: этот луа скрипт из предыдущего моего сообщения использует известную оболочку от swerg w32.dll, а работающий пример луа+длл на си, который транслируется gcc, на основе примера swerg, который собирался в VS, я получил ещё вчера.

Теперь меня интересует, как получать в длл таблицы от луа и разбирать их, напр., таблицу заявок и обезличенных сделок. Я несколько лет назад перешёл с Дельфи 7 на си под 64 бит и gcc, теперь неохота сидеть на 2-х стульях.

Кстати, если кто не знает, я автор книжки "Delphi и Turbo Pascal на занимательных примерах" (выходила в Питер-БХВ), а также нескольких других книжек, хотя, я программировал, как любитель, для развлечения, в основном писал для продажи англоязычные шареварные игры по своим идеям. А лет 15 назад я был монстром Perl regexp и написал о них лекции на intuit.ru и головоломную книжку, которая выносит мозги ногами вперёд (в связи с рекурсивными шаблонами и вообще). Понаходил в них и в Перле грубых ошибок, сообщал о них письмами Перл майнтайнерам, они их исправляли. К сожалению, эта узкая тема не приносит денег...
Пустая таблица позция по деньгам., На балансе есть деньги, в таблицах состояния счета, ограничения по клиентским счетам есть все данные. А в таблице позиции по деньгам пустота.
 
И "Обновить таблицу" (F5) тоже не помогало...
Пустая таблица позция по деньгам., На балансе есть деньги, в таблицах состояния счета, ограничения по клиентским счетам есть все данные. А в таблице позиции по деньгам пустота.
 
У меня только что тоже было долгое время аналогичное, CalcBuySell и getBuySellInfo тоже показывали нули, при этом приложение "ВТБ инвестиции" показывало, сколько денег и акций на счёте. Перезагружал Квик, не помогало. Минут 20 назад таблица "Состояние счёта" в Квике наконец-то заполнилась...
Примеры dll на GCC 64 для работы со скриптом
 
Спасибо, тов. swerg, за наше счастливое детство, меня сейчас интересует обмен данными между луа скриптом и длл на си.
Кстати, вчера я запустил в квике ваш пример луа скрипта из 1-го поста: https://quik2dde.ru/viewtopic.php?id=329 Получил сообщение "C stack overflow". Может быть, с 2020 г. что-то поменялось в квике?
Примеры dll на GCC 64 для работы со скриптом
 
Там, оказывается, дело было в имени: не  luaopen_mylib_funcs, что я вбрал из другого примера, а luaopen_luacdll, поэтому первоначальную сишную функцию можно оставить, поменяв у неё имя:

int __declspec(dllexport) luaopen_luacdll(lua_State *L)
{
   luaL_newlib(L, ls_lib);
   return 1;
}
Примеры dll на GCC 64 для работы со скриптом
 
И вместо
int __declspec(dllexport) luaopen_mylib_funcs(lua_State *L)
{
   luaL_newlib(L, ls_lib);
   return 1;
}

надо вставить из исходника swerg

LUALIB_API int luaopen_luacdll(lua_State *L) {
// эта функция выполнится в момент вызова require() в Lua-коде
// регистрируем реализованные в dll функции, чтобы они стали дуступны для Lua
// в Lua 5.1 и Lua 5.3 для этого предназначены разные функции
#if LUA_VERSION_NUM >= 502
luaL_newlib(L, ls_lib);
#else
luaL_openlib(L, "luacdll", ls_lib, 0);
#endif

return 1;
}
Примеры dll на GCC 64 для работы со скриптом
 
Наконец-то заработало: я не заметил совета тов. swerg вставить
#define LUA_LIB
#define LUA_BUILD_AS_DLL
до подключения заголовочных файлов для Lua.
Примеры dll на GCC 64 для работы со скриптом
 
Пока при попытке выполнения в Квике выдаётся ошибка
error loading module 'luacdll' from file 'C:\QUIK\luacdll.dll':
Не найдена указанная процедура.

Осталось ещё немного исправить, но что?..
Примеры dll на GCC 64 для работы со скриптом
 
Опять начал искать и наткнулся на стр. qna.habr.com/q/475056
Добавил по примеру оттуда в бат файл ключи -L. и -llua54 и получил наконец-то dll... Чертовщина...
Как правильно удалить элемент из массива со "сдвигом влево"
 
Я наткнулся на интересный сайт
https://www.gammon.com.au/scripts/doc.php
В частности, вот оно:
https://www.gammon.com.au/scripts/doc.php?lua=table.remove
Для qlua есть аналогичные потоконезависимые функции с s вначале: sremove, sinsert, ...
Примеры dll на GCC 64 для работы со скриптом
 
Цитата
paluke написал:
Библиотеку lua нужно указывать: ключики -L, -l
Я разместил в каталоге со всеми файлами файл lua54.lib, который взял из 1-го поста quik2dde.ru/viewtopic.php?id=18 и добавил опцию -Llua54.lib, сообщения с ошибками остались точно теми же, что и выше. Если, скажем, этот формат биб-ки понимает только микрософт и не понимает gcc, то почему линковщик ничего не говорит насчёт этого либ-файла?
Чьё время даёт OnTransReply в таблице date_time?
 
Цитата
paluke написал:
Если вы хотите считать миллисекунды, quik абсолютно бесполезен.
Утром мне удаётся считать сотые доли секунды, и некоторое время назад я часто видел, что становился первым в очередь. А сейчас вечером мало того, что в очередь набивается огромное количество всякой сволочи, так ещё и мосбиржа меняет время начала торгов: было, как положено, 19:00:01, а теперь может быть и > 19:00:04...
Примеры dll на GCC 64 для работы со скриптом
 
Не могу откомпилировать длл на си в gcc.
Есть простая длл на си, все файлы есть.
Gcc выдаёт ошибки:

A:\luac>dll_compile.bat

A:\luac>C:\TDM-GCC-64\bin\gcc.exe luacdll.c -o luacdll.dll -mdll -O2 -s -m64 -std=c17
C:/TDM-GCC-64/bin/. ./lib/gcc/x86_64-w64-mingw32/9.2.0/. ./. ./. ./. ./x86_64-w64-mingw32/bin/ld.exe: a:\temp\ccMCaYnQ.o:luacdll.c:(.text+0x14): undefined reference to `luaL_checknumber'
C:/TDM-GCC-64/bin/. ./lib/gcc/x86_64-w64-mingw32/9.2.0/. ./. ./. ./. ./x86_64-w64-mingw32/bin/ld.exe: a:\temp\ccMCaYnQ.o:luacdll.c:(.text+0x25): undefined reference to `luaL_checknumber'
C:/TDM-GCC-64/bin/. ./lib/gcc/x86_64-w64-mingw32/9.2.0/. ./. ./. ./. ./x86_64-w64-mingw32/bin/ld.exe: a:\temp\ccMCaYnQ.o:luacdll.c:(.text+0x35): undefined reference to `lua_pushnumber'
C:/TDM-GCC-64/bin/. ./lib/gcc/x86_64-w64-mingw32/9.2.0/. ./. ./. ./. ./x86_64-w64-mingw32/bin/ld.exe: a:\temp\ccMCaYnQ.o:luacdll.c:(.text+0x68): undefined reference to `luaL_checkversion_'
C:/TDM-GCC-64/bin/. ./lib/gcc/x86_64-w64-mingw32/9.2.0/. ./. ./. ./. ./x86_64-w64-mingw32/bin/ld.exe: a:\temp\ccMCaYnQ.o:luacdll.c:(.text+0x78): undefined reference to `lua_createtable'
C:/TDM-GCC-64/bin/. ./lib/gcc/x86_64-w64-mingw32/9.2.0/. ./. ./. ./. ./x86_64-w64-mingw32/bin/ld.exe: a:\temp\ccMCaYnQ.o:luacdll.c:(.text+0x8a): undefined reference to `luaL_setfuncs'
collect2.exe: error: ld returned 1 exit status

Не пойму, почему не находятся эти файлы... Этим бат-файлом я делал длл файлы на си.
Хм, не могу сюда приаттачить зип-файл...
Вот си-программка:

***
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"

static int forLua_MultTwoNumbers(lua_State *L) {
// получаем первый и второй параметры вызова функции из стека с проверкой каждого на число
   double d1 = luaL_checknumber(L, 1);
   double d2 = luaL_checknumber(L, 2);

// помещаем в стек результат умножения
   lua_pushnumber(L, d1 * d2);

   return(1);  // эта функция возвращает одно значение
}

// список реализованных в dll пользовательских функций
static struct luaL_Reg ls_lib[] = {
   {"MultTwoNumbers", forLua_MultTwoNumbers},
   {NULL, NULL}
};

int __declspec(dllexport) luaopen_mylib_funcs(lua_State *L)
{
   luaL_newlib(L, ls_lib);
   return 1;
}
***

Вот бат-файл для компиляции:
gcc.exe luacdll.c -o luacdll.dll -mdll -O2 -s -m64 -std=c17

Все .h файлы есть в наличии в том же каталоге...
Чьё время даёт OnTransReply в таблице date_time?
 
NTP сервер ntp1.stratum2.ru говорит: ICMP: 100ms задержка. Это и есть задержка пакета TCP/IP от меня до Москвы?
Чьё время даёт OnTransReply в таблице date_time?
 
Например, если мы получаем trans_reply.status == 3 (заявка выполнена), то какое время мы получаем в OTR:
- время сервера биржи в момент выполнения заявки?
- время сервера брокера, когда он получил ответ от сервера биржи?
- что-то ещё?
Аналогичный вопрос, если заявка не выполнена.
В описаниях этой функции об этом ни слова...

Я сейчас перед вечерней сессией делал заявку на покупку и в OnTransReply получил ответ "не выполнена", время при этом такое:
19:00:04.224811.
Но я эту заявку повторял несколько раз и в следующий раз получил ответ "выполнена", время при этом такое:
19:00:04.377904.

А это я получал содержимое стаканов и отмечал время на моём ПК, которое я перед этим синхронизировал с NTP сервером:
19:00:04.621937
19:00:04.746745
19:00:04.932090
19:00:05.319159

И только в 4-й раз, т.е., когда время было 19:00:05.319159, моя заявка появилась в стакане. Как можно понять такую задержку? Может ли кто-то задерживать мои заявки намеренно?
Не обновляются данные в стакане и в табл. заявок
 
Это было однократно, сообщил об этом техподдержке брокера.
Примеры dll на GCC 64 для работы со скриптом
 
Где можно посмотреть примеры создания длл на GCC 64?
Или хотя бы на FPC 64/Delphi 7...
Не обновляются данные в стакане и в табл. заявок
 
Похоже, это тормоза на стороне брокера или мосбиржи...
Не обновляются данные в стакане и в табл. заявок
 
Сейчас сталкивался с тем, что выставляю в Квике 11.0.0.92 заявку, она принимается, но не отображается в стаканах и в табл. заявок. При этом в андроид приложении она отображается в активных заявках. Перезагрузил Квик - не помогло. Помог перезаказ данных...

Потом в стаканах вдруг вместо 40 строк стало отображаться только 4 (2 на покупку, 2 на продажу), а в  андроид приложении отображались все 40 строк. Через несколько секунд стали отображаться все 40 строк. Пока писал, это повторилось (отображались 2 строки). Брокер ВТБ. Не знаю, что думать...
Неактуальная информация в документации?
 
В файле "Интерпретатор языка Lua.pdf" в разделе "3.12.3 Особенности получения значений Таблицы текущих торгов" написано:
===
• Автоматически из скрипта Lua с помощью функций ParamRequest или CreateDataSource,
при включенной настройке Рабочего места QUIK «Исходя из настроек открытых
пользователем таблиц» (меню Система / Настройки / Основные настройки..., раздел
«Программа» / «Получение данных»).

Терминал QUIK автоматически заказывает параметры, необходимые для
корректного расчета лимитов, при включенной настройке Рабочего места
QUIK «Исходя из настроек открытых пользователем таблиц» (меню Система /
Настройки / Основные настройки..., раздел «Программа» / «Получение
данных»).
===

Но фразы «Исходя из настроек открытых пользователем таблиц» в меню
Система / Настройки / Основные настройки / Программа / Получение данных
не видать...
Как сервер биржи определяет направление сделки?
 
Т.е. сервер определяет B или S с точки зрения рыночной заявки? А, к примеру, в начале торгов мне может встретится встречная лимитная заявка, тогда как сервер выставляет букву? В зависимости от того, чья заявка поступила раньше? В остальном заявки равны.
Как сервер биржи определяет направление сделки?
 
Когда приходит инфо, напр., по OnAllTrade, там присутствует направление сделки: B - покупка и S - продажа. Я заметил, что, когда я продаю, то в этой сделке стоит B, когда покупаю, - S. А как сервер биржи определяет напр. сделки?
А если моя заявка будет по текущей цене, а не лимитная, то тогда направление будет другое?
От вида встречной ко мне заявки (лимитная или по маркету) это направление зависит?
Хочется в биржевом стакане видеть объёмы заявок
 
Ещё, как я писал, в этом сером прямоугольничке шрифт должен быть меньше, чем в клетке, и если в клетке, в которой есть заявка, у юзера выбран жирный шрифт, то это не должно влиять на шрифт внутри серого прямоугольничка. Серый фон прямоугольничка должен быть достаточно тёмный, чтобы белый цвет цифр в нём хорошо был виден.

И эти прямоугольнички и числа в них должны быть выровнены по правому краю клетки (столбца), в котором они стоят,  как сделано у ВТБ.
Хочется в биржевом стакане видеть объёмы заявок
 
Точнее: этот серый прямоугольничек, так же, как и клетка, в которой он находится, кликабельный. По щелчку левой кнопкой при быстром режиме ввода будет выставлена заявка на покупку, если это столбец с покупкой, и заявка на продажу, если щелчок был в столбце "Продажи".
Хочется в биржевом стакане видеть объёмы заявок
 
Разница только в том, что в Квике будет 3 столбца: отдельно для покупки и для продажи.
Хочется в биржевом стакане видеть объёмы заявок
 
Сфотографировал экран для нагладности. В сером прямоугольничке (чтобы было понятно, что он некликабельный) показан объём.  
Хочется в биржевом стакане видеть объёмы заявок
 
На этих картинках вместо 3-х столбцов уже 5... А я вначале сказал, как надо сделать (как сделали в приложении ВТБ Инвестиции). Там по-прежнему остаётся 3 столбца, не надо другого дизайна и непонятных действий по щелчкам, которые приводят к потере денег...
Хочется в биржевом стакане видеть объёмы заявок
 
У меня, естественно, быстрый ввод/снятие заявок.
Поэтому моё предложение сделать показ объёмов в моём родном дизайне стакана остаётся в силе: тут сохраняются все плюсы и нет минусов.Как я уже писАл, для этого в столбцах "Покупка" и "Продажа" имеются пустые места...
Хочется в биржевом стакане видеть объёмы заявок
 
Не пойму, закрыт вопрос или нет... У меня на экране теперь 2 дизайна стаканов: который был раньше и который Вы посоветовали. Я не пойму, как в подменю "Установка операции заявки" что-то можно выбирать, если для разных дизайнов стаканов щелчок по строке с ценой покупки (на зелёном фоне) действует противоположно... Интуитивно кажется, что щелчок по клетке с лучшей ценой покупки должен выставлять заявку на покупку, а не на продажу... Как я с помощью этого подменю могу сделать так, чтобы в новом дизайне стакана щелчок по цене покупки выставлял заявку на покупку, а щелчок в этой строке по цене - заявку на продажу (т.е. наоборот, чем сейчас) непонятно. Да ещё и чтобы это не повлияло на стаканы с прежним дизайном.

Похоже, новый дизайн стакана лучше использовать только для того, чтобы увидеть свои объёмы заявок, а не для торговли, от греха подальше... Но тогда экран загромождается лишним стаканом.
Хочется в биржевом стакане видеть объёмы заявок
 
Оказалось, что по щелчку по цене в зелёном поле (покупок) выставляется заявка на покупку, а при щелчке на столбце цены выставляется заявка на продажу! Это совсем не так, как в том виде стакана, который был у меня раньше, и это очень неожиданно. Там в столбце покупок не выставлялась заявка на продажу. Так можно щёлкнуть и много чего потерять...
Хочется в биржевом стакане видеть объёмы заявок
 
Выбрал вид стакана по снимку, стакан стал Уже, но я заметил неожиданное поведение: если щёлкнуть по клетке в столбце с ценой, то Квик пытается выставить заявку. В моём прежнем дизайне стакана такой щелчок только устанавливал подсветку на строке. Это неожиданное поведение, которое может привести к потере денег, ай-яй-яй...
Хочется в биржевом стакане видеть объёмы заявок
 
Нету у меня своего объёма... Мне что, особую версию программы подсунули? У меня вер. 10.3.1.13.
Хочется в биржевом стакане видеть объёмы заявок
 
Спасибо, только у меня это почему-то называется не "Свой объём", а отдельно: "Своя покупка" и "Своя продажа". В результате, ширина стакана сильно выросла, а это не очень хорошо, т.к. у меня экран не резиновый. Если бы вы сделали, как я выше советовал, то ширина стакана не увеличилась бы.
Хочется в биржевом стакане видеть объёмы заявок
 
На Рис_1.PNG в столбце "Свой объём" вижу 1 акцию по цене 2.91. Если эта 1 акция является суммой всех заявок по цене 2.91, то это то, что мне нужно. Это можно настроить в Квике?
Хочется в биржевом стакане видеть объёмы заявок
 
Да, отображать всего акций по каждой цене (в её строке), по которой есть мои заявки.
По заявкам на продажу для этого есть место в правой половине стакана, а по заявкам на покупку - в левой.
Узнать точное время скриптом
 
По идее, сервер брокера должен быть готов до начала приёма предварительных заявок...
В связи с этим такой вопрос: в таблице заявок orders что означают поля

activation_time NUMBER Время активации
datetime TABLE Дата и время

datetime это какое время и чьё оно? Оно приходит с сервера биржи, брокера или это Квик даёт время на моём ПК? Это время принятия заявки Квиком, сервером биржи?.. Не смог найти разъяснения.

А activation_time это что? Я посмотрел для одной заявки, оно равно 0. И какой формат у этого времени?
Узнать точное время скриптом
 
Чтобы при приёме заявок раньше встать в очередь, я синхронизирую часы Виндовс по атомным часам и проверяю это в сервисах типа time100.ru. Но всё равно возникают погрешности. Напр., утром эти сервисы, как правило, говорят (да ещё и каждый по-своему), что у меня точное время, а в 19 часов, что мои часы спешат на 0.3 сек... Можно ли как-то узнавать время точнее, напр., с точностью 5-10 мсек? Например, получая его с сервера брокера? Или более точно установить его в Виндовс? Регион - Ставропольский край (не сам Ставрополь).
Хочется в биржевом стакане видеть объёмы заявок
 
К примеру, в приложении ВТБ Инвестиции для Андроида сделали показ объёмов заявок в биржевом стакане более мелким шрифтом внутри серого прямоугольничка со скруглёнными краями. Для этого в Квике есть свободное место в столбцах, соответственно, "Продажа" и "Покупка". Это бывает нужно, если хочешь отменить или перенести все заявки по данной цене. Сейчас для этого я заглядываю в Андроид приложение.
Мой опыт написания скриптов в формате Дзен-канала, На Дзене завел канал, в котором делюсь своим опытом написания скриптов
 
Я зашёл, подписался и вижу только пустые ссылки по ключевой фразе "код торгового робота", а сами коды никто давать не собирался...
Получение скриптом инфо по OnAllTrade
 
Спасибо за внимание, мне нужно время, чтобы проверить, по всем ли сделкам приходит инфо по OnAllTrade. Посмотрю, что у меня задано в Основные_настройки/Получение_данных/Обезличенные_сделки и в файле конфигурации .wnd.

Скажите, для чего эта информация из основных настроек может дублироваться в файле конфигурации .wnd? Чтобы скрипт получал только часть из того, на что я подписался в основных настройках, чтобы зря не грузить сервер брокера?
Получение скриптом инфо по OnAllTrade
 
Спасибо, я в этом окне ничего не настраивал, но вижу, что там выбрано по максимуму всё, что я выбирал, создавая таблицы обезличенных сделок в разных конфигурационных файлах.
Страницы: Пред. 1 2 3 4 5 6 7 8 9 След.
Наверх