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

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

Страницы: Пред. 1 ... 15 16 17 18 19 20 21 22 23 24 25 След.
QLUA, вопросы начинающих.
 
Цитата
Алексей Орешкин написал:
3. Правильно ли я понимаю что функцию main в роботе могу и не использовать, тогда скрипт выполнится 1 раз и всё, далее он будет завершён?
Да.

Цитата
Алексей Орешкин написал:
А если я без этой функции просто поставлю цикл while что будет тогда, он будет там постоянно крутиться ?
Да, но терминал при этом "зависнет" (интерфейс не будет реагировать на внешние раздражители)
Получить последний стоп-ордер
 
Не совсем понятна задача: требуется среди имеющихся стопов найти последний или при появлении нового стопа (а он и будет на помент появления последним) как-то на это отреагировать?
Если первое - то только так, как вы написали.
Если второе - то просто добавить в скрипт обработчик OnStopOrder
Программы PMN Trade, Список моих программ созданных с 2007-го года.
 
Андрей Латыш, другой вариант того же самого:
https://quik2dde.ru/viewtopic.php?id=80
Взрыв мозга от режима Т+, не могу понять изменения цен в режимах Т0 Т1 Т2
 
Цитата
Татьяна написал:
Использую демо версию...
У брокера?
тогда лучше брокеру этот вопрос задать, он вернее растолкует используемую им схему
Более выгодные цены чем покупка по маркету
 
ответ-то на исходный вопрос прост: просто те цены, что вы видите в стакане - выставлены другим, существенно более быстрым, чем ваш, роботом, который тоже пытается жить внутри спреда и вас всё время обгоняет.
И никогда вы его не обгоните.
Ошибки вычисления с плавающей точкой в LUA., LUA не может правильно посчитать 124.4 - 124.3? - Да ладно?!
 
Есть прекрасная статья - ну кто хочет разобраться, конечно, а не готовый рецепт получить, а потом удивляться, почему он не работает у меня. (ответ: потому что не подходит)

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374

Важно осознать что там вовсе не про дельфи. Всё описанное там не зависит от языка вообще, это особенность представления в двоичном компьютере (а других у нас нет) так называемых "чисел с плавающей точкой".

Для Lua - разумеется тоже подходит с той лишь поправкой, что в том Lua, который у нас есть в рамках QUIK,  у нас в принципе всего один тип числовых переменных, и это - Double.
Конкуренты ведут себя некорректно!!!! QLUA vs MQL5, Мне кажется так не правильно!!! QLUA vs MQL5
 
Цитата
Michael Bulychev написал:
Проводились тесты интерпретатора против JIT-компилятора, а в этом случае результаты вполне очевидны. Можно взять тесты из примера и провести сравнение Lua vs LuaJIT и получить примерно такое же соотношение времени выполнения.
Какой смысл говорить о том, чего нет?
require( 'mylib' ) - Подключение DLL, не правильно работает QLUA, не подключается DLL
 
До кучи, применительно к QUIK
https://quik2dde.ru/viewforum.php?id=14
Коллбэк OnTrade не пришёл в один из скриптов
 
Цитата
_sk_ написал:
Отбой, ошибку нашли.
Уточните, пожалуйста: ошибка была в вашем скрипте Lua или где-то в QUIK?
Инструкция LUA
 
Справедливости ради - на нескольких сайтах уже опубликованы пошаговые "уроки" по написанию роботов. Разной степени заглубляемости.
Можно начать с них. Ищутся легко гуглем
LUA C++
 
Не совсем понятно  какая библиотека вам нужна.
Есть возможность подключать свои С++ библиотеки в Lua.
Это ведь то, что вас интересует?
Ошибка при тестировании Trans2QuikAPI, Ошибка: A call to PInvoke function...............
 
Ну да.
И? в чем остались затруднения? не понятно.
Продублировать функцию копирования окна в контекстные меню
 
На другую вкладку окно перетаскивается так: зажимаем Ctrl, после этого мышью тащим окно за заголовок на нужную вкладку
Исчезновение прерывистых линий
 
как-то картинок-то не видно :(
Не запускается Lua на Quik, Не работает скрипт (сделки на график Квика)
 
Какие-то ошибки пишет?
Ошибка при тестировании Trans2QuikAPI, Ошибка: A call to PInvoke function...............
 
Цитата
Алексей Смирнов написал:
DLLImport не пойдет, потому-что Trans2QuikAPI.dll у меня в Проекте находится.
Это не понял.
В DLLImport  явно же указано место, откуда брать DLL. Исправьте на нужное - вот и всё.
Последняя доступная версия QUIK
 
Апдейт ставится на любую предыдущую версию.
Ошибка при тестировании Trans2QuikAPI, Ошибка: A call to PInvoke function...............
 
Как-то странно, у вас текст ошибки про 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.
 
Вы про Trans2Quik.dll? или про какое-то другое API?
QUIK v.7.1.0.381, Баги
 
Евгений Ершов,
нажимаете F9 и включаете обведённую настройку
QUIK версия 7.1 (вопросы)
 
Цитата
Николай Камынин написал:
сначала мелькает окно цветное
Цитата
Николай Камынин написал:
дергается изображение на двух мониторах.
Цитата
Николай Камынин написал:
все иконки на рабочем столе дрожат.

Я, конечно, извиняюсь, но может есть смысл уточнить что вы принимали по утру?
Таблицы
 
Первым делом спросят версию терминала
Одновременное выставление (исполнение) заявок на разных инструментах
 
Это невозможно, на бирже нет связанных сделок.
std::recursive_mutex и cинхронизация потоков в Lua
 
Собственно исходники ведь доступны.
Где в коде luaV_execute есть lua_lock? покажите

И совсем другое дело функции доступа к "переменным", например:
http://www.lua.org/source/5.1/lapi.c.html#lua_settable

Зачем вы всё время фантазируете, ничего не проверяя, вот что не понятно.
std::recursive_mutex и cинхронизация потоков в Lua
 
Вячеслав,
у вас есть пруф подтверждающий то, что вы сейчас написали, или это ваши фантазии?
Как-то всё очень сомнительно выглядит, особенно вот это
Цитата
Вячеслав написал:
и в этот момент начнёт выполняться основной поток Quik, который захочет вызвать наш callback, то основной поток Quik будет ждать на lua_lock операции
Программа info.exe прекратила взаимодействие с Windows и была закрыта
 
С обновлением QUIK с сервера РАЗРАБОТЧИКА тоже нет совершенно никаких проблем.
А в остальном - не понятно, зачем вы платите деньги такому брокеру, которому на вас откровенно плевать и который не слушает ваше мнение??
std::recursive_mutex и cинхронизация потоков в Lua
 
Цитата
Вячеслав написал:
Предполагаю, что QLua использует отладочные функции debug.sethook для перехвата управления и переключения Lua VM c потока main на поток callback'ов.
В QLua используются реальные разные потоки операционной системы Windows.
Потоки переключает Windows, где реализована вытесняющая мультизадачность. Бесконечные циклы не мешают Windows переключать процессор между исполнением кода разных потоков, никакая Lua VM тут ни при чем.
Что вы еще пытаетесь найти в Lua VM?

И да, код в смысле Lua-программы прерывается в реализованном случае вовсе не обязательно "между операторами Lua". Прерваться код может и "посередине выполнения одного из операторов".
Обновление программы
 
Цитата
sandyman написал:
Ау, техподдержка? Может что-то стоит предпринять в отношении такой безалаберности брокеров?
Вы платите деньги брокеру, но требуете, чтобы другие оказывали на него давление.
Стандартная позиция терпил в нашем государстве. "Царь-батюшка, убери *** в нашем подъезде, без тебя никак".
Упрощение QUIK, Можно ли упростить Квик?
 
А что такое "упрощение"? ну вот конкретно можете нарисовать?
Если сделать конфигурацию квика только с нужными вам графиками/таблицами - это упрощение? или что-то всё равно будет мешать? тогда что именно будет мешать в таком случае?
Задержка данных при обмене с сервером
 
нене, я не предлагаю задумчивое лицо. Это анриал в обсуждаемой ценовой категории.
Я про то, что это минимум цен, от которого можно как-то отталкиваться, выходя с предложением к брокеру.
Уведомление, когда скрипт перестал работать/не запустился
 
пока, наверное, единственный вариант - как-то сигнализировать из самого скрипта "я запустился". Вариантов можно придумать разных (создать файл с датой/временем запуска, например, сразу при старте скрипта).

Вообще, на мой взгляд, идея хорошая как пожелание: сделать явную индикацию, что при старте QUIK не запустился какой-то скрипт, который должен был запуститься автоматически при старте.
Задержка данных при обмене с сервером
 
Некий самый общий ориентир можно почерпнуть здесь
http://arqatech.com/ru/products/quik/rates/
Фаил настроек, Нет окон при загрузке настреок из файла
 
Всегда пожалуйста.
QUIK тем и кайфовый, что его просто можно копировать - и всё будет работать. Без этих идиотских "инсталлирований".
Задержка данных при обмене с сервером
 
Цитата
Сергей Чугунов написал:
терзают другие "смутные сомнения"...
Да нет никаких "смутных сомнений", ёлы-палы.
Ретейловый брокер - это всегда компромисс между стоимостью и качеством. Стоимостью, заметьте, для клиентов, т.е. из вашего кармана.
Хотите иметь невообразимые времена задержки - поступайте как делают взрослые парни: скидываетесь брокеру на отдельный для вас сервер, подключаетесь к этому серверу - и радуетесь!
А что, скинуться на 10 человек/подключений - глядишь, и радость к нам придёт.
Программа info.exe прекратила взаимодействие с Windows и была закрыта
 
Не понятно: вы запустили  - и сразу не работает, ил работало работало - и свалилось?
Задержка данных при обмене с сервером
 
Цитата
Фёдор Сухов написал:
3. ??? (добавьте своего).
Вы предлагаете добавить всех брокеров?
Фаил настроек, Нет окон при загрузке настреок из файла
 
Цитата
briliantoff написал:
А почему-бы в файле настроек не сохранять все настройки QUIKа? Я например использую звуки, уровни, цвета да и других всяких куча, но при переустановке винды или переходе на другой комп все приходится настраивать заново.
Не очень понятно о чем это.
Если вы просто скопируете всё папку с QUIK - то все ваши настройки полностью сохранятся.
Не понятно как вы так переходите на другой комп, что ничего не сохраняется и приходится перенастраивать заново?
Фаил настроек, Нет окон при загрузке настреок из файла
 
Цитата
briliantoff написал:
А почему-бы в файле настроек не сохранять все настройки QUIKа?
Так настройки же ваши и были сохранены. и никуда не делись, ведь так? или нет?
вы не уточнили этот момент.

Но чтобы было что отображать - данные необходимо получить с сервера, иначе что отображать-то.
Обновление программы
 
Цитата
sandyman написал:
который исключает неправильные действия брокеров
Договор у вас с брокером.
И именно брокер по идее решает какой софт вам предоставлять, а какой - нет, по разным соображениям.
QUIK v.7.1.0.381, Баги
 
Цитата
vorobevakatia написал:
в чем может быть проблема ?
Вы подключены к серверу? по другим типам инструментов удаётся выставить заявки?
Если да - то брокер не предоставил вам торговых операций по опционам, вопросы брокеру.
std::recursive_mutex и cинхронизация потоков в Lua
 
Цитата
Вячеслав написал:
Я прав?
Казалось бы, это элементарно проверить.
Но вам нравится фантазировать. Не буду мешать.
Цена заявки не соответствует установленному диапазону
 
Цитата
Старатель написал:
Ограничения устанавливаются брокером в процентах? От какой цены? По классу в целом или по каждой бумаге в отдельности?
Вы точно по адресу вопрос задаёте? ;)
Трендовые линии привязка к одному графику
 
5 графиков для квика - это ни о чём.
Если бы на картинке было 100 инструментов - я бы не предлагал такой вариант.
std::recursive_mutex и cинхронизация потоков в Lua
 
Цитата
Вячеслав написал:
QLua использует 1 мьютекс для разделения выполнения функции main и callback'ов или 2?
Вы задаёте просто удивительные вопросы, ну вот честно.
Ради любопытства, можете сказать, как вы предполагаете использовать 2 мьютекса для синхронизации между потоками? ну вот чисто теоретически?
А если это никак - то о чем вопрос??
std::recursive_mutex и cинхронизация потоков в Lua
 
Цитата
Вячеслав написал:
P.S. Подозреваю, что в QLua просто переопределили lua_lock и lua_unlock, чтобы разрешить многопоточность. Сейчас выясняю, как выполняется синхронизания глобальных переменных в Lua между потоками при переопределённых lua_lock / lua_unlock.
Вы так пишете, как-будто есть другие способы.
Про это уже писалось (на старом форуме, как водится).
Трендовые линии привязка к одному графику
 
disasterovich,
у вас совсем немного инструментов, между которыми вы переключаетесь.

А что если сделать несколько вкладок, на каждой вкладке - график своего инструмента.
Тогда это разные графики, на каждом свои тренды. И переключаться легко и быстро.
Переподключение к серверу: автоматическое или из Lua
 
Научите без библиотек?
std::recursive_mutex и cинхронизация потоков в Lua
 
Цитата
Вячеслав написал:
используется разные структуры lua_State*
Это вот откуда такой вывод?
Цитата
Вячеслав написал:
и сразу ли значение, присвоенное в одном lua_State станет доступно в другом
Конечно сразу. Вы и сами легко это можете проверить, добавляя в колбеке за раз 100 (или тысячу) элементов одном потоке, и тут же вычитывая их в main(). Новые элементы будут видны в main еще до завершения колбека.
std::recursive_mutex и cинхронизация потоков в Lua
 
Цитата
Николай Камынин написал:
т е на какой момент извлеченный в 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
 
Николай, вы очень невнимательны. Исходники лежат рядом, каждый может легко их прочитать и собрать самостоятельно, во избежание.
Ну и, конечно, любопытно, что вы скажете о разных торговых приводах, которые авторы принципиально распространяют только в бинарном виде.
Страницы: Пред. 1 ... 15 16 17 18 19 20 21 22 23 24 25 След.
Наверх