Алексей Орешкин написал: 3. Правильно ли я понимаю что функцию main в роботе могу и не использовать, тогда скрипт выполнится 1 раз и всё, далее он будет завершён?
Цитата
Алексей Орешкин написал: А если я без этой функции просто поставлю цикл while что будет тогда, он будет там постоянно крутиться ?
Да, но терминал при этом "зависнет" (интерфейс не будет реагировать на внешние раздражители)
Получить последний стоп-ордер
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
30.07.2016 06:20:02
Не совсем понятна задача: требуется среди имеющихся стопов найти последний или при появлении нового стопа (а он и будет на помент появления последним) как-то на это отреагировать? Если первое - то только так, как вы написали. Если второе - то просто добавить в скрипт обработчик OnStopOrder
Программы PMN Trade, Список моих программ созданных с 2007-го года.
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
23.06.2016 20:51:20
Андрей Латыш, другой вариант того же самого:
Взрыв мозга от режима Т+, не могу понять изменения цен в режимах Т0 Т1 Т2
У брокера? тогда лучше брокеру этот вопрос задать, он вернее растолкует используемую им схему
Более выгодные цены чем покупка по маркету
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
22.06.2016 23:10:43
ответ-то на исходный вопрос прост: просто те цены, что вы видите в стакане - выставлены другим, существенно более быстрым, чем ваш, роботом, который тоже пытается жить внутри спреда и вас всё время обгоняет. И никогда вы его не обгоните.
Ошибки вычисления с плавающей точкой в LUA., LUA не может правильно посчитать 124.4 - 124.3? - Да ладно?!
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
22.06.2016 22:47:31
Есть прекрасная статья - ну кто хочет разобраться, конечно, а не готовый рецепт получить, а потом удивляться, почему он не работает у меня. (ответ: потому что не подходит)
Важно осознать что там вовсе не про дельфи. Всё описанное там не зависит от языка вообще, это особенность представления в двоичном компьютере (а других у нас нет) так называемых "чисел с плавающей точкой".
Для Lua - разумеется тоже подходит с той лишь поправкой, что в том Lua, который у нас есть в рамках QUIK, у нас в принципе всего один тип числовых переменных, и это - Double.
Конкуренты ведут себя некорректно!!!! QLUA vs MQL5, Мне кажется так не правильно!!! QLUA vs MQL5
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
02.06.2016 21:23:04
Цитата
Michael Bulychev написал: Проводились тесты интерпретатора против JIT-компилятора, а в этом случае результаты вполне очевидны. Можно взять тесты из примера и провести сравнение Lua vs LuaJIT и получить примерно такое же соотношение времени выполнения.
Какой смысл говорить о том, чего нет?
require( 'mylib' ) - Подключение DLL, не правильно работает QLUA, не подключается DLL
Уточните, пожалуйста: ошибка была в вашем скрипте Lua или где-то в QUIK?
Инструкция LUA
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
22.03.2016 19:50:48
Справедливости ради - на нескольких сайтах уже опубликованы пошаговые "уроки" по написанию роботов. Разной степени заглубляемости. Можно начать с них. Ищутся легко гуглем
LUA C++
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
20.03.2016 18:47:32
Не совсем понятно какая библиотека вам нужна. . Это ведь то, что вас интересует?
Ошибка при тестировании Trans2QuikAPI, Ошибка: A call to PInvoke function...............
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
18.03.2016 00:07:48
Ну да. И? в чем остались затруднения? не понятно.
Продублировать функцию копирования окна в контекстные меню
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
18.03.2016 00:04:37
На другую вкладку окно перетаскивается так: зажимаем Ctrl, после этого мышью тащим окно за заголовок на нужную вкладку
Исчезновение прерывистых линий
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
17.03.2016 23:59:21
как-то картинок-то не видно :(
Не запускается Lua на Quik, Не работает скрипт (сделки на график Квика)
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
17.03.2016 07:04:42
Какие-то ошибки пишет?
Ошибка при тестировании Trans2QuikAPI, Ошибка: A call to PInvoke function...............
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
17.03.2016 07:04:00
Цитата
Алексей Смирнов написал: DLLImport не пойдет, потому-что Trans2QuikAPI.dll у меня в Проекте находится.
Это не понял. В DLLImport явно же указано место, откуда брать DLL. Исправьте на нужное - вот и всё.
Последняя доступная версия QUIK
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
16.03.2016 21:43:38
Апдейт ставится на любую предыдущую версию.
Ошибка при тестировании Trans2QuikAPI, Ошибка: A call to PInvoke function...............
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
16.03.2016 21:41:14
Как-то странно, у вас текст ошибки про TRANS2QUIK_IS_QUIK_CONNECTED, а в тексте программы её вообще нет. Где-то обман видится мне.
Вероятнее всего не хватает уточнения про CallingConvention. Попробуйте заменить описание функций вот на такое примерно, пример для TRANS2QUIK_CONNECT (не проверял, надеюсь мне удалось правильно соорудить синтаксис для VB):
<DllImport("D:\...Проект\Resources\TRANS2QUIK.dll", CallingConvention:=CallingConvention.StdCall, EntryPoint:="_TRANS2QUIK_CONNECT@16")> _ Public Shared Function TRANS2QUIK_CONNECT( ByVal lpstConnectionParamsString As String, _ ByRef pnExtendedErrorCode As Long, _ ByVal lpstrErrorMessage As String, ByVal dwErrorMessageSize As Long) As Long End Function
Кстати, если я не ошибаюсь, на .NET можно в один проект включать и VB.NET файлы, и C# Если так - то просто возьмите готовый заголовочный файл библиотеки от arqa (есть в архиве), там есть пример на C#, подключите его, там есть готовые правильные определения интерфейса. Ну разве что выкинуть из него что-то, что лишнее, т.к. там, к сожалению, не чистый заголовочник.
Запрос API.
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
15.03.2016 07:23:10
Вы про Trans2Quik.dll? или про какое-то другое API?
QUIK v.7.1.0.381, Баги
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
15.03.2016 07:22:08
Евгений Ершов, нажимаете F9 и включаете обведённую настройку
Николай Камынин написал: дергается изображение на двух мониторах.
Цитата
Николай Камынин написал: все иконки на рабочем столе дрожат.
Я, конечно, извиняюсь, но может есть смысл уточнить что вы принимали по утру?
Таблицы
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
13.03.2016 09:06:44
Первым делом спросят версию терминала
Одновременное выставление (исполнение) заявок на разных инструментах
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
11.03.2016 20:10:22
Это невозможно, на бирже нет связанных сделок.
std::recursive_mutex и cинхронизация потоков в Lua
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
10.03.2016 21:31:23
Собственно исходники ведь доступны. Где в коде luaV_execute есть lua_lock? покажите
И совсем другое дело функции доступа к "переменным", например:
Зачем вы всё время фантазируете, ничего не проверяя, вот что не понятно.
std::recursive_mutex и cинхронизация потоков в Lua
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
10.03.2016 21:19:17
Вячеслав, у вас есть пруф подтверждающий то, что вы сейчас написали, или это ваши фантазии? Как-то всё очень сомнительно выглядит, особенно вот это
Цитата
Вячеслав написал: и в этот момент начнёт выполняться основной поток Quik, который захочет вызвать наш callback, то основной поток Quik будет ждать на lua_lock операции
Программа info.exe прекратила взаимодействие с Windows и была закрыта
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
10.03.2016 21:12:53
С обновлением QUIK с сервера РАЗРАБОТЧИКА . А в остальном - не понятно, зачем вы платите деньги такому брокеру, которому на вас откровенно плевать и который не слушает ваше мнение??
std::recursive_mutex и cинхронизация потоков в Lua
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
10.03.2016 06:18:03
Цитата
Вячеслав написал: Предполагаю, что QLua использует отладочные функции debug.sethook для перехвата управления и переключения Lua VM c потока main на поток callback'ов.
В QLua используются реальные разные потоки операционной системы Windows. Потоки переключает Windows, где реализована вытесняющая мультизадачность. Бесконечные циклы не мешают Windows переключать процессор между исполнением кода разных потоков, никакая Lua VM тут ни при чем. Что вы еще пытаетесь найти в Lua VM?
И да, код в смысле Lua-программы прерывается в реализованном случае вовсе не обязательно "между операторами Lua". Прерваться код может и "посередине выполнения одного из операторов".
Обновление программы
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
10.03.2016 06:11:50
Цитата
sandyman написал: Ау, техподдержка? Может что-то стоит предпринять в отношении такой безалаберности брокеров?
Вы платите деньги брокеру, но требуете, чтобы другие оказывали на него давление. Стандартная позиция терпил в нашем государстве. "Царь-батюшка, убери *** в нашем подъезде, без тебя никак".
Упрощение QUIK, Можно ли упростить Квик?
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
08.03.2016 10:01:16
А что такое "упрощение"? ну вот конкретно можете нарисовать? Если сделать конфигурацию квика только с нужными вам графиками/таблицами - это упрощение? или что-то всё равно будет мешать? тогда что именно будет мешать в таком случае?
Задержка данных при обмене с сервером
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
08.03.2016 09:57:27
нене, я не предлагаю задумчивое лицо. Это анриал в обсуждаемой ценовой категории. Я про то, что это минимум цен, от которого можно как-то отталкиваться, выходя с предложением к брокеру.
Уведомление, когда скрипт перестал работать/не запустился
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
08.03.2016 09:55:50
пока, наверное, единственный вариант - как-то сигнализировать из самого скрипта "я запустился". Вариантов можно придумать разных (создать файл с датой/временем запуска, например, сразу при старте скрипта).
Вообще, на мой взгляд, идея хорошая как пожелание: сделать явную индикацию, что при старте QUIK не запустился какой-то скрипт, который должен был запуститься автоматически при старте.
Задержка данных при обмене с сервером
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
07.03.2016 20:45:44
Некий самый общий ориентир можно почерпнуть здесь
Фаил настроек, Нет окон при загрузке настреок из файла
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
07.03.2016 08:44:24
Всегда пожалуйста. QUIK тем и кайфовый, что его просто можно копировать - и всё будет работать. Без этих идиотских "инсталлирований".
Задержка данных при обмене с сервером
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
07.03.2016 08:42:18
Цитата
Сергей Чугунов написал: терзают другие "смутные сомнения"...
Да нет никаких "смутных сомнений", ёлы-палы. Ретейловый брокер - это всегда компромисс между стоимостью и качеством. Стоимостью, заметьте, для клиентов, т.е. из вашего кармана. Хотите иметь невообразимые времена задержки - поступайте как делают взрослые парни: скидываетесь брокеру на отдельный для вас сервер, подключаетесь к этому серверу - и радуетесь! А что, скинуться на 10 человек/подключений - глядишь, и радость к нам придёт.
Программа info.exe прекратила взаимодействие с Windows и была закрыта
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
06.03.2016 13:06:54
Не понятно: вы запустили - и сразу не работает, ил работало работало - и свалилось?
Фаил настроек, Нет окон при загрузке настреок из файла
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
06.03.2016 12:52:55
Цитата
briliantoff написал: А почему-бы в файле настроек не сохранять все настройки QUIKа? Я например использую звуки, уровни, цвета да и других всяких куча, но при переустановке винды или переходе на другой комп все приходится настраивать заново.
Не очень понятно о чем это. Если вы просто скопируете всё папку с QUIK - то все ваши настройки полностью сохранятся. Не понятно как вы так переходите на другой комп, что ничего не сохраняется и приходится перенастраивать заново?
Фаил настроек, Нет окон при загрузке настреок из файла
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
03.03.2016 22:22:30
Цитата
briliantoff написал: А почему-бы в файле настроек не сохранять все настройки QUIKа?
Так настройки же ваши и были сохранены. и никуда не делись, ведь так? или нет? вы не уточнили этот момент.
Но чтобы было что отображать - данные необходимо получить с сервера, иначе что отображать-то.
Обновление программы
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
03.03.2016 22:20:00
Цитата
sandyman написал: который исключает неправильные действия брокеров
Договор у вас с брокером. И именно брокер по идее решает какой софт вам предоставлять, а какой - нет, по разным соображениям.
Вы подключены к серверу? по другим типам инструментов удаётся выставить заявки? Если да - то брокер не предоставил вам торговых операций по опционам, вопросы брокеру.
std::recursive_mutex и cинхронизация потоков в Lua
Казалось бы, это элементарно проверить. Но вам нравится фантазировать. Не буду мешать.
Цена заявки не соответствует установленному диапазону
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
29.02.2016 20:22:03
Цитата
Старатель написал: Ограничения устанавливаются брокером в процентах? От какой цены? По классу в целом или по каждой бумаге в отдельности?
Вы точно по адресу вопрос задаёте? ;)
Трендовые линии привязка к одному графику
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
29.02.2016 06:58:55
5 графиков для квика - это ни о чём. Если бы на картинке было 100 инструментов - я бы не предлагал такой вариант.
std::recursive_mutex и cинхронизация потоков в Lua
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
29.02.2016 06:24:10
Цитата
Вячеслав написал: QLua использует 1 мьютекс для разделения выполнения функции main и callback'ов или 2?
Вы задаёте просто удивительные вопросы, ну вот честно. Ради любопытства, можете сказать, как вы предполагаете использовать 2 мьютекса для синхронизации между потоками? ну вот чисто теоретически? А если это никак - то о чем вопрос??
std::recursive_mutex и cинхронизация потоков в Lua
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
29.02.2016 06:20:58
Цитата
Вячеслав написал: P.S. Подозреваю, что в QLua просто переопределили lua_lock и lua_unlock, чтобы разрешить многопоточность. Сейчас выясняю, как выполняется синхронизания глобальных переменных в Lua между потоками при переопределённых lua_lock / lua_unlock.
Вы так пишете, как-будто есть другие способы. Про это уже писалось (на старом форуме, как водится).
Трендовые линии привязка к одному графику
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
29.02.2016 06:16:28
disasterovich, у вас совсем немного инструментов, между которыми вы переключаетесь.
А что если сделать несколько вкладок, на каждой вкладке - график своего инструмента. Тогда это разные графики, на каждом свои тренды. И переключаться легко и быстро.
Переподключение к серверу: автоматическое или из Lua
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
28.02.2016 20:36:18
Научите без библиотек?
std::recursive_mutex и cинхронизация потоков в Lua
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
28.02.2016 20:35:11
Цитата
Вячеслав написал: используется разные структуры lua_State*
Это вот откуда такой вывод?
Цитата
Вячеслав написал: и сразу ли значение, присвоенное в одном lua_State станет доступно в другом
Конечно сразу. Вы и сами легко это можете проверить, добавляя в колбеке за раз 100 (или тысячу) элементов одном потоке, и тут же вычитывая их в main(). Новые элементы будут видны в main еще до завершения колбека.
std::recursive_mutex и cинхронизация потоков в Lua
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
28.02.2016 20:30:52
Цитата
Николай Камынин написал: т е на какой момент извлеченный в main элемент будет первым в таблице, если колбеке есть вставка первого элемента?
Таблица, как известно, в QLua всегда целостна. Не зависимо от многопоточного обращения. Целостна в том смысле, что в любой момент времени количество элементов, вычитываемое через получения размера в таблице гарантированно совпадает с реальным количеством элементов на момент вычитывания значения счётчика.
Потому не очень понятен ваш вопрос. Если на момент обращения элемент в таблице уже размещён - то произойдёт корректное обращение к элементу таблицы, если же элемент еще не размещен - то его и не будет!
Единственное тонкое место, как известно из предыдущих обсуждений, состоит лишь в том, что если в одном потоке у нас есть t[1] = 5 (поток 1) а в другом потоке есть x = t[1] (поток 2) и они происходят "одновременно", то возможны варианты:
а) x = t[1] приведёт к ошибке, т.к. на самом деле в потоке 1 этот код еще вовсе не начал выполняться и элемент еще не добавлен; однако тогда и счётчик нам скажет, что количество элементов еще 0 (если это первый элемент)
б) после выполнения x = t[1] не будет ошибки, но в x окажется nil; это произойдёт в том случае, если в потоке 1 уже успеет добавиться новый элемент в таблицу с индексом 1, однако само значение ему еще не присвоится; (хотелось бы отметить, что само состояние таблицы будет при этом совершенно корректным! т.е. количество элементов в таблице равно 1, это единственный элемент равен nil)
в) в результате выполнения после x = t[1] в x будет значение 5, т.е. к моменту выполнения этого кода в рамках потока 2 в потоке 1 уже успел и новый элемент в таблицу добавиться, и значение ему присвоиться.
Собственно классика многопоточности )
Переподключение к серверу: автоматическое или из Lua
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
28.02.2016 20:17:29
Николай, вы очень невнимательны. Исходники лежат рядом, каждый может легко их прочитать и собрать самостоятельно, во избежание. Ну и, конечно, любопытно, что вы скажете о разных торговых приводах, которые авторы принципиально распространяют только в бинарном виде.