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

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

Страницы: Пред. 1 ... 29 30 31 32 33 34 35 36 37 38 39 ... 41 След.
PostMessage из LUA
 
Михаил Филимонов, Нет, я абсолютно серьёзно. Я и понял "в какой таблице находится, цифирь". Какое дело скрипту до этой таблицы? Я свой скрипт писал вовсе не для того, чтобы он вынюхивал, что там у меня лежит наа счетах, не говоря уже о том, чтобы использовал эти деньги "в своих интересах". Сколько я ему дам - на том пущай и играет. Я могу дать ему действительно все свободные деньги на счёте, могу дать больше (если мне вдруг захочется, чтобы он поигрался с плечом), могу дать меньше (что я обычно и делаю). В любом случае, я тут главный, а не "железяка х..ва"! :smile:  
PostMessage из LUA
 
Михаил Филимонов, Как получить свободные средства????

Занятный вопрос... ЧЬИ средства? Чужие? НИКАК! Если есть такая возможность, то нужно подвешивать за яйца всех разработчиков софта! Свои? Свои не хило бы знать самому! С какой радости скрипт должен "в LUA получить значение, указанное на картинке"? Какое его собачье дело? Скрипт должен знать, сколько ИМЕННО ЕМУ дозволено тратить, а вовсе не всё, что лежит на счёте! И эта цифирь НИКАК не связана с "картинкой"!
Получение списка возможных полей возвращаемых GetParamEx
 
Список возможных идентификаторов параметров, передаваемых в функцию getParamEx()
 
  STATUS                  STRING   Статус
  LOTSIZE                 NUMERIC  Размер лота
  BID                     NUMERIC  Лучшая цена спроса
  BIDDEPTH                NUMERIC  Спрос по лучшей цене
  BIDDEPTHT               NUMERIC  Суммарный спрос
  NUMBIDS                 NUMERIC  Количество заявок на покупку
  OFFER                   NUMERIC  Лучшая цена предложения
  OFFERDEPTH              NUMERIC  Предложение по лучшей цене
  OFFERDEPTHT             NUMERIC  Суммарное предложение
  NUMOFFERS               NUMERIC  Количество заявок на продажу
  OPEN                    NUMERIC  Цена открытия
  HIGH                    NUMERIC  Максимальная цена сделки
  LOW                     NUMERIC  Минимальная цена сделки
  LAST                    NUMERIC  Цена последней сделки
  CHANGE                  NUMERIC  Разница цены последней к предыдущей сессии
  QTY                     NUMERIC  Количество бумаг в последней сделке
  TIME                    STRING   Время последней сделки
  VOLTODAY                NUMERIC  Количество бумаг в обезличенных сделках
  VALTODAY                NUMERIC  Оборот в деньгах
  TRADINGSTATUS           STRING   Состояние сессии
  VALUE                   NUMERIC  Оборот в деньгах последней сделки
  WAPRICE                 NUMERIC  Средневзвешенная цена
  HIGHBID                 NUMERIC  Лучшая цена спроса сегодня
  LOWOFFER                NUMERIC  Лучшая цена предложения сегодня
  NUMTRADES               NUMERIC  Количество сделок за сегодня
  PREVPRICE               NUMERIC  Цена закрытия
  PREVWAPRICE             NUMERIC  Предыдущая оценка
  CLOSEPRICE              NUMERIC  Цена периода закрытия
  LASTCHANGE              NUMERIC  % изменения от закрытия
  PRIMARYDIST             STRING   Размещение
  ACCRUEDINT              NUMERIC  Накопленный купонный доход
  YIELD                   NUMERIC  Доходность последней сделки
  COUPONVALUE             NUMERIC  Размер купона
  YIELDATPREVWAPRICE      NUMERIC  Доходность по предыдущей оценке
  YIELDATWAPRICE          NUMERIC  Доходность по оценке
  PRICEMINUSPREVWAPRICE   NUMERIC  Разница цены последней к предыдущей оценке
  CLOSEYIELD              NUMERIC  Доходность закрытия
  CURRENTVALUE            NUMERIC  Текущее значение индексов Московской Биржи
  LASTVALUE               NUMERIC  Значение индексов Московской Биржи на закрытие предыдущего дня
  LASTTOPREVSTLPRC        NUMERIC  Разница цены последней к предыдущей сессии
  PREVSETTLEPRICE         NUMERIC  Предыдущая расчетная цена
  PRICEMVTLIMIT           NUMERIC  Лимит изменения цены
  PRICEMVTLIMITT1         NUMERIC  Лимит изменения цены T1
  MAXOUTVOLUME            NUMERIC  Лимит объема активных заявок (в контрактах)
  PRICEMAX                NUMERIC  Максимально возможная цена
  PRICEMIN                NUMERIC  Минимально возможная цена
  NEGVALTODAY             NUMERIC  Оборот внесистемных в деньгах
  NEGNUMTRADES            NUMERIC  Количество внесистемных сделок за сегодня
  NUMCONTRACTS            NUMERIC  Количество открытых позиций
  CLOSETIME               STRING   Время закрытия предыдущих торгов (для индексов РТС)
  OPENVAL                 NUMERIC  Значение индекса РТС на момент открытия торгов
  CHNGOPEN                NUMERIC  Изменение текущего индекса РТС по сравнению со значением открытия
  CHNGCLOSE               NUMERIC  Изменение текущего индекса РТС по сравнению со значением закрытия
  BUYDEPO                 NUMERIC  Гарантийное обеспечение продавца
  SELLDEPO                NUMERIC  Гарантийное обеспечение покупателя
  CHANGETIME              STRING   Время последнего изменения
  SELLPROFIT              NUMERIC  Доходность продажи
  BUYPROFIT               NUMERIC  Доходность покупки
  TRADECHANGE             NUMERIC  Разница цены последней к предыдущей сделки (FORTS, ФБ СПБ, СПВБ)
  FACEVALUE               NUMERIC  Номинал (для бумаг СПВБ)
  MARKETPRICE             NUMERIC  Рыночная цена вчера
  MARKETPRICETODAY        NUMERIC  Рыночная цена
  NEXTCOUPON              NUMERIC  Дата выплаты купона
  BUYBACKPRICE            NUMERIC  Цена оферты
  BUYBACKDATE             NUMERIC  Дата оферты
  ISSUESIZE               NUMERIC  Объем обращения
  PREVDATE                NUMERIC  Дата предыдущего торгового дня
  DURATION                NUMERIC  Дюрация
  LOPENPRICE              NUMERIC  Официальная цена открытия
  LCURRENTPRICE           NUMERIC  Официальная текущая цена
  LCLOSEPRICE             NUMERIC  Официальная цена закрытия
  QUOTEBASIS              STRING   Тип цены
  PREVADMITTEDQUOT        NUMERIC  Признаваемая котировка предыдущего дня
  LASTBID                 NUMERIC  Лучшая спрос на момент завершения периода торгов
  LASTOFFER               NUMERIC  Лучшее предложение на момент завершения торгов
  PREVLEGALCLOSEPR        NUMERIC  Цена закрытия предыдущего дня
  COUPONPERIOD            NUMERIC  Длительность купона
  MARKETPRICE2            NUMERIC  Рыночная цена 2
  ADMITTEDQUOTE           NUMERIC  Признаваемая котировка
  BGOP                    NUMERIC  БГО по покрытым позициям
  BGONP                   NUMERIC  БГО по непокрытым позициям
  STRIKE                  NUMERIC  Цена страйк
  STEPPRICET              NUMERIC  Стоимость шага цены
  STEPPRICE               NUMERIC  Стоимость шага цены (для новых контрактов FORTS и RTS Standard)
  SETTLEPRICE             NUMERIC  Расчетная цена
  OPTIONTYPE              STRING   Тип опциона
  OPTIONBASE              STRING   Базовый актив
  VOLATILITY              NUMERIC  Волатильность опциона
  THEORPRICE              NUMERIC  Теоретическая цена
  PERCENTRATE             NUMERIC  Агрегированная ставка
  ISPERCENT               STRING   Тип цены фьючерса
  CLSTATE                 STRING   Статус клиринга
  CLPRICE                 NUMERIC  Котировка последнего клиринга
  STARTTIME               STRING   Начало основной сессии
  ENDTIME                 STRING   Окончание основной сессии
  EVNSTARTTIME            STRING   Начало вечерней сессии
  EVNENDTIME              STRING   Окончание вечерней сессии
  MONSTARTTIME            STRING   Начало утренней сессии
  MONENDTIME              STRING   Окончание утренней сессии
  CURSTEPPRICE            STRING   Валюта шага цены
  REALVMPRICE             NUMERIC  Текущая рыночная котировка
  MARG                    STRING   Маржируемый
  EXPDATE                 NUMERIC  Дата исполнения инструмента
  CROSSRATE               NUMERIC  Курс
  BASEPRICE               NUMERIC  Базовый курс
  HIGHVAL                 NUMERIC  Максимальное значение (RTSIND)
  LOWVAL                  NUMERIC  Минимальное значение (RTSIND)
  ICHANGE                 NUMERIC  Изменение (RTSIND)
  IOPEN                   NUMERIC  Значение на момент открытия (RTSIND)
  PCHANGE                 NUMERIC  Процент изменения (RTSIND)
  OPENPERIODPRICE         NUMERIC  Цена предторгового периода
  MIN_CURR_LAST           NUMERIC  Минимальная текущая цена
  SETTLECODE              STRING   Код расчетов по умолчанию
  STEPPRICECL             DOUBLE   Стоимость шага цены для клиринга
  STEPPRICEPRCL           DOUBLE   Стоимость шага цены для промклиринга
  MIN_CURR_LAST_TI        STRING   Время изменения минимальной текущей цены
  PREVLOTSIZE             DOUBLE   Предыдущее значение размера лота
  LOTSIZECHANGEDAT        DOUBLE   Дата последнего изменения размера лота
  CLOSING_AUCTION_PRICE   NUMERIC  Цена послеторгового аукциона
  CLOSING_AUCTION_VOLUME  NUMERIC  Количество в сделках послеторгового аукциона
  LONGNAME                STRING   Полное название бумаги
  SHORTNAME               STRING   Краткое название бумаги
  CODE                    STRING   Код бумаги
  CLASSNAME               STRING   Название класса
  CLASS_CODE              STRING   Код класса
  TRADE_DATE_CODE         DOUBLE   Дата торгов
  MAT_DATE                DOUBLE   Дата погашения
  DAYS_TO_MAT_DATE        DOUBLE   Число дней до погашения
  SEC_FACE_VALUE          DOUBLE   Номинал бумаги
  SEC_FACE_UNIT           STRING   Валюта номинала
  SEC_SCALE               DOUBLE   Точность цены
  SEC_PRICE_STEP          DOUBLE   Минимальный шаг цены
  SECTYPE                 STRING   Тип инструмента

https://quikluacsharp.ru/quik-qlua/poluchenie-dannyh-iz-tablits-quik-v-qlua-lua/
Отладка QUIK 8.12
 
Интересно, сколько веток на форум под названием "Программирование на языке Lua" посвящены именно программированию на языке Lua? Штук 10 наберётся? Отладка QUIK 8.11, Отладка QUIK 8.12, Отладка QUIK 1234.5678... Программисты обеспечены работой до конца времён: ронять терминал и восстанавливать его взад. :smile:  
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
TGB, Дык в то время на планете Земля ещё водились программисты!  :wink:  А нынешний козёл, который за полвека никак не может нормальную операционку написать, так до сих пор и дрочит своими "версиями"! Именно поэтому он и стал самым богатым человеком в мире.
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
TGB, Да я во всех темах пишу, которые меня как-то заинтересовали. Но вот специализированную ОС под задачи торговли - такого я ещё не видывал ни разу за всю свою (не очень-то и короткую) жизнь.
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
TGB, АХХХРЕНЕТЬ!

1. Так Ваш скрипт сам ничего не умеет? У Вас парсятся (!!!) какие-то там "сайты с аналитикой"? И Вы ещё там ловите какие-то сраные миллисекунды?!
2. Мой скрипт ТОЖЕ "на основе базовой (выбранной) стратегии автоматически выставляет заявки и отслеживает сделки" - для этого ему вполне достаточно голого Lua. :smile:
3. О, Господи! У Вас даже стратегии нет? У моего так ГИБКАЯ стратегия, алгоритм меняет поведение в зависимости от поведения рынка здесь и сейчас (причём как рынка вообще, так и поведение по каждому конкретному тикеру в частности), от настроек, заданных юзером (именно они и меняются в диалоге при необходимости) и торговлю ведёт именно по ней, а не по каким-то там "альтернативным стратегиям", причём торговля ведётся именно реальная - за каким хреном нам виртуальная торговля? К тому же, по закону Мэрфи, как только "происходит переход на более прибыльную стратегию", немедленно становится эффективной та самая стратегия, с которой Вы только что ушли. :smile:  
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
TGB, О! За это ЖИРНЫЙ плюс! Так КАКИЕ возможности для торговли она предоставила лично Вам?
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
TGB, Нет, кто НЕ является, я как раз неплохо себе представляю, а вот кто ЯВЛЯЕТСЯ? ЮЗЕРЫ! АУ!!! ОТЗОВИСЬ КТО-НИБУДЬ! :smile:  
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Незнайка,  Продукт, написанный для себя резко отличается от продукта, написанного для других. По крайней мере, должен отличаться, как минимум, на порядок более мощной отладкой и наличием развёрнутой документации. Код же вообще может не поставляться никому и никогда - интеллектуальная собственность, ноу-хау и прочая хрень.
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
TGB, Ответ, может, и достойный, но не на мой вопрос: кому В ПРИНЦИПЕ могут пригодиться "реализованные автором средства, которых нет изначально в qlua"? НА КОЙ они хоть кому-нибудь нужны? ЧТО это может кому-то дать в самом идеальном случае, помимо головной боли от потенциальных новых глюков? Должно же быть какое-то представление о целевой аудитории! У меня лично фантазии не хватает.
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
TGB, И я много раз писал: язык - дерьмо, Квик - набор глюков, не исчезающих, а скорее пополняющихся от версии к версии, но АБСОЛЮТНО ВСЮ требуемую юзеру функциональность "на этом на всём" написать МОЖНО! И любые примочки доморощенных "сторонних исполнителей" - библиотеки, внешние модули, не говоря уже про "специализированную ОС" - только добавляют глюков в этот винегрет. Организация диалога - в миллион раз более сложная штука, чем вся эта несчастная организация торговли с потрохами! Ну какой может быть диалог при торговле, ну какой? Что там вообще юзеру делать? Какие там могут быть "собственные сложные команды, задаваемые в командной строке формы диалога"? Скрипт может быть написан вообще без диалога! Утром включил, вечером выключил. Или даже зимой включил, летом выключил! Я как-то раз даже склепал такую версию своего скрипта, за 5 минут (ломать - не строить), в результате объём когда полегчал вдвое, скрипт заработал с первой же попытки. Только на него скучно смотреть - основная версия гораздо более информативна, можно развлечься самостоятельной торговлей с её помощью. Да и то это не диалог, а всего лишь индикация. Самим же диалогом я пользуюсь вообще не каждый день. Возможно, даже не каждую неделю. И у меня просто фантазии не хватает, что же ещё туда можно впендюрить такое, что бы хоть когда-нибудь понадобилось пользователю.
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
TGB, Ну да, в моём скрипте нужен диалог. И он прекрасно реализован с помощью парочки lua-таблиц: одна основная, другая - контекстное меню, всплывающее по клику на строчку первой. И там реализованы абсолютно все возможности, которые мне требуются. Я даже и не знаю, что ещё пожелать!

Я много написал диалоговых программ в своей жизни, и я утверждаю, что ЛЮБОЙ диалог, основанный НЕ на событиях будет убогим по функциональным возможностям. Вы тут описали некое средство, как рисовать картинки - и только. А в диалоге (НОРМАЛЬНОМ диалоге) должны быть и горячие клавиши, и контекстно-зависимые реакции (хелп или локальные меню блоков), то бишь не только примитивно-деревянная организация "подменю", и неоднородные, редактируемые, настраиваемые, горизонтальные, вертикальные, трёхмерные меню и прочая, и прочая, и прочая. НА КОЙ нужны эти Ваши "весёлые картинки"?
PostMessage из LUA
 
Михаил Филимонов, Почитал форум, попробовал на зуб язык, написал скрипт, реализовал [почти] всё что хотел, Практически никаких претензий не имею ни к Квику, ни к Lua. А вот "кастрированные API" сразу послал НА, ни секунды не задумываясь. Так, мож, "дело было не в бобине"?  :wink:  
неужели OnParam самый быстрый?
 
Nikolay, КАКАЯ "ситуация бывает редко"? У меня цена ВСЕГДА определяется ТОЛЬКО опросом и ТОЛЬКО по LAST. И цена у меня всегда "из настоящего". И все сделки я делаю ТОЛЬКО по ней. И нет проблем!
неужели OnParam самый быстрый?
 
Nikolay, А я опрашиваю эту цену раз в секунду, и насрать мне на все коллбеки! И (может быть, именно поэтому) цена у меня всегда прямая.  :smile:  
неужели OnParam самый быстрый?
 
Охота вам фигнёй маяться? Имеем:
1. Ваш Квик и ваш брокер справляются с работой вполне удовлетворительно - в противном случае вы бы не работали с этим брокером и/или с этим софтом.
2. А раз так - какого хрена вы пытаетесь всё время что-то там контролировать? Заняться больше нечем?
3. Цена последней сделки в Квике есть ВСЕГДА - даже если отрублена связь. Так ПОВЕРЬТЕ ему, блин, считайте эти данные априори актуальными и достоверными, не занимайтесь хернёй! Я вот вообще за все эти месяцы моей работы с Lua НИ РАЗУ не выводил время. ВААПЩЕ НИ РАЗУ! Есть LAST - какого рожна вам ещё надобно? И никаких коллбеков не использую - тупо считываю последнюю цену ОПРОСОМ! Её обновление - проблемы Квика и брокера, а не мои - смотри пункт первый.
4. Я собираюсь (пока не реализовано из-за идиотской кучи прерываний на одно событие) снимать заявки, если они не срабатывают в течение 5 минут - для этого мне ТОЖЕ не нужны никакие часы сервера или клиента - я и сам в состоянии это посчитать.
5. OnParam не использую и даже не знаю, что это такое. И знать не хочу!
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Nikolay, А всё не так!(с)  :smile:

О существовании lup я узнал только из этой ветки. Прошёл по ссылке и сразу напоролся на:
Проблемы начинаются при показе модальных окон и popup-меню. Пока их не закроешь, поток main дальше не выполняется (видно по необновляющемуся заголовку окна и прерыванию записи в файл log.txt).

Следовательно, нужно выбросить нафиг эту библиотеку и написать диалог на чистом Lua: поток main спокойно выполняется, заголовок окна обновляются, запись в файл log.txt ведётся, и пилювать скрипту на все эти "модальные окна". Не первый уж месяц работаю с этими контекстными "всплывающими" меню, реализованные как Lua-таблицы - ни единого нарекания!
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
TGB, Мой робот простой, ибо задача организации торговли достаточно примитивна. Именно поэтому я и создал его в виде обычного QLua-скрипта. НИКАКИХ дополнительных возможностей никакая OS_Quesha мне предоставить не может.
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
TGB, Дык в самом начале написано, чёрным по белому: "Программа представляет собой специализированную операционную систему реального времени, работающую в среде программного комплекса QUIK". То есть она предназначена именно для сраной прикладной задачи организации торговли ценными бумагами в QUIK. У меня сейчас аж две такие задачи крутятся на этом компе.

НА КОЙ, простите, мне эту хрень устанавливать у себя? У меня торговля прекрасно организована - зачем мне её гробить? Зачем искать на свою задницу приключений? Какое мне дело до того, что она "без перезапуска работала месяцами"? КАК ИМЕННО она работала? Квик, вон, тоже работает месяцами, а глюков в нём просто НЕМЕРЯНО!

Ага, в восторге! В полнейшем! :smile:  
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Читаю и сразу комментирую.

Программа реализует в скриптовом языке программирования QLua параллелизм выполнения его функций, обеспечивая использование многопроцессорности вычислительных систем.
Здесь и одному процессору нечего делать - тем более, что основной язык вообще интерпретируемый.

Но вместо sleep используется API-функция OS_Quesha ожидания либо истечения интервала времени (паузы циклической функции), либо появления данных во входных очередях таких функций.
Что ещё за "либо"? Sleep и есть функция ожидания. А появление чего-то там в очередях иногда (очень редко) есть основание для передачи управления по прерыванию - те самые коллбеки, и они никого отношения не имеют к циклу в main. По-нормальному, как раз main должна бы входить в режим "вечного" ожидания, если сделать коллбек и по таймеру, и получать управление взад только по OnStop чего она, кстати, и не получает вообще (точнее, получение управления не гарантировано), так что приходится выполнять завершающие действия прямо в OnStop.

Взаимодействие циклических функций между собой после запуска на выполнение в потоках, сводится к чтению своих очередей и записи своих данных в чужие очереди.
То есть на обслуживании данных вне очереди поставлен большой и жирный крест? Похвально!

Дополнительно, предоставляются средства синхронизации, которые могут потребоваться при использовании модифицируемых общих данных потоков, но, по возможности, этого лучше избегать.
СТОЯТЬ! НЕ ДЫШАТЬ! НИЧЕГО НЕ МОДИФИЦИРОВАТЬ! ОПЕРАЦИОНКА РАБОТАЕТ! Подобная ситуация была гениально описана много лет назад:
Контpоллеp пpеpываний - обpаботчику пpеpываний:
Тут это... юзеp кнопку нажал...
Главная пpогpамма - обpаботчику пpеpываний:
Hе деpгайся! Подеpжит и отпустит.
...
Контpоллеp пpеpываний - обpаботчику пpеpываний:
Тут это... юзеp опять кнопку давит...
Обpаботчик пpеpываний - PC speaker'у:
Hу скажи ему что-нибудь, пусть отвяжется!
PC speaker - юзеpу:
Биип!
...
Контpоллеp пpеpываний - обpаботчику пpеpываний:
Тут юзеp Ctrl-Alt-Del жмет!
Главная пpогpамма - обpаботчику пpеpываний:
Да отpуби ты этому зануде клавиатуpу! Мы тут делом заняты...

1) схема обработки колбеков в виде очередей событий QUIK, минимизирующих влияние последующей обработки событий на основной поток запуска скриптов и генерации событий QUIK;
Вы там сделали, наконец, чтобы одно событие вызывало только ОДНО прерывание или "как всегда"?

2) сохранение истории одноминутных и пятиминутных котировок ценных бумаг в базах sqlite;
О, Господи! Это ещё на кой? Чтобы процессор чем-то занять?

3) оперативное сохранение текущих котировок 22-ух (по 18 параметрам) торгуемых бумаг в циклических буферах с задержкой < 1 млсек относительно момента возникновения событий OnParam;
И эти миллисекунды ловят... не лечится.  :sad:

2. Создание настраиваемого диалога с пользователем. Пользователь имеет возможность добавлять в форму диалога свои меню.
А чего же ему не иметь? Я вот создал себе диалог с контекстными меню на чистейшем Lua, и горя не знаю.

3. Ведения журналов OS_Quesha (диалога и отладки) с милисекундным разрешением.
Постоянный вопрос за всё время чтения этого опуса: НА КОЙ это всё?

4. Запуск на выполнения Lua-функций в фоновом режиме в отдельных потоках.
Тот же вопрос.

5. Работа с контрольными точками (для продолжения работы с прерванного, по любой причине, места).
УПАСИ, ГОСПОДИ! Только корректный перезапуск скрипта! Опять ищем на свою задницу приключений?

7. Ведение истории котировок (одноминутных и пятиминутных) в базах SQLite.
Лично я считаю свечи сам. Тупо, по цене закрытия, как среднее арифметическое (все эти "японские премудрости" я давным-давно послал на), "зато" сразу по нескольким интервалам: 15-секундные, полуминутные, минутные, двухминутные и далее со всеми остановками. Сначала считал по 16 интервалам, потом сократил до 9, поскольку более тяжёлые свечи мне оказались нафиг не нужны. В любом случае, затраты времени на эту арифметику ничтожны, несмотря на то, что считается это всё также на чистейшем Lua.

8. Ведение текущих дневных котировок в векторах оперативной памяти.
ПАЦТАЛОМ!

9. Эффективная схема обработки событий QUIK в виде циклических потокобезопасных очередей получения данных колбеков (реализованных без синхронизации).
Да хрен бы с вашими "циклическими потокобезопасными очередями"! Сделали ОДИН коллбек на ОДНО прерывание? За это (и ТОЛЬКО за это!) юзеры вам скажут спасибо.

10. Обеспечение интерфейса реализации торговых индикаторов на основе текущих котировок.
Никогда не понимал, на кой вообще нужны индикаторы. Есть же скрипт! И этого более, чем достаточно.

11. Обеспечение виртуальной торговли ценными бумагами.
ЧАВО?! А это что за зверюга такая?

Общее впечатление: я в ауте!
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Дожили! Уже и операционку под каждую сраную прикладную задачу разрабатывать будем! Бегло пролистал пост - УЖАС!!! На досуге почитаю внимательнее.

Когда-то давно мен включили в соавторы одной операционки, которая так и называлась: ОСРВ - операционная система реального времени. Примерно тогда же я давал определение: "Операционная система реального времени - это задача,  которая мешает моей задаче работать в реальном времени". Но мне и в страшном сне не могло привидеться, что ОС будет разрабатываться под одну задачу - тем более, смехотворно нетребовательную к ресурсам.

Пока пролистывал текст, глаз зацепился за:
"В скрипте-шаблоне создания роботов с использованием OS_Quesha запускается 16 потоков".
Слов нет. Даже матерных. Вернее, есть одно, на "п" начинается, на "ц" заканчивается. И, слегка кося под Нострадамуса, предрекаю: эта хрень не будет работать НИКОГДА!  :smile:  
Как запустить скрипт qlua из командной строки?
 
Максим, Скрипт на Lua - это ИНТЕРПРЕТИРУЕМЫЙ код. Проще говоря, текст. Кто ж его интерпретировать (читать) будет? Из командной строки можно запустить разве что Квик.
Получение параметров
 
getParamEx, АДНАЗАЧНА! Он по-любому нужен, а все остальные по большому счёту, нафиг не нужны.  
ParamRequest и getParamEx2, Как получить актуальные данные через getParamEx2?
 
Старатель, Совершенно верно: у меня всегда открыта ТТТ, и в неё добавлены все интересующие меня инструменты и параметры. И я принципиально не пользуюсь ParamRequest - скрипт у меня работает только с Квиком, позволяя торговать и мне, в режиме кентавра - либо через команды скрипту, либо самостоятельно, через стаканы (о моих сделках в этом случае он узнаёт через OnTrade). Мало того: я ТОЖЕ "истинный ценитель автоматизации", у которого в терминале открыто не просто "только одно окно: Доступные скрипты", но и в окне этом только один скрипт.  :smile: Я пока ещё торгую и сам "по инерции", но уже почти все тикеры отдал на откуп скрипту - доказано, что он торгует лучше меня. А потому ТТТ заказана, в основном, для него, и может быть свёрнута в иконку и тихонечко лежать там, не раздражая юзера своим мельтешением.

Да, есть ещё "окна, созданные скриптами" - сводная таблица и контекстное меню, всплывающее по клику на строчку этой таблицы. А ещё у меня есть таблица "состояние счёта" (для контроля - я туда редко заглядываю), таблица заявок (с той же целью), позиции по деньгам и клиентский портфель, показывающий мгновенную ликвидность. Всё для юзера. Я даже написал версию, которая торгует только сама и выводит только текущее состояние денег по каждой валюте (3 строчки, 5 столбцов), но на неё скучно смотреть - она показывает только "то, что было", но не "то, что будет".  :smile:

Да, я подумал несколько иное - извиняюсь.
ParamRequest и getParamEx2, Как получить актуальные данные через getParamEx2?
 
Старатель, Это Вы не в теме.  :wink: Скрипт ТОЖЕ не может "выполнить действие" - он может лишь послать заявку, и за это время котировка ТОЖЕ может поменяться. Я вначале собирался ставить в заявку BID или OFFER - как раз для мгновенного исполнения, но потом передумал, ибо это ТОЖЕ ничего не гарантирует. Но для любого тикера всегда существует некий "дребезг", и потому в 99 случаях из 100 заявка по LAST всё равно сработает в течение пары минут, если не секунд, так что работает мой скрипт ТОЛЬКО по LAST и ТОЛЬКО опросом ТТТ. И только за сегодня у него уже есть одна сделка у одного брокера (рублёвая) и шесть сделок у другого (долларовые). ЧТД!
ParamRequest и getParamEx2, Как получить актуальные данные через getParamEx2?
 
Александр, Ну так и получать надо эти "актуальные данные" тупым опросом ТТТ - тыщу раз уж об этом писал! Даже если интернет отрублен или биржа не работает - даже тогда там есть какие-то данные, вполне себе "актуальные" - просто курс не движется, и робот, который "используется для автоматизации", вполне в состоянии их читать. Что мой и делает раз в секунду. Данные - пальчики оближешь, актуальнее не бывает, надёжнее тоже не бывает, ждать ничего не надо. НУ НАФИГА вам искать на свою задницу приключений?
Как облегчить работу с метками на графике, Медленное перемещение графика при просмотре и масштабировании
 
Евгений, А я вообще не припомню случая, чтобы я отвечал на вопросы, если не знаю на них ответа. И в этой ветке я тоже ЗНАЛ ответ: НЕ МОЖЕТ причиной Ваших проблем быть "слабость процессора". О чём и сообщил. А флуд начали именно Вы. Так "не лучше ль на себя кума, оборотиться"?  :wink:

Я сюда пришёл... а, ну да - в конце сентября, АБСОЛЮТНО ничего не знающий про Lua (но кое-что знающий про Квик). И мне здесь реально помогли несколько раз. Сейчас же я знаю про программирование на Lua практически всё [что мне необходимо], и иногда помогаю другим - "долг платежом красен". Ну, а "что называется били себя в грудь" тоже именно Вы, изображая себя экспертом. За что и получили. :wink:  
Как облегчить работу с метками на графике, Медленное перемещение графика при просмотре и масштабировании
 
Евгений, А кто сказал, что вы тут эксперты?  :smile: Достаточно посмотреть на здешние ветки, на проблемы, которые здесь обсуждаются, на глюки, которые не исправляются годами, на версии софта, которые плодятся, как тараканы... Вот, скажем, есть в Квике таблица заявок - скрипт тут вообще никаким боком, она для юзера. Так вот: при разрыве связи в этой таблице некоторые строки просто пропадают, на их месте белые пятна, которые так и сидят до конца сеанса. При этом, если создать новое окно заявок (или перезапустить Квик), то информация всех этих строк на своих местах. Так что же требовать от поддержки языка (на котором мало ли что можно написать), если даже простейший диалог такой глючный? А "проверить как он бабло рубит" я и сам в состоянии - для этого вполне достаточно знаний по арифметике для первого класса. А ошибки... вот у меня есть три задумки, которые мне пока просто лень реализовывать: а) убрать заглушку "1 заявка - 1 лот" (иначе могут проявляться неприятные глюки по OnTrade, я об этом писал) б) снимать заявки, которые не сработали в течение 5 минут и в) попробовать поторговать с плечом (чисто из спортивного интереса, чтобы посмотреть, насколько выгодно кормить брокера). А больше я и не знаю, чего от скрипта желать: МЕНЯ он и так полностью устраивает - это и так вполне себе "конфетка".

Да, видел я здесь пару-тройку "братьев по разуму". Но не больше.  :sad:  
Как облегчить работу с метками на графике, Медленное перемещение графика при просмотре и масштабировании
 
Евгений, Я же сказал: я н продаю скрипты. К тому же, это не просто первый, но и единственный мой крипт на Lua. А его секретов я и сам не знаю. Нередко бывало, что я возмущался: "Да что же ты, скотина, делаешь?! Нужно продавать, а ты покупаешь"! Но в 9 случаях из 10 я был вынужден признать его правоту: он понимает рынок лучше меня.  :smile:  
Как облегчить работу с метками на графике, Медленное перемещение графика при просмотре и масштабировании
 
Евгений, Я писал этот скрипт для себя, любовно, а не для продажи. И приносит он мне все 100% того, что зарабатывает.  :smile:  2% в день - это слишком круто для него, но пару раз случалось и такое.
Как облегчить работу с метками на графике, Медленное перемещение графика при просмотре и масштабировании
 
Какой можно делать вывод из этого? Какой угодно, кроме "слабоват процессор". Задачи торговли просто смешны по нагрузке на процессор (да и на сеть тоже). На кой нужна куча потоков или чтобы "каждый график или хотя бы вкладка были в отдельных потоках" - без понятия. У меня один скрипт, работает "вот прям ща" на двух Квиках (двух разных провайдеров), загрузка ЦП (двухъядерник с двумя гигами ОЗУ) болтается в районе 5-10%, сетевая нагрузка тоже практически пуста. Ах, нет - ОЗУ всё-таки 4 гига. В общем, "дело было не в бобине". :smile:  
Подкиньте идею
 
Nikolay, Лично у меня интерфейс с сервером отсутствует как класс. Интерфейс с Квиком ужат до предела, до пары-тройки утилит. А интерфейс с юзером имеет все возможности, которые вообще можно выжать из чистого Lua.

Да как угодно "эта группа формируется"! Объект реакции на событие типа "группа событий" не может быть втиснут в очередь событий - здесь требуется именно стек очередей, поскольку все объекты этой очереди должны быть обработаны "вне очереди".
Подкиньте идею
 
Nikolay, Оба-на! Я когда-то занимался диалоговыми программами, и у меня всегда имело ОГРОМНОЕ значение, где событие прошло! В частности, обработчики событий в главном и контекстном меню моего скрипта совершенно разные. Кроме того, "очередь событий" автоматически делает невозможной иметь объект реакции типа "группа событий", что накладывает просто крест на хоть сколько-нибудь сложном диалоге. Наконец, обмен событиями между скриптами (тем более, на Lua) - это идеологический маразм, это не будет работать НИКОГДА! В крайнем (и далеко не лучшем :smile:) случае это будет служить ВЕЧНЫМ источником глюков. А глюков в Lua и без того более, чем достаточно.
Подкиньте идею
 
Игорь Б, По условию там вроде как МНОЖЕСТВО скриптов, и все они должны ПИСАТЬ, готовя сводную таблицу. Я вижу такое решение файл - один, но для каждого скрипта выделяется собственное пространство (фиксированного объёма). Далее они читают и пишут только в свои зоны, а общий диспетчер (который эту таблицу формирует) ставит флаги "прочитано, можно писать следующую порцию". В любом случае, работа множества скриптов с обменом информацией через файл есть геморрой.
Подкиньте идею
 
Kolossi, Подкидываю идею: объединить "несколько роботов" в один и не мучиться. :smile:

Ну, а если не хочется, то есть только два способа: через файл и через ОЗУ двойного доступа (для Lua нереально). Поэтому (если s_mike прав) пусть ГЛАВНЫЙ скрипт, запускаемый первым, создаёт эту общую таблицу, записывает её ID в файл, а остальные читают при запуске. А скрипты могут ничего не проверять, если "главный скрипт" по выходу убьёт их всех (правда, я не знаю как это сделать и можно ли сделать вообще).
Самый быстрый способ получить данные по инструменту
 
Алексей Злобин, А зачем? Если меня полностью устраивает ЭТОТ вариант? От добра добра не ищут... :smile:  
Самый быстрый способ получить данные по инструменту
 
getParamEx (без всяких "двоек"). Акций ММВБ смешное количество - я опрашиваю одновременно и акции СПБ. Да, скрипт у меня один-единственный на все случаи жизни. :smile:  
Получение данных из таблицы текущих торгов
 
Да ведь копеечная экономия! Я, правда, не работал "с огромными тыщами", но несколько сотен тикеров этот вариант преспокойно обслуживает.
Получение данных из таблицы текущих торгов
 
foobar, А я вообще с сервером не связываюсь: все данные получаю только от Квика, команды даю тоже только ему. В мейне стоит тупой цикл:
Код
 while f do
  r();      -- раз в секунду запускаем утилиту опроса
  sleep(1000);   -- текущих данных и принятия решений по ним
 end;
А внутри ежесекундного прерывания ещё один тупой цикл с опросом:
Код
function r()   -- мелкий обработчик прерывания по таймеру
 for i=0,N-1 do -- цикл по тикерам (прорисовка таблицы)
  s=a[i][2];   -- предыдущее и последнее значение курса
  a[i][2]=tonumber(getParamEx(a[i][1][0],a[i][0],"LAST").param_value);
...
Таким образом, коллбэки мне нужны только на OnTrade. Не хило бы, конечно, иметь ещё и по OnOrder, но там множество разных глюков, разбираться с которыми не имею ни малейшего желания, а потому выкинул это прерывание вообще. Никто ничего не жрёт, ничего не помирает, таблица спокойно обновляется, команды на покупку или продажу передаются в Квик - что ещё нужно от скрипта? А в более тяжёлом (15-секундном) прерывании (вызываемом прямо из этого, то есть фактически тоже в мейне) я считаю свечи по разным периодам и ещё кое-что. Мне - ндравицца! :smile:  
Ошибка в работе lua скрипта в quik 8.8.4.3
 
swerg, Я, милок, уже пару раз здесь говорил, что с раннего детства терпеть не могу распальцованных дураков и редко спускаю им их "поучения".  А моя некомпетентность привела к тому, что мой скрипт уже с месяц как полностью рабочий, и в последние дни я занимаюсь тончайшей шлифовкой алгоритма. Точнее, занимался - последние два дня я просто любуюсь его работой, и только за сегодня он уже принёс мне 1.6% прибыли, а ещё не вечер! Надеюсь, к концу дня будет 2%. Впрочем, неважно. И ему НАСРАТЬ на бесконечно меняющиеся версии софта - он [пока что] прекрасно уживается с любыми. Осталось разве что убрать кретинизм с "1 заявка - 1 лот", и больше я вообще от него ничего не хочу. Так что НЕ СОВЕТУЮ разным умникам "отвечать на мой идиотизм" - чревато. Вот подобные "отвлечённые" тяфтяфки - это сколько угодно. :wink:  
Ошибка в работе lua скрипта в quik 8.8.4.3
 
s_mike@rambler.ru, Лапуль, что-то мне подсказывает, что "базовых знаний" у меня раз эдак в сто поболе, чем у Вас.  :wink: Автор ветки КУПИЛ рабочий Lua-скрипт, а НЕ какую-либо скомпилированную библиотеку, на которые конечным пользователям именно НАСРАТЬ - они не знают, что это вообще такое, и знать не хотят. И правильно делают! Мало того: у автора НИ ЗВУКА не сказано про компиляцию, кроме диагностики, содержащей слова "in precompiled chunk". Мало того: довожу до Вашего сведения, что скомпилированный код - это ТОЖЕ код, только на другом языке! И конечному пользователю АБСОЛЮТНО насрать как на компиляцию, так и на декомпиляцию - он имеет полное право вообще ничего не знать даже о существовании того и другого - он купил конечный продукт, который ОБЯЗАН работать!

Да, "у меня через слово упоминаются экскременты", и это НЕ случайно. Ибо подобная математика есть ГОВНО! IF под каждую сраную версию софта, которые плодятся как тараканы, требуется вмешательство разработчиков конечных продуктов под неё THEN такой софт есть ГОВНО! И подобные Вам программисты, гнущие пальцы с вумным видом и немедленно затыкающие хлебальники при первом же щелчке по носу (как это сделали лично Вы в соседней ветке), в моём понимании, характеризуются тем же  термином.
Ошибка в работе lua скрипта в quik 8.8.4.3
 
И автор будет дурак, если деньги вернёт. :smile: Он, насколько я понимаю, писал скрипт на ЯЗЫКЕ Lua, который вряд ли претерпел значительные изменения (по крайней мере, в описании языка). А если скрипт вдруг ПЕРЕСТАЛ работать в новой версии, причём он РАБОТАЛ в той версии, которая была рабочей в момент разработки скрипта, то автор-то здесь при чём? Сам факт, что текущая версия имеет номер 8.8.4.3 говорит о том, что все они есть полное дерьмо. ВСЕ ДО ЕДИНОЙ!

P.S. Моему скрипту НАСРАТЬ, какая версия Квика используется (у одного брокера это 8.7.1.3, у другого 8.10.3.1, причём, насколько я помню, я раз 5 эти версии обновлял, даже не глядя, что там за изменения произошли) - именно поэтому  писал свой скрипт (и неоднократно предлагал делать то же самое другим разработчикам) на чистейшем Lua, который ОБЯЗАНЫ поддерживать ВСЕ библиотеки! А если вдруг И ЭТО не так, то гнать надо взашей всех разработчиков!
Сравнение вещественных чисел., (55.3 < 55.3) - верно!
 
Сергей, Эпсилон работает не в пример быстрее и не в пример надёжнее. :smile:  
Сравнение вещественных чисел., (55.3 < 55.3) - верно!
 
Ну да, стандартное решение в подобных случаях - добавить некий "эпсилон", очень малый по сравнению с "рабочими" числами"
Сравнение вещественных чисел., (55.3 < 55.3) - верно!
 
Владимир, О, Господи! Вы что, на каждый чих лог открываете?! Его надо открывать ОДИН раз в начале работы скрипта и закрывать в конце.
Сравнение вещественных чисел., (55.3 < 55.3) - верно!
 
Сергей, Да плевать на все "шаги фьючерса"! Попробуйте вывести в ветке else что-то типа:
F:write(string.format("x1=%1.5f x2=%1.5 x1*10=%1.5f x2*10=%1.5f\n",x1,x2,x1*10,x2*10));
Сравнение вещественных чисел., (55.3 < 55.3) - верно!
 
Сергей, А КАК ИМЕННО они "в лог пишутся"? Может, "%1.1f"? Код приведите...
Сравнение вещественных чисел., (55.3 < 55.3) - верно!
 
Сергей, Скорее всего, никакой ошибки нет, поскольку на самом деле числа там что-то вроде 55.30001 и 55.29999 или что-то в этом роде. а вот "переводить в целые и работать в целых" не получится - никаких целых в этом языке просто нет.  :smile:  
Status это работает ?
 
Nikolay, Да плевать, кто там что "отдаёт", а что "режет"! Данные должны быть корректные ВСЕГДА. И именно язык со своей долбаной динамической типизацией вносит сюда неопределённость.

А я уже "научен горьким опытом" - у меня давным-давно в таблицах стоит тип "строка" на всякий пожарный.  :smile: Но даже это не всегда помогает! Что до прерываний - мне просто СТЫДНО писать на клиенте-интерпретаторе заглушку на многократное поступление прерываний, а ещё и вразнобой - тем более, что глюкам этим много лет. Но что делать - поставил: "одна заявка - один лот". На код смотреть тошно, но терплю...

Ну да, да - это я скопировал новый код, раньше было просто чтение поля, которое задавалось как число, и без всякого tonumber. Тоже не работало. А сортировка и так работает "спицифиццски" - ей по барабану, стоит там минус в начале или нет. Тоже маразм но я уже привык. :smile:  
Страницы: Пред. 1 ... 29 30 31 32 33 34 35 36 37 38 39 ... 41 След.
Наверх