Роман написал: Здравствуйте. Не судите строго, только начинаю изучать трейдинг, и вот никак не могу сообразить фундаментальную вещь. В процессе разбора объемов за день по выбранному инструменту обнаружил, что количество сделок продажи не равно количству покупок. Этот момент не очень понятен, ведь если кто-то купил, значит кто-то продал, не должно быть поровну? Но есть отдельно сделки продажи и отдельно покупки. А кто в таком случае определяет направление сделки, купля это или продажа? Есть какое-то правило?
направление сделки определяется направлением более ранней заявки из тех двух, что участвовали в сделке.
Пасхалочка для Алексея Иванникова:
Основные библиотеки для QLua 5.4.1
Пользователь
Сообщений: Регистрация: 30.01.2015
19.11.2021 15:17:59
Цитата
Александр М написал: На официальном сайте нету версии 5.4.1, есть 5.4.0 и 5.4.2 Возникает вопрос к разработчикам, а где взять набор компиляторов для версии 5.4.1?
Причем этого набора не было изначально, когда только выпустили QUIK с 5.4.1 и я об этом писал.
Имеется в виду вот это:
разве с 5.4.2 возникают проблемы? я как то не заметил их
Пасхалочка для Алексея Иванникова:
Баги QUIK 8.13
Пользователь
Сообщений: Регистрация: 30.01.2015
13.11.2021 21:40:52
Ну раз знаете- дерзайте ...
Пасхалочка для Алексея Иванникова:
Баги QUIK 8.13
Пользователь
Сообщений: Регистрация: 30.01.2015
13.11.2021 16:26:12
Это принципиальная невозможность написать такую функцию, которая бы гарантировала правильность результата.
если вам мало приведенной выше причины, по которой это невозможно, существует ещё много причин, по которым это невозможно. В частности, проверка соединения при помощи isconnected() даёт вам информацию о наличии в данный момент времени соединения с сервером брокера, но ничего не рассказывает о доступности и статусах шлюзах к разным торговым площадкам.
поэтому единственно правильный путь - это предварительные проверки при помощи isconnected(), параметров-статусов инструмента и т.д., чтобы получить приблизительное понимание, можно ли отправлять транзакции по вашему инструменту, после чего попытки торговли с обязательным анализом ответа сервера на вашу транзакцию.
20. Нужна нормальная функция, которая точно ответит на "Торговля разрешена?"
Код
function isTradeAllow ()
return (
isConnected () = = 1 and
not ( Периоды клининга )
)
end
нет такой функции и быть не может.
сейчас торговля разрешена, а пока вы исполняете код, который написали выше, она может быть уже запрещена.
Пасхалочка для Алексея Иванникова:
Техническое задание на разработку скрипта (платно), ТЗ
Пользователь
Сообщений: Регистрация: 30.01.2015
13.11.2021 08:34:51
Здравствуйте
я вам это сделаю, если у нас соответствуют понимания стоимости этой работы.
Необходимо техническое задание, в котором ваша задача расписана более подробно, приведены формулы всех необходимых вам расчетов и при необходимости форматы создаваемых файлов.
телеграм s_mike, skype mikemsk, почта в нике
Пасхалочка для Алексея Иванникова:
Котировки с более точным временем
Пользователь
Сообщений: Регистрация: 30.01.2015
12.11.2021 21:39:41
Цитата
Михаил Филимонов написал: Добрый день! Есть ли в КВИК таблица с ASK, BID и LAST со временем точнее секунды?
попробуцте построить тиковый график по параметрам ask/bid Возможно, там вы найдете более точное время свечей last с более точным временем смотрите в таблице обезличенных сделок
Пасхалочка для Алексея Иванникова:
BUG: SetSelectedRow работает некорректно при использовании пользовательских фильтров или сортировки
Пользователь
Сообщений: Регистрация: 30.01.2015
11.11.2021 17:50:44
Заодно и будет признак "строка отфильтрована", когда ваш ключ не совпадает с номером строки перебора. Не надо ждать столетия, пока рассмотрят и реализуют.
Пасхалочка для Алексея Иванникова:
BUG: SetSelectedRow работает некорректно при использовании пользовательских фильтров или сортировки
написал: Выделяйте строки после поиска по этому ключу
И что вы найдёте? Номинальный номер строки? Я её и так знаю. А толку?
вы идете по строкам сверху вниз и ищете в каждой строке в скрытом столбце нужный вам ключ. как нашли - выделяйте эту строку по номеру строки перебора, не по ключу.
Пасхалочка для Алексея Иванникова:
BUG: SetSelectedRow работает некорректно при использовании пользовательских фильтров или сортировки
написал: Касательно ответа на 2 вопрос. Привести пример, где в Lua-таблице с пользовательскими фильтрами выделяется строка функцией SetSelectedRow(), довольно сложно.
Это был скорее риторический вопрос. Потому что после применения фильтров и/или сортировки к таблице SetSelectedRow() становится бесполезной.
Цитата
написал: можем зарегистрировать пожелание на добавление признака, показывающего, что строка отфильтрована в таблице созданной через CreateWindow()
Мне нужно выделять строки по их номинальному порядковому номеру. Что я буду делать с этим признаком?
Сделайте в таблице собственное скрытое (шириной 0) поле и записывайте в него ключ - ваш исходный номер строки. Выделяйте строки после поиска по этому ключу
Пасхалочка для Алексея Иванникова:
ошибка работы скрипта, ошибка появилась при смене 7 версии на 8
Пользователь
Сообщений: Регистрация: 30.01.2015
02.11.2021 10:39:14
Сомн ительно, что это работало к вас в предыдущей версии. Вызов функции неправилен
io.lines ([filename])
Открывает файл с данным именем в режиме чтения и возвращает функцию-итератор которая при каждом последующем вызове возвращает новую строчку из файла. Т.о., конструкция
-- обработка всех строк файла for line in io.lines(filename) do body end
Пасхалочка для Алексея Иванникова:
QUIK 8.0
Пользователь
Сообщений: Регистрация: 30.01.2015
01.11.2021 12:24:40
Цитата
Руслан написал: Добрый день. Дайте,пожалуйста, ссылочку, на luac.exe,что бы можно было скомпилировать файл для версии lua 5.3.5. На более ранние версии, которые нашел в lua for windows ругается (версия 5.1.4).
Пасхалочка для Алексея Иванникова:
Как в QUIK 9 можно экспортировать список всех инструментов?
Пользователь
Сообщений: Регистрация: 30.01.2015
28.10.2021 21:54:15
Цитата
Иван написал: Нужно выгрузить все инструменты, торгуемые на мосбирже. Примерный формат: код инструмента / название инструмента / класс / код класса / ISIN / CFA / код расчетов / валюта / шаг цены / вместимость лота / ...
Перерыл все таблицы в QUIK, но так и не нашёл
Это можно сделать несложным скриптом на луа
Пасхалочка для Алексея Иванникова:
Вопрос к разработчикам: как в 8-м квике отключить выпадающее меню, при правом клике мишки на элементе таблицы LUA?
Дело в том, что отключить появление контекстного меню на данный момент нельзя. Можем зарегистрировать пожелание на добавление такой возможности, регистрируем ?
регистрировали раза три.
Пасхалочка для Алексея Иванникова:
Вопрос к разработчикам: как в 8-м квике отключить выпадающее меню, при правом клике мишки на элементе таблицы LUA?
Проблему, о которой ведётся речь, воспроизвести не удалось. Поэтому предлагаем обновить терминал до актуальной (9.2.2) версии и проверить, актуальна ли будет проблема. Если она всё-таки сохранится, просьба прислать полный пример кода, на котором она воспроизводится.
Данил, эта проблема тянется с 2013 года, когда в терминале появился луа все таки прежде чем писать "не воспроизводится", следует хоть как то проверить.
Пасхалочка для Алексея Иванникова:
Запись в один файл из разных скриптов.
Пользователь
Сообщений: Регистрация: 30.01.2015
18.10.2021 11:04:02
Lua всегда открывает файлы в разделяемом режиме.
поэтому любые идеи типа открытия в режиме дописывания и прочее не помогут.
правильный путь - это формирование флага. Например, если один скрипт хочет писать, он пробует создать папку-семафор на диске. Если папка создалась удачно, дописывает файл. Если при создании папки была ошибка (папка существует), то надо подождать. По окончании записи нужно закрыть файл и удалить папку.
но лучше использовать механизмы мютексов или что то в этом роде, Но это уже с++.
а ещё лучше пересмотреть логику скриптов, чтобы писать из одного скрипта
Пасхалочка для Алексея Иванникова:
[ Закрыто] Ищу спеца по ЛуаКвик, для долгосрочного сотрудничества по созданию робота и его доработкам или для консультаций и наставничества.
Пользователь
Сообщений: Регистрация: 30.01.2015
15.10.2021 16:13:44
А мне постройте личную яхту без денег, я вам дам потом покататься.
Пасхалочка для Алексея Иванникова:
Проблемы в работе квика, Самопроизвольное закрытие.
Пользователь
Сообщений: Регистрация: 30.01.2015
15.10.2021 16:10:42
Судя по диагностике, падает модуль qlua. Что означает, что какой то ваш скрипт делает какую то каку, которую терминал по переварить не может и рассыпается.
запустите терминал без скриптов , и мои он работает нормально, добавляйте скрипты по одному - найдете тот, где бомба.
Пасхалочка для Алексея Иванникова:
Что нужно сделать перед запуском функции CreateDataSource?
написал: Т.к. Вы не озвучили настройки получения потока данных вашего рабочего места, то для начала прочтите раздел "Особенности получения значений Таблицы текущих торгов" в справке к терминалу (файл qlua.chm). А то может потока данных нет вовсе
Цитата
написал: Т.к. Вы не озвучили настройки получения потока данных вашего рабочего места, то для начала прочтите раздел "Особенности получения значений Таблицы текущих торгов" в справке к терминалу (файл qlua.chm). А то может потока данных нет вовсе.
Поставлена галочка "умное получение данных". Также необходимые инструменты выбраны. И главное поток обезличенных сделок идет в таблице. Но минутные свечи можно получить только с открытым графиком. Это получается только так и можно? Без графика никак?
без графика можно.
как понимаю, вы подписываете ь на регулярный таймфрейм не на тиковый. Тогда скорее всего вы хотите получить данные сразу после подписки, но в терминале их при закрытом графике их ещё нет и требуется время на получение.
Пасхалочка для Алексея Иванникова:
Индикатор Lua
Пользователь
Сообщений: Регистрация: 30.01.2015
06.10.2021 14:39:03
Понятно. Вы вызываете эту функцию не из индикатора, а из скрипта.
проверьте количество передаваемых ей параметров. Что есть offset?
написал: Подскажите пожалуйста в индикаторе можно получить значение другого индикатора ? вот по этой функции как то не получается getCandlesByIndex
Техподдержка проясните пожалуйста почему не работает?
я не техподдержка, Но скажу , что индикаторы рассчитываются последовательно друг за другом, порядок расчета не регламентирован, и ваш индикатор может рассчитываться раньше, чем тот, с которого вы хотите получить значения.
решить проблему можно, но через (ухо). Возможно, вам подойдёт готовое решение:
Пасхалочка для Алексея Иванникова:
Очередное, @#$!
Пользователь
Сообщений: Регистрация: 30.01.2015
04.10.2021 18:40:29
Settings={} Settings.Name = "minimal" getInfoParam("VERSION") function Init() return 1 end function OnCalculate(index) return 1 end
[3676] QLUA E:\Quik-Junior\LuaIndicators\1.lua:3: attempt to call a nil value (global 'getInfoParam') Куда дели функцию getInfoParam, жители крайнего Севера?
Пасхалочка для Алексея Иванникова:
Как объявить Двумерный массив с последующим заполнением уже в скрипте?
s_mike@rambler.ru написал: Как привязаться к временным меткам - так время свечей нам доступно... Если я правильно понимаю вопрос.
это я понял.
не понятно ка нарисовать линию: QLua
Код
line_id_1 = line(Point(x1,y1), Point(x2,y2)); // как это сделать
Вы про низкоуровневое рисование по пикселам? В отличие от современных терминалов и программ технализа наш бронтозавр не предоставляет средств низкоуровневого рисования. Можно самому извращаться с winapi, это тупиковая история.
Единственные координаты, что мы имеем - это время и цена без возможности пересчеты в актуальные пикселы окна. Лет N назад, где N примерно равно 10, эта тема обсуждалась, помнится разработчик меня даже просил прислать список средств рисования mt5 и Amibrooker (гугл с яндексом в арке под запретом?) но результат мы знаем.
s_mike@rambler.ru написал: Вот такой вариант. Но не в таблицу выводит, а рисует на графике.
s_mike@rambler.ru, как вы рисуете прямоугольники на графике через qlua? Как привязаться к временным меткам (например, от свечи С1 до свечи С2) или работаете через пиксели?
метки. Других инструментов нам qlua не предоставляет.
Как привязаться к временным меткам - так время свечей нам доступно... Если я правильно понимаю вопрос.
Пасхалочка для Алексея Иванникова:
Как получить значение из файла txt
Пользователь
Сообщений: Регистрация: 30.01.2015
10.09.2021 19:01:59
я бы вам вместо того, чтобы читать и разбирать текстовый файл предложил бы вариант записывать данные в файл сразу в формате языка lua и потом читать их сразу в lua таблицу. Конечно, если есть возможность изменить формат сохраняемого файла.
но можно, конечно, читать ваш файл построчно, как делаете вы и разбирать каждую строку например функцией. Этот вариант похуже на мой взгляд
Пасхалочка для Алексея Иванникова:
Текущая цена из дневной свечки
Пользователь
Сообщений: Регистрация: 30.01.2015
04.09.2021 13:52:06
Цитата
Dr Wed написал: Всем доброго дня Можно ли из дневной свечи получить текущую цену инструмента? Какую цену даст функция ds:C(<свечка текущего еще незакрытого дня>)?
написал: Похоже что луа хендл не закрывает по fclose, а ставит флажок.
Файл закрывается так (луа 5.3)
Код
static int aux_close (lua_State * L) {
LStream * p = tolstream(L);
volatile lua_CFunction cf = p - > closef;
p - > closef = NULL; / * mark stream as closed * /
return ( * cf)(L); / * close it * /
}
static int f_close (lua_State * L) {
tofile(L); / * make sure argument is an open stream * /
return aux_close(L);
}
При открытии файла closef устанавливается на функцию
Код
static int io_fclose (lua_State * L) {
LStream * p = tolstream(L);
int res = fclose(p - > f);
return luaL_fileresult(L, (res = = 0 ), NULL);
}
Так что закрывает как положено. Другое дело, если явно не закрыть, тогда эта функция отработает только при сборке объекта файла, т.е. когда рак на горе свистнет.
Я пробовал вставлять до os.remove collectgarbage("collect") - рез
написал: хэндл файла наследуется запускаемым процессом и удерживается открытым до его завершения
Похоже, так и есть, запускаемый процесс удерживает все открытые (на момент его запуска) файлы до своего завершения.
легко проверить.
сделайте между запуском oos.execute и os. remove паузу, достаточную чтобы руками закрыть созданное окно шелла
Пасхалочка для Алексея Иванникова:
Permission denied при удалении файла
Пользователь
Сообщений: Регистрация: 30.01.2015
31.08.2021 20:59:54
Что характерно, на standalone lua то же самое и без os.execute то же самое.
Похоже что луа хендл не закрывает по fclose, а ставит флажок. Она не по fopen и fclose работает.
Пасхалочка для Алексея Иванникова:
Подскажите как отправлять инфу из QUIK в телеграм?
Пользователь
Сообщений: Регистрация: 30.01.2015
28.08.2021 16:12:46
Еще один вариант, самый простой на мой взгляд. .
Пасхалочка для Алексея Иванникова:
Перемещение заявки 2 транзакциями
Пользователь
Сообщений: Регистрация: 30.01.2015
25.08.2021 00:14:47
Сделать снятие на бирже двух заявок "мгновенно" не может никто. Ни скрипт, ни сервер, ни даже биржа.
даже на срочном рынке, где транзакция move_orders исполняется по одному приказу, снятие заявок происходит последовательно. При этом возможны ситуации, когда одна заявка будет снята, а вторая не будет, а будет уже исполнена или частично исполнена.
Пасхалочка для Алексея Иванникова:
Поиск инструмента по названию
Пользователь
Сообщений: Регистрация: 30.01.2015
24.08.2021 15:52:00
Access violation - это проблема внешней библиотеки или неправильная работа с потоками qlua. Других вариантов не вилится
Пасхалочка для Алексея Иванникова:
Поиск инструмента по названию
Пользователь
Сообщений: Регистрация: 30.01.2015
24.08.2021 15:26:05
Цитата
Виталий написал: autolib.CheckAssetName(row.short_name)
Вероятнее всего проблема там
Пасхалочка для Алексея Иванникова:
Ошибка без указания строки в коде
Пользователь
Сообщений: Регистрация: 30.01.2015
23.08.2021 14:22:25
У вас, наверное, код скомпилирован с удалением отладочной информации?
Пасхалочка для Алексея Иванникова:
Метки
Пользователь
Сообщений: Регистрация: 30.01.2015
20.08.2021 17:30:11
Если вы хотите установить "невидимую" метку, просто не указывайте image_path. И потом посредством setlabel делайте с ней все что необходимо.
Если image_path указан, он должен быть обработан. Либо метка нарисована, либо должна возникнуть ошибка исполнения.
Пасхалочка для Алексея Иванникова:
Ошибка из КВИКА, Не указан тип транзакции
Пользователь
Сообщений: Регистрация: 30.01.2015
20.08.2021 11:50:47
CLIENT_CODE= 1
Вряд ли у вас такой код клиента
Пасхалочка для Алексея Иванникова:
Ошибки в Qlua - двойной прогон всех индексов через функцию OnCalculate(), При добавлении индикатора на график происходит двойной прогон всех индексов через функцию OnCalculate()
Пользователь
Сообщений: Регистрация: 30.01.2015
18.08.2021 19:44:56
Это не ошибка,это фиииииича.
просили много раз об этом, но разработчикам , видимо, так удобно.
Пасхалочка для Алексея Иванникова:
Ошибки в Qlua, Найденные ошибки в qlua
Пользователь
Сообщений: Регистрация: 30.01.2015
18.08.2021 19:42:16
Год 1600 - это признак того, что терминал вам возвращает вместо времени 0.
что, в свою очередь, говорит о том, что вы хотите получить время несуществующей свечи или что то в этом роде.
ищите ошибку, она у вас.
Пасхалочка для Алексея Иванникова:
CreateDataSource возвращает неверные данные
Пользователь
Сообщений: Регистрация: 30.01.2015
18.08.2021 18:55:08
Попробуйте вручную построить тиковый график по этому инструменту. Если не получится - звоните брокеру
написал: Когда задают вопрос про версию, это означает, что никто даже и не пошевелился, чтобы найти ошибку. Она проявляется на любой версии ккогда спрашивают код скрипта, это означает, что никто даже не почесался прочитать первые три сообщения ветки когда спрашивают скриншот окна сообщения, это значит, что никто даже не пробовал поискать в текстах терминала слово "видеопамяти " Даниил, вам спихнули эту проблему, потому что все равно никто не решить не может?
Здесь вы совершенно неправы. То, что кому-то кажется "да у меня в каждом скрипте так" на самом деле означает лишь то, что человек этот каким-то определённым образом пишет скрипты. Но делает всегда именно так, поэтому "в каждом скрипте...". Но, важно! не в "любом", а в "каждом моём". Далее. Если кто-то воспроизведёт примерно подходящую по описанию ошибку - скорее всего это будет совсем другая ошибка, а не та, с которой сталкиваетесь вы. Т.е. вашу проблему - уж точно не починят. Именно поэтому спрашивают всегда конкретный проблемный код. А не обще-абстрактные рассуждения. На любом абсолютно программистском форуме.
Если есть конкретный проблемный код - с ним всегда здесь разбираются. Как минимум убеждаются, что с ним в самом деле есть проблема. Это видно по сообщениям поддержки. Другое дело, что не всегда, скажем мягко, в итоге проблему чинят - это да, это так. Но не приводить проблемный код - это вообще крайне странный подход к общению. Или вам просто эмоции слить?
эмоции - да, конечно. Полдня бьешься над проблемой и после мучений оказывается, что беда не у тебя, а в терминале. И об этой проблеме ты уже когда то сообщал.
писать тестовые скрипты можно, я писал и отсылал. В результате "исправим в очередной версии". Ну а далее смотри первый абзац. Пусть сами пишут свои тесты, я написал как.
в конце концов, они могут видеть последовательность qlua обращений к терминалу и видеть результат в работе скрипта, ссылку на который я дал.