Предлагаю принять участие в тестировании моей библиотеки обмена сообщениями между процессами, потоками , приложениями, скриптами на любом языке программирования. ------------------------------- Как это работает Приложению или скрипту присваиваем номер NUM от 1 до 30000. ---------------- 1) Послать сообщение S: res=nkLp.send(NUM,S) , если успешно , то res=1. Num - номер получателя. 2) Принять сообщение S: на Lua S=nklP.get(NUM), на других языках nkLP(Num,S). Если нет, то пусто. Num-номер получателя. ================= Возможности 1) В скриптах для QUIK, колбеки можно размещать лишь в одном. Этот скрипт может рассылать информацию всем желающим. ----------------------------- 2) Индикаторы и скрипты могут обмениваться информацией. ------------------------------ 3) Любое внешнее приложение , например на питоне, может обмениваться информацией с QUIK или любым другим приложением, например, на луа. ================= Чем это решение лучше других 1) Другие таких решений нет . Если знаете, дайте ссылку. 2) Не блокирует потоки, не использует файлы, не обращается к ядру ОС. 3) Самый быстрый способ обмена. ================== Ограничения тестовой версии: В данном решении длина сообщения 64 символа. Используется лишь один ящик сообщений. Т е новое сообщение будет передано лишь после того, как прочитают предыдущее. В сообщении нет обратного адреса. Тестировал на Win10 64bit, Lua 5.4 =================== Как принять участие в тесте: Написать свою почту в личку.
Старые песни о главном. Чуть ли не с самых первых своих сообщений я говорил: несмотря на то, что Lua есть препоганейший язык, а С мой наилюбимейший язык на протяжении десятилеий, писать нужно только на чистом Lua. А уж привлекать сюда ещё какое-нибудь говно вроде Python и вообще есть мазохизм в чистом виде. И что задача организации торговли настолько тривиальна в техническом плане, что работать должен один-единственный скрипт написанный на одном-единственном языке Lua и, по возможности, работающий в одном-единственном потоке main. Блин, она ещё и платная?! Как говорил незабвенный Пётр Павлович Ершов: "Пусть полюбится кому, я и даром не возьму".
Владимир написал: Старые песни о главном. Чуть ли не с самых первых своих сообщений я говорил: несмотря на то, что Lua есть препоганейший язык, а С мой наилюбимейший язык на протяжении десятилеий, писать нужно только на чистом Lua. А уж привлекать сюда ещё какое-нибудь говно вроде Python и вообще есть мазохизм в чистом виде. И что задача организации торговли настолько тривиальна в техническом плане, что работать должен один-единственный скрипт написанный на одном-единственном языке Lua и, по возможности, работающий в одном-единственном потоке main. Блин, она ещё и платная?! Как говорил незабвенный Пётр Павлович Ершов: "Пусть полюбится кому, я и даром не возьму". ::
Вы уже не первый раз пишите на форуме эту глупость и чушь. Вам не стыдно за свое невежество? ------------------ Объясняю популярно для чайников. ----------------------- Не существует процессора, который может исполнить программу "чистого луа", так как она транслируется в байт код, а байт код не может исполнить процессор. ------------------------- Байт код луа исполняет другая программа, которая написана на чистом СИ. ----------------------------- QLUA - то тоже библиотека на чистом СИ. -------------------------- Все арифметические операции и обработку строк на луа исполняют программы на чистом СИ ----------------------- Моя библиотека - это одна из тысячи библиотек на чистом СИ, которые используются в Вашем чистом Луа. --------------------- Поэтому чистый луа - это птичий язык байт-кода, который без программ на СИ никто не понимает и не исполняет.
Вы уже не первый раз пишите на форуме эту глупость и чушь. Вам не стыдно за свое невежество?
Лапуль, Вы опять с зеркалом разговорились? И я уже не раз говорил Вам, что Вы и есть самый натуральный, без подмесу, чайник.
Лапуль, открою Вам страшную тайну: любой интерпретируемый язык сначала интерпретируется, а уж потом исполняется. И носом торкал: VM - это ТОЖЕ интерпретатор! Года два уж прошло, лапуль - пора бы и усвоить!
Чистый СИ, лапуль, это тоже всего лишь язык (его также называют машинно-независимым ассемблером), но компилируемый. Компилятор - это такой интерпретатор, который только интерпретирует код, но не выполняет его, а вместо этого записывает его на другом языке. Шурупен зи? В частности, компилятор с Си для Интеловского процессора даст радикально другой код нежели, скажем, для процессора PDP.
Открою Вам ещё одну страшную тайну, лапуль: никаких "библиотек на чистом СИ" не бюывает. На Си пишется код программ, а библиотека - это уже машинный код, вышедший из компилятора. И уже не имеет никакого значения, на каком языке был написан исходный код: на Си, на Паскале, на Фортране или вперемешку на десятках других языков, включая ассемблер. И вот эта конструкция уже машинно-зависимая, она не только под конкретный процессор, но даже и под операционку должна быть своя.
Все арифметические операции и обработку строк на луа исполняют программы на чистом Луа, лапуль - СИ здесь вообще никаким боком не стоит. Разве что библиотечные утилиты интерпретатора могут иметь сишный интерфейс - ну так а какой же ещё? Этот язык написан абсолютными гениями, зачем же пользоваться каким-то другим говном?
Ваша библиотека - это дерьмо, котрому место на помойке, которое абсолютно не нужно (и даже вредно) для решения задач торговли в терминале QUIK.
1. Я вынужден согласиться с позицией Владимира, со следующими уточнениями: 1) С его рекомендациями начинающим разрабатывать робота, я, почти полностью, согласен. 2) Если же у кого то есть наработки на языках отличных от QLua, то ему, наверное, следует оценить затраты на перенос своих разработок на QLua и на реализацию интерфейса своих программ с QUIK. --- 2. При том, что вы активно используете IT-терминологию, у меня нет ощущения, что вы «экстра программист» . На этом форуме, я думаю, что подавляющее большинство посетителей интересует, как можно заработать на фондовом рынке, а не «танцы» с потоками и потенциальной программной эффективностью. Вы «попали» не на тот форум ?.
TGB, Я тоже "вынужден согласиться" с небольшим уточнением: как можно заработать на фондовом рынке, более-менее понятно (во всяком случае, мой скрипт давным-давно торгует намного лучше меня), а вот срочный рынок я пока плохо чувствую, а попробовать бы не мешало. Но я ни разу не видел здесь даже намёков на обсуждение именно торговых алгоритмов - только техника, да и та в очень усечённом виде.
Кстати, свой первый код (для работы по историческим данным) я написал именно на C - пощупал его, потестировал, а потом уже перенёс на Lua.
Владимир написал: Старые песни о главном. Чуть ли не с самых первых своих сообщений я говорил: несмотря на то, что Lua есть препоганейший язык, а С мой наилюбимейший язык на протяжении десятилеий, писать нужно только на чистом Lua. А уж привлекать сюда ещё какое-нибудь говно вроде Python и вообще есть мазохизм в чистом виде. И что задача организации торговли настолько тривиальна в техническом плане, что работать должен один-единственный скрипт написанный на одном-единственном языке Lua и, по возможности, работающий в одном-единственном потоке main. Блин, она ещё и платная?! Как говорил незабвенный Пётр Павлович Ершов: "Пусть полюбится кому, я и даром не возьму". ::
Проверено. Верно: "работать должен один-единственный скрипт написанный на одном-единственном языке Lua и, по возможности, работающий в одном-единственном потоке main."
1. Я вынужден согласиться с позицией Владимира, со следующими уточнениями: 1) С его рекомендациями начинающим разрабатывать робота, я, почти полностью, согласен. 2) Если же у кого то есть наработки на языках отличных от QLua, то ему, наверное, следует оценить затраты на перенос своих разработок на QLua и на реализацию интерфейса своих программ с QUIK. --- 2. При том, что вы активно используете IT-терминологию, у меня нет ощущения, что вы «экстра программист» :: . На этом форуме, я думаю, что подавляющее большинство посетителей интересует, как можно заработать на фондовом рынке, а не «танцы» с потоками и потенциальной программной эффективностью. Вы «попали» не на тот форум :: ?.
Мне безразличны ваши ощущения. Но так как Вы слабо разбираетесь в разработке софта, то ваши ощущения также ошибочны как и знания рынка. ------------------- Судя по рассуждениям Владимира он когда-то программировал на ассемблере - давным давно. ------------------- Очевидно, что сейчас уже отстал и не знает современных IDE. Поэтому и плюется на потоки, так как не понимает как с ними работать и очевидно все еще работает на одноядерном компьютере. ------------------------- Чего стоит его разглагольствования о том, что он обрабатывает тысячу инструментов. ------------------ Вам нравится его болтовня о том, что ничего не надо кроме "чистого" луа, одного потока и функции main в одном скрипте, чтобы сделать робота который Вам будет приносить бабло. -------------------- Смешно такое читать. --------------------- В одном с Вами соглашусь, на этом форуме в основном буратины, которые пришли на рынок как на поле чудес в страну дураков и мечтают о халяве. -------------------------- Переубеждать Вас не буду, так как в этом нем смысла.
nikolz, Лапуль, ну хватит корчить из себя списилиста вяликого! Ежу понятно, что в программировании Вы никто и звать Вас никак.
Лапуль, я писал уже здесь, что программировал аж на ТРЁХ ассемблерах - БЭСМ, PDP и Intel. Кроме того, я программировал на C, Алголе, Фортране, PL, JS, даже чуток на Паскале и Бейсике. Ах, да - ещё и Lua. Может, ещё на чём-то - не помню. И говорил тыщу раз, что профессионалу ВСЁ РАВНО на каком языке писать. И долгие годы на моих глазах происходила вся эта деградация программистов до уровня полуграмотного быдла, которое уже практически ничего не соображает и надувает щёки в этом Вавилонском столпотворении языков. Лапуль, я на своём веку видел ДЕСЯТКИ программистов ВЫСОЧАЙШЕГО класса, в том числе весьма титулованных (де Конинг или Томпсон в представлении не нуждаются). А сейчас я вижу сейчас слабо отличающегося от абсолютного нуля Вас с гнутыми пальцами. Говорят, что всё познаётся в сравнении - так небо и земля! Ну какой Вы программист, лапуль? В зеркало посмотрите!
Лапуль, только КЛИНИЧЕСКОМУ дебилу могут понадобиться потоки - чисто системная конструкция - в чисто прикладной задаче - такой, как организация торговли в Квике на Lua. И что значит "разглагольствования", лапуль? Я давным-давно говорил, что мой скрипт спокойно, без напряжения, обрабатывает тысячу инструментов на достаточно дохленьком ноуте. И 10000 потянет, хотя уже и с проблемами. Да, лапуль, НИЧЕГО не надо кроме "чистого" луа, одного потока и функции main в одном скрипте! Любой нормальный программист Вам это подтвердит - не все же, надеюсь, вымерли? И Вы не поверите, лапуль - ДЕЙСТВИТЕЛЬНО приносит бабло! Вчера приносил, сегодня принёс и завтра ещё принесёт. Вот послезавтра нет - я уезжаю в гости в другой город, и запускать его в этот день не буду. А криворуким бездарям, лапуль, не помогут никакие "современные IDE" и вся эта огромная навозная куча языков программирования.
Не соглашусь с Владимиром. Мне вот написание робота на Lua совершенно не нужно. Но я здесь, чтобы написать коннектор на С++ и выдрать данные из квика с базу данных, где скрипт на T-SQL (это SQL Server) сам посчитает, а потом выдаст нужное в веб-интерфейсе через совсем уж редкий язык в Европе для web-а под названием ColdFusion (или CFML)/ Удобен он для написания веб-страниц.
Не верю я в роботов! Вы на рынке деривативов не работали (на срочном) и не видели, как ГО поднимают и сделать ничего нельзя. Робот тупо встанет в сложный момент. Только ручная торговля.
У меня задача только получить данные из Квика. Через общую память, например. Хоть в файл для начала записать на C++ (потому что STL использую). И получить данные самым быстрым, кошерным способом, то есть создавать технических нагромождений, я пока не могу. Не разобрался. Только вызывать код C из Lua, "приветы передавать", а надо наоборот, брать из Квика и писать в файл или общую память по конкретным тикерам.
И да. Не надо мешать в кучу все свои старомодные представление. Есть интерпретируемые языки (типа javaScript и Python, Perl, PHP), а есть компилируемые.
Компилируемые в свою очередь подразделяются на настоящие, формирующие машинный код через компилятор, напрямую работающие в железом и процессором (по сути только C/C++ и Pascal/Delphi) и компилируемые в байт-код и выполняемые оберточной машиной, бинарным интерпертатором, по сути (Java, .NET, или вон Lua).
Вот и вся классификация. В 21 веке это так. И будет так. PDP можно и почти все ранее 1990-х можно выкинуть.
На последок надо бы различать язык Ассемблера (по сути это именно язык для человека) и собственно машинный код. Писать и править программы можно прямо в машинном коде, потому что есть двоякие ситуации, когда ассемблер можно по разному транслировать в машинный код. И сам машинный код на самом деле тоже интерпретируется процессором, почти как обычный текст, на конверее, байт за байтом. Но это уже детали железной реализации. Это уже сделано на заводе, так сказать.
A.T. написал: Не соглашусь с Владимиром. Мне вот написание робота на Lua совершенно не нужно. Но я здесь, чтобы написать коннектор на С++ и выдрать данные из квика с базу данных, где скрипт на T-SQL (это SQL Server) сам посчитает, а потом выдаст нужное в веб-интерфейсе через совсем уж редкий язык в Европе для web-а под названием ColdFusion (или CFML)/ Удобен он для написания веб-страниц.
Не верю я в роботов! Вы на рынке деривативов не работали (на срочном) и не видели, как ГО поднимают и сделать ничего нельзя. Робот тупо встанет в сложный момент. Только ручная торговля.
У меня задача только получить данные из Квика. Через общую память, например. Хоть в файл для начала записать на C++ (потому что STL использую). И получить данные самым быстрым, кошерным способом, то есть создавать технических нагромождений, я пока не могу. Не разобрался. Только вызывать код C из Lua, "приветы передавать", а надо наоборот, брать из Квика и писать в файл или общую память по конкретным тикерам.
И да. Не надо мешать в кучу все свои старомодные представление. Есть интерпретируемые языки (типа javaScript и Python, Perl, PHP), а есть компилируемые.
Компилируемые в свою очередь подразделяются на настоящие, формирующие машинный код через компилятор, напрямую работающие в железом и процессором (по сути только C/C++ и Pascal/Delphi) и компилируемые в байт-код и выполняемые оберточной машиной, бинарным интерпертатором, по сути (Java, .NET, или вон Lua).
Вот и вся классификация. В 21 веке это так. И будет так. PDP можно и почти все ранее 1990-х можно выкинуть.
На последок надо бы различать язык Ассемблера (по сути это именно язык для человека) и собственно машинный код. Писать и править программы можно прямо в машинном коде, потому что есть двоякие ситуации, когда ассемблер можно по разному транслировать в машинный код. И сам машинный код на самом деле тоже интерпретируется процессором, почти как обычный текст, на конверее, байт за байтом. Но это уже детали железной реализации. Это уже сделано на заводе, так сказать.
Коротко, для новичков, так сказать.
Вы забыли упомянуть микрокоманды. Это то, что всегда исполняется за один такт. Все команды фактически реализованы в виде функций на микрокомандах. Но это не важно. --------------------------- теперь про Ваши хотелки. Если Вы не собираетесь выполнять автоматом торговые операции, а надо лишь забрать данные из таблиц ( в том числе и доску опционов, которую на луа не получите), то Вам не надо луа. Вам надо использовать DDE Полагаю это именно то, что Вам надо. Раньше , когда луа не было я так и делал. Сейчас тоже у меня есть в арсенале DLL, то это надо лишь для опционов. Но опционами не торгую поэтому DLL на запасном пути стоит.
Да, кстати, в американских платформах, подобных Квику, на C++ написана, весьма хороша (была такая, еще с 90-х, точно такая же модель, когда брокеры подписываются на платформу, а платформу держит независимый разработчик. Её потом выкупил Bank of America и в итоге практически уничтожил, индусские аутсорсные программисты и менеджент, которому ничего не надо, творят чудеса).
Очень старая, подозреваю, что модель Квика и даже бизнес-процесса с нее когда-то срисовывалась. Называлась InstaQuote. Тоже с Q логотипом :)
Это было еще до появления Инстаграмма. Так что название не слизано. Точнее, когда инстаграмм появился, платформа была почти убита.
Вот там DDE активно использовался. И было еще некое самореализованное API, очень лаконичное с мини-документацией и простыми функциями обработки заявок, не помню уже технических деталей.о есть это общая мировая практика торговых платформ вообще.
По моему через локальный TCP-port это делалось... Да! Торговая платформа открывала и всегда слушала 3201 порт, как сейчас помню. И на порту висело самописное API, очень простое. Никакого Луа.
Опционная доска там была, но она сама была реализована как как бы отдельное приложение, в отдельном потоке. Было видно даже по интерфейсу, что писалось отдельно. И опционы на Америке совсем по другому устроены. Нет централизованной волатильности от биржи, и многое не так. И опционы на акции. Это не CME было.
То есть задачи и подходы в принципе одинаковы. Что в Америке, что на Квике в России.
Проблема в том, что DDE слишком громоздок. И слишком стар. И ничего лучше не придумали.
В Квике надо несколько манипуляций мышью сделать, чтобы запускать это всё, в Excel. По сути пишется самописный Excel, берется компонент на C++ и получается DDE-клиент.
А хотелось бы лаконичную DLL повесить и обращаться отдельным запросом внешним С++ или Java "экзешником" через общую память (это лучшее!) или через такой же localhost TCP-port, через WinSock.
Потому что как устроен ColdFusion (или аналогичный слизанный, ксати, позднее с него модный ASP.NET -- это доподлино известно). Можно написать программу на Java или С++, которая как обычный HTML-тег с нужными переаметрами по мере надобности может вызываться прямо с веб-страницы. Всю эту обертку и взаимодействие уже делает сам ColdFusion.
То есть можно вызвать расчет ГО, данные из Квика прямо с веб-страницы и тут же отобразить или записать в БД. Практически не напрягаясь.
Единственное, это сам Lua и переход в С++.
Вот какая-то такая задумка. Обвязку такую сделать.
А опционную доску потом доделают под Qlua. На худой конец, никто не запрещает обращаться напрямую по коду опциона.
A.T. написал: Да, кстати, в американских платформах, подобных Квику, на C++ написана, весьма хороша (была такая, еще с 90-х, точно такая же модель, когда брокеры подписываются на платформу, а платформу держит независимый разработчик. Её потом выкупил Bank of America и в итоге практически уничтожил, индусские аутсорсные программисты и менеджент, которому ничего не надо, творят чудеса).
Очень старая, подозреваю, что модель Квика и даже бизнес-процесса с нее когда-то срисовывалась. Называлась InstaQuote. Тоже с Q логотипом :)
Это было еще до появления Инстаграмма. Так что название не слизано. Точнее, когда инстаграмм появился, платформа была почти убита.
Вот там DDE активно использовался. И было еще некое самореализованное API, очень лаконичное с мини-документацией и простыми функциями обработки заявок, не помню уже технических деталей.о есть это общая мировая практика торговых платформ вообще.
По моему через локальный TCP-port это делалось... Да! Торговая платформа открывала и всегда слушала 3201 порт, как сейчас помню. И на порту висело самописное API, очень простое. Никакого Луа.
Опционная доска там была, но она сама была реализована как как бы отдельное приложение, в отдельном потоке. Было видно даже по интерфейсу, что писалось отдельно. И опционы на Америке совсем по другому устроены. Нет централизованной волатильности от биржи, и многое не так. И опционы на акции. Это не CME было.
То есть задачи и подходы в принципе одинаковы. Что в Америке, что на Квике в России.
Проблема в том, что DDE слишком громоздок. И слишком стар. И ничего лучше не придумали.
В Квике надо несколько манипуляций мышью сделать, чтобы запускать это всё, в Excel. По сути пишется самописный Excel, берется компонент на C++ и получается DDE-клиент.
А хотелось бы лаконичную DLL повесить и обращаться отдельным запросом внешним С++ или Java "экзешником" через общую память (это лучшее!) или через такой же localhost TCP-port, через WinSock.
Потому что как устроен ColdFusion (или аналогичный слизанный, ксати, позднее с него модный ASP.NET -- это доподлино известно). Можно написать программу на Java или С++, которая как обычный HTML-тег с нужными переаметрами по мере надобности может вызываться прямо с веб-страницы. Всю эту обертку и взаимодействие уже делает сам ColdFusion.
То есть можно вызвать расчет ГО, данные из Квика прямо с веб-страницы и тут же отобразить или записать в БД. Практически не напрягаясь.
Единственное, это сам Lua и переход в С++.
Вот какая-то такая задумка. Обвязку такую сделать.
А опционную доску потом доделают под Qlua. На худой конец, никто не запрещает обращаться напрямую по коду опциона.
Не в обиду будет сказано, но Вы во всех этих суждениях ошибаетесь. -------------------- Я не буду подробно все рассказывать, но замечу кратко, в чем Ваши ошибки. -------------------- 1) DDE и TCP- это две большие разницы. WinSock вообще ни при чем. ----------------- 2) DDE - в модели "сервер-клиент" - это самый быстрый способ обмена между приложениями на одном компе. ------------------- 3) Вы не пишите Excel от слова "совсем". Вы используете формат данных, который используется в Excel. ---------------- Желаю успеха.