Предложение к разработчикам

Страницы: 1 2 3 След.
RSS
Предложение к разработчикам
 
Я тут заметил, что на некоторых тикерах кто-то (явно скрипт) "дрочит" заявками вблизи последней сделки, примерно раз в секунду перекидывая заявки в сотню-другую лотов "туда-сюда-обратно", имитируя какое-то движение по тикеру. Лично я бы за такое наказывал. Скажем, задержка хотя бы в 5-10 секунд на юзера (хотя бы по одному и тому же тикеру) эти трепыхания обрубила бы на корню (или, по крайней мере, замедлила).
 
Для начала - Сбор за неэффективные транзакции.
https://www.moex.com/a3825

Сбор за неэффективные транзакции взимается, если участник торгов или его клиент совершает большое количество транзакций, но заключает мало сделок. Под транзакцией понимается подача заявки (AddOrder), удаление заявки (DelOrder) или изменение заявки (MoveOrder)
 
Борис Гудылин, Ну, во-первых, это правила Московской биржи, во-вторых, если они не тупорылые жадные камикадзе, они должны бы немедленно этот пункт снять - при наличии малейшей конкуренции эти идиоты мгновенно бы лишились все своих клиентов! В-третьих, я предлагаю наказывать не за "неэффективные транзакции" (откуда юзеру знать, куда пойдёт рынок, сработает его заявка или нет?), а за смену заявок в течение короткого промежутка времени. Ошибся? Бывает, на первый раз прощается! Но если не первый - это уже ненормально, за это НУЖНО наказывать! Кстати, аналогичные правила не хило бы ввести и для комментов на этом форуме: минут 5-10 позволять разрешать редактировать свою запись - мало ли, опечатался где-то ляпнул что-то, не подумавши...
 
Цитата
Владимир написал:
Борис Гудылин, Ну, во-первых, это правила Московской биржи, во-вторых, если они не тупорылые жадные камикадзе, они должны бы немедленно этот пункт снять - при наличии малейшей конкуренции эти идиоты мгновенно бы лишились все своих клиентов! В-третьих, я предлагаю наказывать не за "неэффективные транзакции" (откуда юзеру знать, куда пойдёт рынок, сработает его заявка или нет?), а за смену заявок в течение короткого промежутка времени. Ошибся? Бывает, на первый раз прощается! Но если не первый - это уже ненормально, за это НУЖНО наказывать! Кстати, аналогичные правила не хило бы ввести и для комментов на этом форуме: минут 5-10 позволять разрешать редактировать свою запись - мало ли, опечатался где-то ляпнул что-то, не подумавши...
это и есть HFT роботы.
Вы предлагаете наехать на монстров фондового рынка?
Почитайте в инете, как HFT роботы делают профессиональных трейдеров.
------------------------------------------------
Мечтать не вредно, но бесполезно.
 
nikolz, А что, для "монстров фондового рынка" правил не существует? Остальное быдло покорно молчит?  :wink:

Полистал Вики про HFT, комментарии.

- Высокочастотный трейдинг (HFT) — основная (!!!) форма алгоритмической торговли на финансовых рынках.
Иными словами, нормальные трейдеры практически исчезли, остались эти "дрочуны"? Ну так КАБЗДЕЦ финансовому рынку с такими "трейдерами"! Правда, "по оценкам на 2009 год, высокочастотная торговля составляла 60-73% от всего объема сделок на рынках США, в 2012 году эта доля упала примерно до 50%". То бишь, мозги потихоньку начинам использовать по назначению? Брокеров кормить - не самая умная стратегия.

- Потенциальный коэффициент Шарпа для высокочастотной торговли в десятки раз выше, чем для традиционных стратегий типа Buy and hold. Обычно HFT-трейдеры конкурируют лишь друг с другом, но не с долгосрочными инвесторами.
Господи, да для этих козлов любой инвестор долгосрочный!

- Для получения минимальной задержки используются высокоуровневые языки, такие как C++, C#, Java и т.д.
ЭТТА ПЯТЬ! В моё время для получения минимальной задержки использовались как раз низкоуровневые языки. Ах, ещё и "проприетарные протоколы"? O, tempora o, mores!

- Несмотря на множество предложений как в Европе, так и в США, лишь немногие страны ввели законодательные ограничения на высокочастотную торговлю.
Пральна! Доить надо этих идиотов!

- По мере широкого внедрения стратегий высокочастотной торговли, становится все сложнее получать с их помощью прибыль.
Пральна! Для получения прибыли МОЗГИ надобно иметь, а не заниматься суходрочкой!

- Прибыли от всех HFT торговли в США упали с 5 миллиардов долларов в 2009 до 1,25 миллиардов в 2012.
Ну, хоть через жопу начинает доходить...  :smile:

- Большое количество исследователей утверждает, что HFT и электронная торговля создают новые сложности для финансовых систем.
А им-то какое дело? Доить надо этих идиотов! Ах, "обвал рынков"... так слушать не надо этих придурков, а собственными мозгами пользоваться!

Короче, теперь я понял, зачем здесь микросекунды ловят. Но предложение моё остаётся в силе: ДЕРЬМО это, а не инвесторы! НАКАЗЫВАТЬ надо такое дерьмо!
 
Цитата
Владимир написал:
ДЕРЬМО это, а не инвесторы! НАКАЗЫВАТЬ надо такое дерьмо!
Представьте себе, что будет, если на бирже останутся одни правильные инвесторы. Ну вот шоп набрали прям по тобину на всю котлету и сидят. Куда тогда цена пойдет, есть предположения?
 
Anton, А что такое "правильные инвесторы"? На мой взгляд, это честные инвесторы, а не ворюги, вынюхивающие какую-то инфу и стремящиеся урвать кусочек (да ещё и в доли процента!) перед носом соседа. А предложения есть: как и на обычном рынке, сделка производится тогда, когда цена устраивает и продавца, и покупателя. Время, кстати, тоже деньги - мне не раз доводилось и покупать по цене предложения, и продавать по цене спроса. Недавно был забавный случай: захожу я в стакан, а там 23 тыщи стоят на продажу по цене $15.37 и 25 тыщ желают купить по $15.36 (цену точно не помню, но разница была в один цент). Я купил сколько надо, и ушёл. Через полчаса захожу, а они так и стоят!  :smile:  
 
Владимир, Вас опять куда-то в сторону уводит. Причем здесь разработчики терминала.
Биржа, как и ее электронная площадка - это место и для спекулянтов, и для инвесторов, и для физ. лиц., и для юр. лиц и т.д.

Правила устанавливает частная коммерческая организация ПАО Мосбиржа или NASDAQ, или другая, под контролем соответствующих контролирующих органов, например SEC.


Возможно Вы только недавно для себя открыли этот новый мир, но он уже давно существует в таком виде.
 
Nikolay,Да, я прочёл. Технически реализовать задержку элементарно (проще всего как раз в терминале), и я считал (и считаю) это действие весьма разумным. Юридических запретов на отключение этой маразматической "торговли", как я понимаю, тоже нет, и быть не может, и таких правил просто НЕТ. Я ошибаюсь?.
 
Цитата
Владимир написал:
А что такое "правильные инвесторы"?
Цитата
Anton написал:
Ну вот шоп набрали прям по тобину на всю котлету и сидят.
 
Anton, Да это не "правильные инвесторы" - это придурки какие-то!  :smile:  
 
Владимир,  придурки потому что "по тобину" или потому что "на всю котлету"?
 
Anton, Придурки потому что сидят.  :smile:  
 
Те, кто совершают такие сделки, да и большинство других "денег" не пользуются терминалом Квик. Да и зачем, если можно встать в стойку у ядра биржи.

Для всех есть регламент подачи заявок. Там и ограничения прописаны. Хочешь много - плати. И платят.


Как раз физ. лица часто просят добавить задержки в скрипты, чтобы их алгоритм не пытался бороться с заведомо более быстрыми алгоритмами, иначе приходит счет за чрезмерную активность.
 
Nikolay, Но здесь-то форум по Квику! И лично я не хочу искать ничего лучшего, даже если оно и существует.

Господи, алгоритму-то какое дело до этих трепыханий? Моему-то уж точно по барабану! Как и мне - просто, когда заходишь в стакан, а там эта мышиная возня - раздражает. Кстати, то, что я видел - это вообще НЕ торговля: суходроч происходит вблизи цены последней сделки (чуть выше или чуть ниже), а сама цена при этом стоит, как вкопанная!

А что такое "чрезмерная активность"? Кто "меру" устанавливает? У меня, например, активность на порядок выше, чем у моей сестры - для неёё моя активность чрезмерная. А мне - нормально...  :smile:  
 
Этих "придурков" обычно называют маркетмейкерами. На сайте биржи есть все материалы по ним. Они должны присутствовать в стакане, не помню точно, 95% времени. Поэтому они и стоят. И получают вознаграждение от биржи за каждую сделку, в которой они являются пассивной стороной. Поэтому они не совершают сделок между собой...
 
Да какие они "маркетмейкеры", если работают аж на миллисекундах? Брокер - это маркетмейкер, это я понимаю. А эти... И вообще, как это биржи существовали в докомпьютерные времена?  :smile:  
 
Цитата
Владимир написал:
Да какие они "маркетмейкеры", если работают аж на миллисекундах? Брокер - это маркетмейкер, это я понимаю. А эти... И вообще, как это биржи существовали в докомпьютерные времена?  ::  
Вы еще далеки от понимания реальности фондовых рынков.
От брокера до маркет мейкера как от земли до луны.
------------------------------
Вот вам немного информации для размышления.
Вы наверное помните еще игровые автоматы в супермаркетах и беспроигрышную лотерею у вокзалов  (лохотрон называется)?
Помните тех активных игроков, которые постоянно играют на автоматах и предлагают бесплатно поиграть прохожим у лохотрона?
Это и есть пример маркет-мейкера.
Маркет-мейкера нанимает биржа, чтобы он делал ликвидность и уменьшал спред.
Т е если игрок  бьет в позицию  маркет-мейкера, то биржа платит маркет-мейкеру.
--------------------------------------
А брокеры - это всего лишь посредники между биржей и клиентами.
Они лишь собирают заявки и выставляют их на биржу потом раздают, что купили тем, кто просил.
При этом втихаря раздают в долг игрокам деньги и акции других игроков.
Т е делают то же самое что и банки, только банки берут деньги под проценты у одних и дают под проценты другим,
а брокеры берут деньги у одних на халяву и дают под проценты другим. Чувствуете разницу?
-------------------------------------  
Теперь про HFT роботов.
Они подобно пираньи . Обгладывают крупных инвесторов. Для этого им надо максимально быстрый доступ к торговой площадке.
Пока до буратин, которые играют на КВИКЕ,  дойдет информация , HFT роботы уже скушают, что всплыло в стакане.
Но, делать на квике HFT робота - это как делать самолет из самоката.  
При этом главное процесс, так как результат лишь будет сниться.  



 
 
nikolz,
Цитата
nikolz написал:
Вы еще далеки от понимания реальности фондовых рынков.
А зачем мне понимать их реальности?  :smile: Есть тикеры, есть цена спроса и предложения и это ЕДИНСТВЕННАЯ реальность, которая меня интересует.

Нет, я не помню игровые автоматы в супермаркетах и беспроигрышную лотерею у вокзалов  - мне всегда хватало мозгофф понять, что это лохотрон. Так что, бывшие напёрсточники теперь называются "маркетмейкеры"? ВОТ ЭТО ВОТ теперь называется ""монстры фондового рынка"? Я же говорю: КАБЗДЕЦ финансовому рынку с такими "трейдерами"! КАКИМ ОБРАЗОМ эта хрень может "сделать ликвидность и уменьшить спред"? Развести лохов на бабки? Да лохи и так все свои бабки благополучно просрут, без этих долбаных "мейкеров"!

А брокеры - это НЕ ТОЛЬКО "всего лишь посредники между биржей и клиентами" - цитата из Вики:
На бирже маркетмейкером может являться, например, брокерская контора, которая по договору с биржей берёт на себя обязательство держать в течение оговорённого времени (скажем, не менее 90 % торгового времени) одновременно выставленные заявки с разницей между ценами покупки и продажи (см. спред) не более оговорённой величины, за это биржа предоставляет маркетмейкеру определённые льготы, например, по оплате комиссионного сбора.

Про HFT роботов: кого и как они там "обгладывают" - меня не интересует: меня они не обглодают. Ну что они могут обглодать за свои сраные доли секунды? Ну, получат они какую-то там "информацию" раньше - и что? Ну, купят что-то на полкопейки дешевле, ну, продадут на три копейки дороже - да и то лишь в том случае, если они по этой информации примут правильные решения. Я если рынок тупо проигнорирует эту инфу? А если они неправильно оценят эту информацию? Где тогда будут эти "пираньи"? Правильно, в зопе!  :wink:  
 
Цитата
Владимир написал:
nikolz,
Цитата
nikolz написал:
Вы еще далеки от понимания реальности фондовых рынков.
А зачем мне понимать их реальности?  :: Есть тикеры, есть цена спроса и предложения и это ЕДИНСТВЕННАЯ реальность, которая меня интересует.

Нет, я не помню игровые автоматы в супермаркетах и беспроигрышную лотерею у вокзалов  - мне всегда хватало мозгофф понять, что это лохотрон. Так что, бывшие напёрсточники теперь называются "маркетмейкеры"? ВОТ ЭТО ВОТ теперь называется ""монстры фондового рынка"? Я же говорю: КАБЗДЕЦ финансовому рынку с такими "трейдерами"! КАКИМ ОБРАЗОМ эта хрень может "сделать ликвидность и уменьшить спред"? Развести лохов на бабки? Да лохи и так все свои бабки благополучно просрут, без этих долбаных "мейкеров"!

А брокеры - это НЕ ТОЛЬКО "всего лишь посредники между биржей и клиентами" - цитата из Вики:
На бирже маркетмейкером может являться, например, брокерская контора, которая по договору с биржей берёт на себя обязательство держать в течение оговорённого времени (скажем, не менее 90 % торгового времени) одновременно выставленные заявки с разницей между ценами покупки и продажи (см. спред) не более оговорённой величины, за это биржа предоставляет маркетмейкеру определённые льготы, например, по оплате комиссионного сбора.

Про HFT роботов: кого и как они там "обгладывают" - меня не интересует: меня они не обглодают. Ну что они могут обглодать за свои сраные доли секунды? Ну, получат они какую-то там "информацию" раньше - и что? Ну, купят что-то на полкопейки дешевле, ну, продадут на три копейки дороже - да и то лишь в том случае, если они по этой информации примут правильные решения. Я если рынок тупо проигнорирует эту инфу? А если они неправильно оценят эту информацию? Где тогда будут эти "пираньи"? Правильно, в зопе!    
Не навязчиво рекомендую кроме вики прочитать ФЗ  "О рынке ценных бумаг"
Еще можно для  расширения кругозора почитать книгу Дж.Сороса "Новая парадигма финансовых рынков". Он ее написал под впечатлением очередного обвала рынков.
Что же относительно Вашего представления о фондовом рынке.
Так на то оно действительно  Ваше.
Но зачем же так агрессивно его излагать?
 
nikolz, А зачем? Для знакомства с HFT вполне достаточно вики - лично я подобные алгоритмы давлю ещё на уровне подсознания, не допуская их до головного мозга. И у меня нет ни малейших сомнений: "новой парадигме финансовых рынков" самое место на помойке.

Где Вы увидели "агрессивность"? Это называется "идеальный стиль общения".  :smile:  
 
В своём коде я "обвистовал" все присвоения tostring или tonumber - пока работает (а мне, собственно, осталось только отладить подачу заявок и контроль их исполнения, да обработку событий от юзера), но замечания к реализации остались. На код глядеть местами тошно, но это мелочи. Однако, есть и довольно важные замечания. Попробую их изложить по группам:

I. Настоятельно рекомендуемые к исправлению:

1. У меня все до единого обращения к функциям другого потока (SetCell, SetColor и прочие) выполняются только после контроля флага останова. Тем не менее, даже после этого мне доводилось пару раз так "удачно" нажать на кнопку "остановить", что управление в main больше не возвращалось, скрипт завершался принудительно, и вместо записанного файла результатов работы скрипта я получал шиш с маслом. Здесь уже высказывалось мнение, что это "на 100% зона ответственности QUIK, и я с ним согласен. Я отслеживаю эту ситуацию по наличию или отсутствия финального message("Скрипт остановлен!") и по нулевому размеру файла результатов, но это же ненормально! Как и бесконечные "if f then ... end".

2. Как и первое предложение, это высказывалось уже давно, и не исправляется ГОДАМИ! Как и в первом случае, я не понимаю (и не хочу понимать!) почему "для того, чтобы строки отображались, необходимо, чтобы вызов CreateWindow() производился ДО процедуры добавления строк в таблицу". Здесь участники дискуссии, на мой взгляд, очень убедительно показывали, что такого быть не должно, но хотя бы внесите в описание языка эту "особенность"! Ведь многие (особенно новички) даже не подозревают о таких "нюансах" и тратят многие часы на отладку того, что в принципе не может быть отлажено.

3. Некоторые функции допускают необязательные аргументы (например, основание системы счисления в tonumber), а другие - нет. Так,
SetColor (iTable, iRow, iCol, BCol, TCol)
НЕ работает, а если подставить туда два дополнительных аргумента , SelBCol, SelTCol, равные QTABLE_NO_INDEX (-1) - начинает работать! Поскольку мне совершенно не были нужны выделенные ячейки, до необходимости переделать вызов в
SetColor (iTable, iRow, iCol, BCol, TCol, SelBCol, SelTCol, -1, -1)
без подсказки от службы техподдержки я бы просто не додумался НИКОГДА!

II. Очень хотелось бы, но это уже скорее ненаучная фантастика:

1. Определение типов данных программистом, типа STRING s, NUMBER n, BOOLEAN b, и чтобы интерпретатор не имел права менять указанный тип данных ни при каких обстоятельствах (вылетал бы с ошибкой). Хотя бы как дополнение к существующей "динамической типизации" (а лучше как полная её замена).

2. Вернуть "украденный" целочисленный тип данных (INTEGER i) и операции булевой алгебры для работы с ними (and, or, not или, в сишном синтаксисе, &, |, ^, >>= и т.д).

3. Отделить ключи от индексов. Точнее, ввести индексы в их классическом понимании как порядковый номер элемента в массиве (автоматически получая возможность задавать именно массивы, а не "таблицы Lua"), а также структуры данных (и, соответственно, возможность определять таблицы как массивы структур или, в реляционной терминологии, как массивы кортежей). Это, к тому же, заставит нумеровать массивы либо с нуля, либо с единицы, а не как Бог на душу положит. Для меня в своё время стало открытием, что определив таблицу как T={} я спокойно заполняю её данными, начиная с нулевого индекса, а если начинаю инициализировать вроде:
Q = { 0x999999, 0xFFFFFF, 0x99FFFF, 0x99FF99 };
то для обращения к первому элементу требуется указать именно 1, а не 0.

III. Синтаксис

1. В циклах имеется break, а вот continue почему-то нет (про goto я просто молчу).

2. Неплохо бы вообще приблизить синтаксис к совершенно гениальному языку C (фигурные скобки вместо "паскалевских" begin-end - тем более, что никакого begin как начало блока здесь вообще нет), возможность определять константы (#define), возможность условной трансляции/исполнения (#if) - тогда языку просто цены не будет!  :smile:  
 
Да откуда же вы такие берётесь?  :unamused:  
 
Цитата
Владимир написал:
В своём коде я "обвистовал" все присвоения tostring или tonumber - пока работает (а мне, собственно, осталось только отладить подачу заявок и контроль их исполнения, да обработку событий от юзера), но замечания к реализации остались. На код глядеть местами тошно, но это мелочи. Однако, есть и довольно важные замечания. Попробую их изложить по группам:

I. Настоятельно рекомендуемые к исправлению:

1. У меня  все до единого  обращения к функциям другого потока (SetCell, SetColor и прочие) выполняются только после контроля флага останова. Тем не менее, даже после этого мне доводилось пару раз так "удачно" нажать на кнопку "остановить", что управление в main больше не возвращалось, скрипт завершался принудительно, и вместо записанного файла результатов работы скрипта я получал шиш с маслом. Здесь уже высказывалось мнение, что это "на 100% зона ответственности QUIK, и я с ним согласен. Я отслеживаю эту ситуацию по наличию или отсутствия финального message("Скрипт остановлен!") и по нулевому размеру файла результатов, но это же ненормально! Как и бесконечные "if f then ... end".

2. Как и первое предложение, это высказывалось уже давно, и не исправляется ГОДАМИ! Как и в первом случае, я не понимаю (и не хочу понимать!) почему "для того, чтобы строки отображались, необходимо, чтобы вызов CreateWindow() производился ДО процедуры добавления строк в таблицу". Здесь участники дискуссии, на мой взгляд, очень убедительно показывали, что такого быть не должно, но хотя бы внесите в описание языка эту "особенность"! Ведь многие (особенно новички) даже не подозревают о таких "нюансах" и тратят многие часы на отладку того, что в принципе не может быть отлажено.

3. Некоторые функции допускают необязательные аргументы (например, основание системы счисления в tonumber), а другие - нет. Так,
SetColor (iTable, iRow, iCol, BCol, TCol)
НЕ работает, а если подставить туда два дополнительных аргумента , SelBCol, SelTCol, равные QTABLE_NO_INDEX (-1) - начинает работать! Поскольку мне совершенно не были нужны выделенные ячейки, до необходимости переделать вызов в
SetColor (iTable, iRow, iCol, BCol, TCol, SelBCol, SelTCol, -1, -1)
без подсказки от службы техподдержки я бы просто не додумался НИКОГДА!

II. Очень хотелось бы, но это уже скорее ненаучная фантастика:

1. Определение типов данных программистом, типа STRING s, NUMBER n, BOOLEAN b, и чтобы интерпретатор не имел права менять указанный тип данных  ни при каких обстоятельствах  (вылетал бы с ошибкой). Хотя бы как дополнение к существующей "динамической типизации" (а лучше как полная её замена).

2. Вернуть "украденный" целочисленный тип данных (INTEGER i) и операции булевой алгебры для работы с ними (and, or, not или, в сишном синтаксисе, &, |, ^, >>= и т.д).

3. Отделить ключи от индексов. Точнее, ввести индексы в их классическом понимании как порядковый номер элемента в массиве (автоматически получая возможность задавать именно массивы, а не "таблицы Lua"), а также структуры данных (и, соответственно, возможность определять таблицы как массивы структур или, в реляционной терминологии, как массивы кортежей). Это, к тому же, заставит нумеровать массивы либо с нуля, либо с единицы, а не как Бог на душу положит. Для меня в своё время стало открытием, что определив таблицу как T={} я спокойно заполняю её данными, начиная с нулевого индекса, а если начинаю инициализировать вроде:
Q = { 0x999999, 0xFFFFFF, 0x99FFFF, 0x99FF99 };
то для обращения к первому элементу требуется указать именно 1, а не 0.

III. Синтаксис

1. В циклах имеется break, а вот continue почему-то нет (про goto я просто молчу).

2. Неплохо бы вообще приблизить синтаксис к совершенно гениальному языку C (фигурные скобки вместо "паскалевских" begin-end - тем более, что никакого begin как начало блока здесь вообще нет), возможность определять константы (#define), возможность условной трансляции/исполнения (#if) - тогда языку просто цены не будет!  ::  
Исходники lua 5.3 есть. Сделай форк и пиши свой луа так, как тебе хочется.
Цитата
_sk_ написал:
Да откуда же вы такие берётесь?    
А откуда берутся дураки с высоким самомнением, полным отсутствием способностей и не способностью искать информацию, учиться и признавать ошибки?
 
Александр, Я и пишу на С так, как мне хочется. А остальным пофиг этот маразм с "мерцающими" типами данных или необходимость соблюдения (недокументированной!) последовательностью операторов? Одна только высосанная из пальца "проблема" с 19-значными кодами чего стоит! Умников развелось - прям плюнуть негде!
 
Цитата
Владимир написал:
В своём коде я "обвистовал" все присвоения tostring или tonumber - пока работает (а мне, собственно, осталось только отладить подачу заявок и контроль их исполнения, да обработку событий от юзера), но замечания к реализации остались. На код глядеть местами тошно, но это мелочи. Однако, есть и довольно важные замечания. Попробую их изложить по группам:

I. Настоятельно рекомендуемые к исправлению:

1. У меня  все до единого  обращения к функциям другого потока (SetCell, SetColor и прочие) выполняются только после контроля флага останова. Тем не менее, даже после этого мне доводилось пару раз так "удачно" нажать на кнопку "остановить", что управление в main больше не возвращалось, скрипт завершался принудительно, и вместо записанного файла результатов работы скрипта я получал шиш с маслом. Здесь уже высказывалось мнение, что это "на 100% зона ответственности QUIK, и я с ним согласен. Я отслеживаю эту ситуацию по наличию или отсутствия финального message("Скрипт остановлен!") и по нулевому размеру файла результатов, но это же ненормально! Как и бесконечные "if f then ... end".

2. Как и первое предложение, это высказывалось уже давно, и не исправляется ГОДАМИ! Как и в первом случае, я не понимаю (и не хочу понимать!) почему "для того, чтобы строки отображались, необходимо, чтобы вызов CreateWindow() производился ДО процедуры добавления строк в таблицу". Здесь участники дискуссии, на мой взгляд, очень убедительно показывали, что такого быть не должно, но хотя бы внесите в описание языка эту "особенность"! Ведь многие (особенно новички) даже не подозревают о таких "нюансах" и тратят многие часы на отладку того, что в принципе не может быть отлажено.

3. Некоторые функции допускают необязательные аргументы (например, основание системы счисления в tonumber), а другие - нет. Так,
SetColor (iTable, iRow, iCol, BCol, TCol)
НЕ работает, а если подставить туда два дополнительных аргумента , SelBCol, SelTCol, равные QTABLE_NO_INDEX (-1) - начинает работать! Поскольку мне совершенно не были нужны выделенные ячейки, до необходимости переделать вызов в
SetColor (iTable, iRow, iCol, BCol, TCol, SelBCol, SelTCol, -1, -1)
без подсказки от службы техподдержки я бы просто не додумался НИКОГДА!

II. Очень хотелось бы, но это уже скорее ненаучная фантастика:

1. Определение типов данных программистом, типа STRING s, NUMBER n, BOOLEAN b, и чтобы интерпретатор не имел права менять указанный тип данных  ни при каких обстоятельствах  (вылетал бы с ошибкой). Хотя бы как дополнение к существующей "динамической типизации" (а лучше как полная её замена).

2. Вернуть "украденный" целочисленный тип данных (INTEGER i) и операции булевой алгебры для работы с ними (and, or, not или, в сишном синтаксисе, &, |, ^, >>= и т.д).

3. Отделить ключи от индексов. Точнее, ввести индексы в их классическом понимании как порядковый номер элемента в массиве (автоматически получая возможность задавать именно массивы, а не "таблицы Lua"), а также структуры данных (и, соответственно, возможность определять таблицы как массивы структур или, в реляционной терминологии, как массивы кортежей). Это, к тому же, заставит нумеровать массивы либо с нуля, либо с единицы, а не как Бог на душу положит. Для меня в своё время стало открытием, что определив таблицу как T={} я спокойно заполняю её данными, начиная с нулевого индекса, а если начинаю инициализировать вроде:
Q = { 0x999999, 0xFFFFFF, 0x99FFFF, 0x99FF99 };
то для обращения к первому элементу требуется указать именно 1, а не 0.

III. Синтаксис

1. В циклах имеется break, а вот continue почему-то нет (про goto я просто молчу).

2. Неплохо бы вообще приблизить синтаксис к совершенно гениальному языку C (фигурные скобки вместо "паскалевских" begin-end - тем более, что никакого begin как начало блока здесь вообще нет), возможность определять константы (#define), возможность условной трансляции/исполнения (#if) - тогда языку просто цены не будет!  ::  
Вы не к тем разработчика обращаетесь.
Ваши хотелки  || и III.
Это претензии к разработчикам языка луа, а это -  в Бразилию.
----------------  
Но самое прикольное,
что и луа и VMLua
и даже терминал QUIK
- это все Вам бесплатно
- т е халява.
А дареному коню в зад, то бишь  зубы,  не смотрят. (Народная мудрость)
 
nikolz, Почему "не к тем"? Это тоже разработчики, адаптирующие продукт ТЕХ разработчиков к своим задачам. Если предложение разумно, то ЭТИ разработчики вполне могут попросить ТЕХ его реализовать.

И что, что "это все Вам бесплатно т е халява"? Я ни копейки не платил ни за Си, ни за Паскаль, ни за Алгол, ни за... на чём там я ещё программировал... ни за три ассемблера, PL, Фортран, Бейсик... это же не мешает мне считать тот же Паскаль говном, а Си - гениальной разработкой. Принюхаться, конечно, можно ко всему, но стоит ли? Не пора ли "учиться и признавать ошибки", и убрать, наконец, к чертям свинячьим эту долбаную "динамическую типизацию"?  :smile:  
 
Владимир,Если бы ты умел читать документацию и гуглить, то наверное понял, что хотелки твои уже реализованы.
Оператор goto в языке присутствует. Countinue - можно при желании эмулировать.
А еще есть такая штука https://github.com/dibyendumajumdar/ravi
 
Пожелание для разработчиков: рассмотреть возможность добавления в квик типизированного языка в ravi над lua 5.3  https://github.com/dibyendumajumdar/ravi
 
Цитата
nikolz написал:
это все Вам бесплатно
 А от куда берутся деньги на зарплату сотрудникам ARQU и вознаграждения ее акционерам? Оплата пользователями QUIK входит (косвенно) в те комиссии, которые пользователи платят своим брокерам.
 
Александр, Я умею и читать документацию и гуглить, но если для того, чтобы узнать, что goto существует, нужно ГУГЛИТЬ, то это очередная УБИЙСТВЕННАЯ характеристика языку! Не говоря уже про "continue эмулировать". А в стандартном описании языка нет ни звука ни про метки, ни про goto, ни даже про loadstring, которая уж точно есть, и я ею активно пользуюсь.
 
Владимир, Вот еще вариант типизации lua - teal language https://github.com/teal-language/tl
Было бы желание, можно разобраться.
 
Цитата
Владимир написал:
Александр, Я умею и читать документацию и гуглить, но если для того, чтобы узнать, что goto существует, нужно ГУГЛИТЬ, то это очередная УБИЙСТВЕННАЯ характеристика языку! Не говоря уже про "continue эмулировать". А в стандартном описании языка нет ни звука ни про метки, ни про goto, ни даже про loadstring, которая уж точно есть, и я ею активно пользуюсь.
Есть все, выучи английский.
 
Цитата

The goto statement transfers the program control to a label. For syntactical reasons, labels in Lua are considered statements too:    

stat ::= goto Name stat ::= label label ::= ‘::’ Name ‘::’

A label is visible in the entire block where it is defined, except inside nested blocks where a label with the same name is defined and inside nested functions. A goto may jump to any visible label as long as it does not enter into the scope of a local variable.  

https://www.lua.org/manual/5.3/manual.html
Пункт 3.3.4
В твоих способностях сомнения :lol:  
 
Александр, Да на кой мне "варианты типизации lua", если там типизация отсутствует в принципе, по определению? А костыли я уж как-нить и сам присобачу. К тому же, ни гитхаб, ни хабр меня давно не интересуют. Предложите лучше им реализовать мой "сортир" - года два уж пользуюсь по 10-100 раз в день, и до сих пор не нарадуюсь!  :smile:  
 
И на английском когда-то разговаривал совершенно свободно. Правда, за много лет без практики он выветривается. Последний раз в 2007 году в Греции доклад делал на английском.
 
Александр, А вот ветка про goto на этом самом форуме 4 года назад:
https://forum.quik.ru/forum10/topic1271/
 
Александр, А за goto спасибо - работает! Не ожидал встретить его здесь ещё лет 20 назад разные пижоны заявляли, что это "вредная конструкция".
Код
function main()
message("Скрипт запущен!");
goto qq;
message("Скрипт работает!");
::qq::
message("Скрипт остановлен!");
end

 
Цитата
Александр написал:
Пожелание для разработчиков: рассмотреть возможность добавления в квик типизированного языка в ravi над lua 5.3   https://github.com/dibyendumajumdar/ravi
Александр, добрый день!

Ваше пожелание зарегистрировано. Мы постараемся его рассмотреть. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
 
Не ясно только одно: что мешает прямо сейчас писать на с/с++ используя lua-api?

Вот, для примера, неплохая библиотека обертка методов Квика - https://github.com/elelel/qluacpp
Пишите на здоровье.

Как все это время другим удается писать на чистом lua, загадка, наверно.
Надеюсь разработчики даже не будут рассматривать это пожелание.
 
Nikolay, На кой мне это надо, если у меня даже интерпретатор почти всё время спит? Уж ХОТЬ НА ЧТО-НИБУДЬ lua пригоден? Я и пишу на чистом lua - язык, конечно, полное говно, но справлюсь уж как-нибудь.  :smile: Скрипт у меня, кстати, уже вполне себе работает в почти боевом режиме, на двух Квиках, на двух брокерах. Вчера, например, мне удалось "срубить по-бырому" более 20% прибыли "дневных" на одной из акций, причём американских рублей - без скрипта я этой возможности просто бы не заметил.
 
Доброго времени суток всем форумчанам! Я честно сказать вообще в шоке с такого мягко сказать дерьмового языка! Я изучал HTML,CSS,PHP,MQL4,MQL5 и вот пару дней назад начал изучать LUA. Так вот мое ощущение, что разработчики специально писали язык как можно тяжелее для изучения!!! Скачать справочник по LUA с оф.сайта, там не справка,а просто пару строк о каждой функции написано,и что и как делать,вообще не понятно!!! Например MQL4-5 я изучил примерно за месяц полностью и без проблем пишу на них роботов! И что самое важное,что у этих языков есть свой редактор со встроенной справкой по языку,и для каждой функции приведен конкретный пример!!! Здесь же минимум информации, и максимум "гемора" в написании кода!!! Начал изучать этот ..... не очень хороший язык только из-за того, что со сбербанк использует платформу Quik. Если б сбер использовал MT4,MT5, никогда бы не стал изучать этот язык!!! И самое главное,беру скрипт из справки,запускаю его,и он чудесным образом выдает ошибку! Вот это верх тупизны данного языка!!! Разработчики, меняйте координально язык!
 
Maksimus,

Бросайте это гиблое дело. Пишите на МТ4. Торговать в Квике невыгодно, писать на луа противно. И вообще, почему никто не принес тарелку мандаринов?
www.bot4sale.ru        t.me/bot4sale
 
Цитата
s_mike@rambler.ru написал:
Бросайте это гиблое дело.
++

Цитата
HTML,CSS,PHP,MQL4,MQL5
это ж фулхаус.
 
Цитата
Александр, Я умею и читать документацию

https://lua.org.ru/contents_ru.html
Официальная документация, даже на русском.
Пункт 3.3.4 – Управляющие конструкции, где написано про goto

Вывод, увы, прост и печален: документацию вы читать не умеете.
 
Цитата
Maksimus написал:
Скачать справочник по LUA с оф.сайта, там не справка,а просто пару строк о каждой функции написано,и что и как делать,вообще не понятно!!!

ftp://ftp.quik.ru/public/updates/
В архиве терминала с каждой версией разработчики выкладывают документацию по применению Lua в QUIK, в описанием, примерами. Для кого? Для чего? Чтоб не осталось в стороне...
Есть, конечно, разные претензии к этой документации, но она таки есть.

Ну или почитайте здесь:
https://quik2dde.ru/viewtopic.php?id=16

Цитата
Maksimus написал:
И самое главное,беру скрипт из справки,запускаю его,и он чудесным образом выдает ошибку!

Тут бы пример не помешал. Иначе пустозвонство получается.

Цитата
Maksimus написал:
Если б сбер использовал MT4,MT5, никогда бы не стал изучать этот язык!!!

А вот кстати, в самом деле: где Метатрейдер 5? где этот убийца Квика?? ну в самом деле, не понимаю.
 
swerg, Это говорил не Александр, а я. Документацию я читал другую, "рекомендуемую", и там не было ни звука ни про loadstring, ни про goto с метками. А ковыряться по всему Инету в поисках "правильной" документации на дерьмовенький язык - много чести. Кстати, goto я вообще не искал, ибо был уверен, что его давно уже выбросили всякие пижоны от программирования, как и из других языков - здесь Александр меня приятно удивил.
 
Цитата
Владимир написал:
goto я вообще не искал, ибо был уверен, что его давно уже выбросили всякие пижоны от программирования
Вы ж должны знать, что goto в общем случае формально недоказуем, поэтому когда надо предусловия/постусловия выводить, его и не используют, а не потому, что пижоны. Некоторые дейсктры думали, что без формального вывода это вообще не программирование, а тыканье букв наудачу, потому и удивлялись, кому goto нужен. Правда, они упускали момент, что их любимый формализм не единственный и в других формализмах, вроде конечных автоматов например, goto вполне себе место.
 
Цитата
Владимир написал:
Это говорил не Александр, а я.

Да, приношу извинения Александру, неаккуратно выделил пользователя из вложенной цитаты.
 
А зачем "рекомендованное", если есть книга от автора языка.
Купите или "купите" уже книгу Роберту Иерузалимски "Программирование на языке lua", если уж на сайте языка никак не получается.

В ней есть все, чтобы начать писать на lua.
А вот даже примеры решения заданий из книги https://github.com/bobeff/playground/tree/master/programming-in-lua
Страницы: 1 2 3 След.
Читают тему (гостей: 1)
Наверх