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

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

Страницы: Пред. 1 ... 3 4 5 6 7 8 9 10 11 12 13 ... 19 След.
Событие получения данных всех таблиц и графиков после подключения к серверу
 
Михаил Понамаренко, Можно сделать так: первую минуту после запуска (ну или две, три, четыре) скрипт "прогревается" и ничего не делает. А за это время и юзер может осмотреться (мало ли - может, файл входных данных не считался или оказался бракованный или ещё что случилось), и все нужные таблицы гарантированно загрузятся.
Событие получения данных всех таблиц и графиков после подключения к серверу
 
Nikolay, Я как раз терпеть не могу "гуру" (которых на этом форуме как собак нерезаных), и всегда говорил, что не перевариваю общения ни "сверху вниз", ни "снизу вверх" - собеседник всегда РАВЕН мне.

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

Нет, я не "решу написать скрипт кому-то еще" - скрипт УЖЕ написан, и сейчас я пытаюсь отладить последнюю его утилиту: снятие заявок, которые не были исполнены в течение 3 минут. Пока что безуспешно: ни вчера вечером, когда  первый раз запустил последнюю версию скрипта, обложив еёё с головы до пят отладочной печатью, ни сегодня этого события пока что не случилось ни разу: скрипт так удачно выбирает цену покупки или продажи, что все до единой заявки сработали в течение нескольких секунд. И я УЖЕ дал его своему другу, причём я совершенно без понятия, как у него настроен терминал (как и у меня, кстати). Работает - и слава Богу! Теперь у нас три разные версии Квика, и на всех трёх мой скрипт прекрасно работает. Так что я пока не вижу никаких предпосылок, чтобы мой скрипт "учитывал это". Обнулится таблица - нет проблем, наименования тикеров покрасятся в синий цвет фона, белый текста, а с получением новых данных о сделках будут "перекрашиваться взад". Что здесь нужно "учитывать"? Скрипт сам прекрасно знает, что и как ему делать. :smile:  
Событие получения данных всех таблиц и графиков после подключения к серверу
 
s_mike@rambler.ru, Как это Вы там говорили? Вам следует набраться опыта, прежде чем делать безапелляционные утверждения.  :wink:

Да плевать мне на Ваши примеры! Идиотские домыслы с "если" засуньте себе в задницу! Вы тут порете чушь с вумным  видом, так я Вас по ней носом извожу.

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

Шурупен зи? Читать слева направо. До посинения пока дойдёт.
Событие получения данных всех таблиц и графиков после подключения к серверу
 
s_mike@rambler.ru, Это Вы с зеркалом разговорились, сударь? Повторяю для бестолковых: Единственная таблица, из которой я получаю данные для торговли - это ТТТ, а она непустая даже если вообще не соединяться с сервером.
Событие получения данных всех таблиц и графиков после подключения к серверу
 
s_mike@rambler.ru, Что именно "неверно"?
как вставить системное время в ячейку таблицы
 
Дмитрий, Дык надо СНАЧАЛА InsertRow а ПОТОМ УЖЕ SetCell. Мало того: она и возвращает ID строки.

Я загружал через кнопку "Загрузить картинки".
как вставить системное время в ячейку таблицы
 
Владимир, Ах, да - ещё возможная причина: неправильный размер в  AddColumn.
как вставить системное время в ячейку таблицы
 
Дмитрий, В соседние по строке или по столбцу? Может, например, портиться i, может InsertRow забыли включить, может, какие-то проблемы с нулевым столбцом. Хотя нет - я же его использую, только он невидимый.
Событие получения данных всех таблиц и графиков после подключения к серверу
 
Артем, Огласите весь список, пжалста!(с) :wink:

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

А, ну да - я и писал 14.10.2020 14:23:59
Сделал для себя два вывода из вчерашних-сегодняшних экспериментов:

1. Вставку строк (InsertRow) следует производить всегда в конец таблицы (код -1) - тогда индексы и ключи совпадают, а вот DeleteRow не следует делать вообще, поскольку в этом случае у исполнителя крыша едет, и данные начинают попадать не в те строки. Не нашёл ничего лучшего, чем при необходимости удалить строку обнулять всю таблицу (Clear) и заново перенабить в ней все строки, которые должны отображаться.

2. При описании столбцов (AddColumn) не задавать им никаких QTABLE_INT_TYPE, QTABLE_DOUBLE_TYPE - оставить только QTABLE_STRING_TYPE, и при занесении значения в ячейки (SetCell) заворачивать значения в tostring - тогда, по крайней мере, сортировка по столбцам работает именно как сортировка строк, а не выдаёт результаты, от которых глаза на лоб лезут.

3. Ну и, конечно, как мне тут подсказали, любой чих, любые действия с таблицей должны заворачиваться в проверку флага, что кнопка останова скрипта не нажата.
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
новичок, Адекватности у меня, дружок, выше крыши - с другими поделиться могу.  :smile: И кто тут "пузырится"? Очередной полуграмотный распальцованный неуч с растопыренными пальцами получил щелчок по носу и, надеюсь, наконец, заткнётся. А общая деградация уже состоялась - программисты ВЫМЕРЛИ!
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Артем, Сила воли Вам не поможет - нужно ещё мозги иметь и знания.

НЕТ "такого же результата кода на С"! Уберите "int" из оператора цикла Вашего примера - тогда там будет С. Да, "С лучший язык", а С++ на самом деле говно. И держится на плаву лишь потому, что включает в себя продукт разработки двух гениев. Как и множество других языков - за счёт передранного оттуда же синтаксиса
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Артем, Вот, лапуль, ещё одна цитата из моей книги - для общего развития:

К сожалению, даже такой язык, как C несколько ограничен по функциональным возможностям: затруднена инициализация неоднородных массивов, отсутствует возможность создания меток в массивах или меток межпрограммного перехода (тривиальные задачи для любого языка ассемблера). Кроме того, стандарты ANSI, UNIX или K&R не поддерживают строчных комментариев, что крайне неудобно. Поэтому в SINT допускается использование модулей на языках ассемблера (по возможности, выполненных как вставки в текст на C и транслируемых компиляторами C/C++). Мы также активно используем строчные комментарии, поскольку все зарегистрированные на сегодняшний момент компиляторы их понимают. В крайнем случае, комментарии несложно удалить программно.

Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Я не язык использую, лапуль, а компилятор. Кстати, почти никогда "тяжеловесный" - мой любимый BC3.1. Иногда использовал Watcom, иногда GNU. Ни в одном из них никакой "тяжеловесности" не было. И программы нга выходе всегда смешного размера - я не помню, была ли хоть одна объёмом свыше сотни килобайт.

НЕ БЫЛО изначальном языке строчных комментариев! И если Ваша долбана инструкция утверждает обратное, засуньте её... сами знаете куда.

Да я давно уже на пенсии, лапуль. :wink:  
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Артем, Я его и не собирался компилировать! Просто в С нет этого маразма с объявлением переменных внутри блоков. Хотя здесь они, по крайней мере, объявляются, в отличие от Lua. Я всю жизнь пользуюсь компиляторами С++, но только потому, что там есть строчные комментарии - ЕДИНСТВЕННОЕ, что можно оттуда взять полезного! Я когда-то где-то читал, как Керниган плакался: "Ну как же это мы забыли про строчные комментарии"? Во всём остальном ставить рядом Страуструпа и Кернигана с Ричи просто нельзя - у них совершенно разные весовые категории. :smile:  
Перехват событий формы и отмена заявки
 
Алексей, Пишете свой скрипт, подключаете туда кнопки "купить/продать", торгуете не через формы, а именно через него, проверяете там всё, что хотите, и лишь потом отправляете заявку в квик на исполнение.
Перехват событий формы и отмена заявки
 
Алексей, а при чём тут Lua? Здесь нет никаких кнопок "да". :smile:  
getCandlesByIndex опа опа а что это у нас тут, getCandlesByIndex опа опа а что это у нас тут
 
Александр Волфовиц, УПС! А сам, гад, продал FNKO, про который он ничего не советовал! :smile:  
getCandlesByIndex опа опа а что это у нас тут, getCandlesByIndex опа опа а что это у нас тут
 
Александр Волфовиц, Так Вы торгуете или скрипт?  :smile: Да и что такое "визуализация"? Я в Квике видел графики только при первом запуске - они там были по умолчанию, и я их тут же грохнул. А "воочию оцениваю стратегию" (когда сам торгую) тоже не по графику, а по таблице: чем синее цвет фона ячейки, тем настойчивее рекомендация "купить" этот тикер. Чем краснее - тем настойчивее рекомендация "продать". Вот, скажем, прямо сейчас он советует прикупить акций ZYXI и продать акций BMW. Но сам, зараза, пока выжидает - не покупает и не продаёт. :smile:  
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Артем, Во-первых, я никогда не говорил, что "С это плохой язык". Наоборот, я говорил, что C мой наилюбимейший язык на протяжении десятилетий. Во-вторых, Ваш пример вовсе не на C, а на C++, про который я писал в своей книге:
С языком всё просто – немного перефразируя Генри Форда: «Любой модуль SINT может быть написан на любом языке программирования при условии, что это язык C». И это почти не шутка: эффективность C сравнима с ассемблером, он пригоден для решения подавляющего большинства задач, поддерживается всеми платформами, удобен для программиста – удобен настолько, что искать что-либо лучшее просто не хочется. Причём именно C, но не C++, который был нами отвергнут из-за крайне неудачной реализации (я бы даже сказал «дискредитации») идей объектного программирования.
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Артем, Я, лапуль, байки на иностранных форумах не читаю, но со многими забугорными программистами был знаком лично. В частности, с человеком, который был признан лучшим программистом мира 1993 года. И даже с ещё более крутыми (но менее титулованными). Да и вообще, мне сам Кен Томпсон руку пожимал! :wink:

Я не знаю, какой там в Вашем представлении "вот такой подход к делу у ветеранов программирования", но у вас, нахватавшихся в своих университетах всякой дребедени, подход явно радикально иной. В самом деле: у нас, "ветеранов", просто крыша едет, когда язык пилюёт на явно объявленные программистом переменные, заводит вместо них свои (с теми же именами!) и работает по ним. Зашибися! А для вас это нормально? Надеюсь, в вашей долбаной "документации" сие гениальное действо подробно описано? Оно того стоит! :smile:  
getCandlesByIndex опа опа а что это у нас тут, getCandlesByIndex опа опа а что это у нас тут
 
Артем, Умница! Замечательная аналогия! Точность прогнозов синоптиков давно уже стала нарицательной. Я так и говорил ещё много лет назад: "Запустите свои сети на биржу, и пусть там торгуют. Когда разоритесь - скажете". :smile:  
getCandlesByIndex опа опа а что это у нас тут, getCandlesByIndex опа опа а что это у нас тут
 
Артем, Какая может быть "точность" при гадании на кофейной гуще? При случайных (а то и преднамеренных) задержках, при панике или эйфории юзеров и при всём прочем? Лично я выбрал алгоритм получше и подешевле. Чего и другим желаю.
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Артем, Я, милок, нередко ПИСАЛ документацию, и молиться на всякое дерьмо не намерен. На мой взгляд, это кретинизм, проявления которого тоже придётся компенсировать собственным кодом.
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Артем, Нет, не проходили. Лекции - да, частенько прогуливал, но средний балл у меня в институте был 5.00. И собственными мозгами допетрил, что если явно объявленную переменную подменяют какой-то левой своей, то это есть маразм.
getCandlesByIndex опа опа а что это у нас тут, getCandlesByIndex опа опа а что это у нас тут
 
Артем, Да ведь сказал фактически то же самое: если алгоритму окно требуется большое, то это плохой алгоритм. :smile:  
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
swerg, Ах, да - по выходу из цикла эта переменная всё-таки СУЩЕСТВУЕТ, только её значение "волшебным образом" изменяется с ID сделки тикера на ID самого тикера! И, поскольку в начале функции стоит:
Код
 j=N;            -- невозможное значение индекса тикера
 for i=0,N-1 do       -- цикл по тикерам (поиск нужного)
  if a[i][0]==n.sec_code then j=i;break;end;end;
 if j==N then goto q;end;   -- тикер не найден
 i=j;            -- компенсация глюка с переменной цикла
то, очевидно, в циклах используется НЕ ТА i и НЕ ТА j. А это уже просто гимн языку!
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
swerg, Да в гробу я видел ТАКУЮ "документацию" - это дерьмо пущай умники читают.

Справка для особо одарённых:
1. Это НЕ ЕСТЬ "variable automatically declared by the for statement and is visible only inside the loop" - переменная явно объявлена в самом начале функции:
Код
function OnTrade(n)   -- обработчик прерывания по приходу сделки
 local i,j,k,s;   -- вспомогательные переменные
2. Эта переменная видна НЕ ТОЛЬКО в теле цикла и активно используется в теле функции.

3. У нормальных языков (С) такие локальные переменные заводятся в стеке и до выхода из функции ни одна сволочь не имеет права её уничтожить, а у криворуких бездарей, ессно, "typical idiot's mistake".
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Мудифицировал код:
Код
k=j;
F:write("Первая сделка i="..i..", j="..j..", k="..k.."\n");
goto qq;end;end;
...
::qq::
j=k;
::LSetTradeData::
F:write("i="..i..", j="..j..", N="..a[i][12][0][0].."\n");
Результат:
Первая сделка: i=1181, j=1, k=1
i=1181, j=1, N=1

Заработало, блин! УЖАС!!!
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Nikolay, Проблемы ЕСТЬ, и я их ПЕРЕЧИСЛИЛ. Более того: тот самый счёт, которого у этого придурка "нет" - это именно МОЙ счёт, и он отображается в диагностике ПРАВИЛЬНО, и при старой технике формирования айдишек транзакций он его прекрасно находил (а  второго брокера и сейчас прекрасно находит! Ну, а уж про порчу переменных у меня просто слов нет - как можно изуродовать ассемблерный JMP, чтобы он стал выдавать такую херню?!
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
В гроб меня вгонит этот "один из хороших языков"! :smile:

Оформляю свой последний алгоритм для скрипта (автоудаление заявок по таймеру, алгоритм я где-то выше описывал). Поменял алгоритм генерации транзакций на тот, который посоветовал Игорь М. У одного брокера (версия Квика 8.11.0.66) заявки принимаются нормально, у другого (8.7.1.3) после отправки транзакции выскакивает: "Указанный счёт депо не найден". Какой, в задницу, "счёт депо"?! Я ваще не знаю, что это такое!

Приключения на этом не кончились (а только начались). У того брокера, у которого заявки всё-таки принимаются, начались приключения в OnTrade.
Вывожу отладочную печать на входе:
OnTrade: transID=744549 OrderID=21985300239 Trade=373210739
Всё правильно, именно такой transID и был отправлен.

Теперь я начинаю искать эту транзакцию в массиве сделок данного (i-го) тикера:
for j=1,a[i][12][0][0] do
...
в этом массиве сейчас только ОДНА строка, сформированная функцией подачи заявки:
Код
j=a[i][12][0][0]+1;      -- количество заявок для тикера увеличилось
a[i][12][0][0]=j;      -- записываем количество заявок в паспорт
a[i][12][j]={};      -- массив паспортов сделок
a[i][12][j][0]=A.TRANS_ID;   -- ID заявки (пока транзакции) в системе
a[i][12][j][1]=0;      -- сделок по этой заявке ещё нет
a[i][12][j][2]=n;      -- количество оставшихся лотов по заявке
a[i][12][0][1]=C+10;      -- счётчик 15-секундных тиков до закрытия заявок
Смотрим - и в самом деле:
F:write("i="..i..", j="..j..", N="..a[i][12][0][0]..", 0="..a[i][12][j][0]..", 1="..a[i][12][j][1]..", 2="..a[i][12][j][2].."\n");
Результат:
i=1181, j=1, N=1, 0=744549, 1=0, 2=1

Теперь смотрим, наша ли это заявка (здесь, как водится, начала выдрипываться динамическая типизация - пришлось завернуть в tostring):
Код
if tostring(a[i][12][j][0])==tostring(n.trans_id) and a[i][12][j][1]==0 then 
 F:write("Первая сделка: i="..i..", j="..j.."\n");
 goto LSetTradeData;
end;      -- конец условия совпадения заявок
end;      -- конец цикла поиска
И снова всё прекрасно:
Первая сделка: i=1181, j=1

А теперь прыгаем на LSetTradeData, и первым же делом ставим печать:
::LSetTradeData::
F:write("i="..i..", j="..j..", N="..a[i][12][0][0].."\n");
Результат:
i=1181, j=1181, N=1

Лично у меня нет слов в нормативной лексике! :sad:  
getCandlesByIndex опа опа а что это у нас тут, getCandlesByIndex опа опа а что это у нас тут
 
Александр Волфовиц, Так делайте на тесте - получайте текущие значения не из TTT, а из файла. Я на раннем этапе разработки скрипта именно так и делал.
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Артем, Чтобы узнать, что яйцо тухлое, не обязательно съесть его целиком.(с) Вы возразите хоть полслова по существу сказанного мною? Очень сомневаюсь. Ибо сказано вполне профессионально. :smile:  Я знаю о нейросетях ДОСТАТОЧНО.
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Артем, И что? Я тоже могу "писать книги, программировать на декларативных языках, и делать арифметику в уме до пятизначных слагаемых". Пушкиным мне всё равно не быть, даже близко, как и всем этим GPT-12345. Вон, про Глубокого Голубого тоже бурные ахи-вздохи были, а потом в Джакарте Фриц всего лишь на 90-МГц пне вздрючил его, так его сразу и разобрали на запчасти.

В любом случае, всё это какая-то статистическая обработка чего-то там, а потому она может воспроизводить лишь поведение СТАДА - на творческие, нестандартные решения все эти нейросети неспособны по определению.

Бегло полистал Вики: Чат-боты... "технология пока очень далека от реального применения в здравоохранении"... Разработчики опасаются, что GPT-3 может быть использована для спама, домогательств, радикализации, дезинформации или астротурфинга... GPT-3 демонстрирует «значительные улучшения» в создании экстремистских текстов по сравнению со своим предшественником GPT-2... "многие ожидания по поводу способностей больших языковых моделей вроде GPT-3 являются совершенно нереалистичными"... пытаться построить интеллектуальные машины путём масштабирования языковых моделей — всё равно что строить высотные самолёты для полёта на Луну...

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

К нейросетям я всегда относился полунасмешливо, и ещё за много лет до того, как сам начал торговать, предлагал их сторонникам: "Запустите свои сети на биржу, и пусть там торгуют. Когда разоритесь - скажете". :smile:  
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Артем, Не стоит, сударь, не стоит. Вы для меня не авторитет, Вы для меня НИКТО. А что Lua есть глючное убожество, говорится в доброй половине моих комментариев на этом форуме ДОКАЗАТЕЛЬНО говорится, а не голословно "один из хороших языков".
getCandlesByIndex опа опа а что это у нас тут, getCandlesByIndex опа опа а что это у нас тут
 
Артем, Нет тут никакой "аналогии с астрономией" - никакого "каталога свечей" не требуется. Те, что ещё не формированы, покрыты мраком неизвестности, а те, что уже были, покрыты пылью времён. Таким образом, "выявление новых корреляций" (к слову, скрипту никакие "графики" нафиг не нужны) есть либо "гадание на кофейной гуще", либо "преданья старины глубокой". Моему алгоритму глубоко плевать на "данные раз в неделю/месяц/квартал", он не только ничего не "обрабатывает между закрытием вечерней сессии и открытием утренней" - он даже во время торгов, в основном, спит. :smile:  
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Артем, А я начинал писать робот, хорошо представляя, что именно и как именно он будет делать. В процессе написания, конечно, кое-что поменялось, но базовые принципы остались в неприкосновенности. Ежу понятно, что "алгоритмический робот может надёжно торговать в плюс", а вот нейронный робот" сдохнет, а не справится.

А я как раз знаю язык в полной мере. ВСЁ, что я хотел написать, я написал с его помощью, ВСЁ, для чего он предназначен, реализовал. Куда ещё "полнее мера"? А уж сравнивать такое убожество, как Lua хотя бы со станком с ЧПУ и вообще смешно. Хуже языка мне пока что не попадалось!
getCandlesByIndex опа опа а что это у нас тут, getCandlesByIndex опа опа а что это у нас тут
 
Артем, Ну, если "программа с миллионами свечек в обработке", то это у точно бездарь писал! Гарантия 146%!
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Артем, Ответьте на вопрос! Есть такие? Нет? Тогда ИМЕННО Я И ЕСТЬ "эксперт в Lua"! Я на нём ПОЛНОСТЬЮ реализовал всё, что я хотел. Алгоритм давно уже торгует лучше меня, а недавно я признал его безоговорочное превосходство, я больше не хочу "путаться у него под ногами". Вот и сегодня он приподнял мой портфель на полпроцента. Наверное, до конца сессии ещё чт-нибудь наковыряет. Что мне ещё желать? НА КОЙ мне читать инструкцию? Мне больше НЕЧЕГО оттуда почерпнуть!

На ассемблере Z80 не писал никогда (писал н трёх других ассемблерах). Равно как и н Прологе. На Фортране последний раз писал лет 30-40 назад. На C - да, "эксперт". Но не на С++.
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Артем, Да вот как раз я-то язык знаю. Я чуть ли не единственный на этом форуме, кто написал скрипт на девственно чистом Lua. Есть ещё такие? Поднимите руки! Нет? Тогда НЕ ВАМ что-то мне говорить о знании языка. :wink:  
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Артем,Да мне СРАТЬ. что там в головожопу создателям этой "документации" вдарило. Строка - это то, что я сказал! Была, есть и будет.
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Артем, На заборе тоже много чего написано. Если составлять описание здешних глюков, наверное, многотомник получится - и хоть что-нибудь было бы описано! А читать про строки, да еще "целиком и полностью"... Строка - это непрерывная последовательность элементов (например, байтов), оканчивающаяся терминатором. Точка. О ЧЁМ здесь вообще можно читать? КАКИМ ОБРАЗОМ чтение всей этой бредятины может поднять "ваши познания и умения находятся на уровне повыше плинтуса"? Из любого дерьма, из любой элементарщины проблему сделают...
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Nikolay
Цитата
Не стесняетесь пользоваться http://lua-users.org/wiki/SampleCode, раздел Serialization.
Полистал. Не увидел вообще ничего, заслуживающего внимания. Я что-то пропутил?
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
TGB, А каким боком здесь Владимир? По какому "поводу скорости вывода жду комментария Владимира"? Откуда ему знать?  :smile:

Но, раз просят, комментирую... вот,глаз зацепился за "table.sort(s)" - у Владимира свой собственный сортир, супер-пупер-эффективный. :smile:

А ещё глаз зацепился за "это ~5000 строк" - у Владимира весь скрипт 736 строк - это со всеми комментариями и пустыми строками (37738 байт). А "по поводу скорости" 20 млсек - это очень мало: Владимир оперирует секундами или ещё более медленными интервалами. :smile:  
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
BlaZed, Но ведь Артём говорил про теоретическую возможность. У меня скрипт, возможно, никогда не выдавал более 100 транзакций за сутки, но теоретически он способен за один вызов полуторасекундного обработчика послать заявки на покупку или продажу ПО ВСЕМ тикерам, за которыми он следит, а таковых у него сейчас более тысячи. Конечно, вероятность подобного почти равна нулю, но всё же только почти. :smile:  
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Передаётся же строка, господа! А потому пришпилив первыми одним-двумя символами ID скрипта, мы получим гарантированную уникальность при любом их количестве (если гарантирована их уникальность для одного скрипта).
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Артем, Мало, что ли? Когда я пользовался датчиками случайных чисел, они всегда у меня были 16-разрядными (правда, алгоритм генератора был "совершенный" - два алгоритма генерации псевдослучайной последовательности в случайные моменты времени перещёлкивались друг на друга). А иногда требуется как раз "случайность без случайности" - например, когда я генерил графы для задачи коммивояжёра (с равномерным распределением и с иерархической кластеризацией), то во втором случае у меня была чистая случайность, а вот в первом последовательность "начиналась каждый раз с одного и того же числа", то есть каждый граф большего объёма содержал в начале любой из меньших. Генерил графы от 3 до 123456789 узлов,, проверял - НИ ОДНОГО повтора координат! А здесь что? Обеспечить уникальность транзакций за одну несчастную сессию? У меня их несколько десятков. Ну, сотен - курам на смех! И самое главное - почему обеспечение уникальности идентификаторов транзакций ложится на юзера? Ведь для Квика это просто порядковый номер строки в его таблице - даже искать ничего не надо! Так не проще ли сделать ID=sendTransaction, а в случае неудачи возвращать 0? И волки целы, и овцы сыты.

BlaZed, Во, блин! Что ещё за dt? И что лучше, dt или os.time? :smile:

Ага, понятно. Не, я, скорее всего, буду счётчик инициализировать на старте системным временем, а потом инкрементировать и по выходу не сохранять. В общем, так, как подсказал Игорь.

Посмотрел я сейчас на свой код в плане того, чем я пользуюсь из предоставленных возможностей. Картина такая:

1. Файловые операции (open, close, write) - претензий нет. Ну, вместо read сидит какой-то F:lines(), но работает. Не видел, правда, seek, но я его и не искал, он мне не нужен. getScriptPath тоже работает.

2. Работа со строками (find, sub) - претензий нет. Особенно хорош string.format - благо, передран один в один из sprintf. :smile:

3. Прерывания (коллбеки). Использую только OnStop и OnTrade как минимально необходимые. Глючат оба: у первого иногда пропадает управление, у второго прерывания приходят пачками. И то и другое вылечил, пользуюсь. Кстати, у меня четверть, если не треть всего кода написана именно для компенсации разных глюков именно поэтому я пользуюсь чистым Lua и крайне неохотно включаю любые "библиотечные" возможности.

4. Работа с окнами (AllocTable, AddColumn, Clear, CreateWindow, DestroyTable, InsertRow, SetCell, SetColor, SetTableNotificationCallback, SetWindowCaption, SetWindowPos). Глючат все (именно обращение к ним в OnStop вызывает потерю управления). Охренел в своё время от необходимости вызова этих функций именно в определённой последовательности, иначе "просто не работает". Вылечил, пользуюсь, терпимо. DeleteRow вообще выкинул нафиг, а редко встречающееся полное исчезновение текста в ячейках таблице лечу по клавише Enter.

5. Преобразование типов (tonumber, tostring) - претензий нет. Но за динамическую типизацию, замену операций булевой алгебры на убожество типа bit.band руки-ноги бы повыдёргивал разработчиком! А уж за убийство типа integer... ТАКОГО маразма я ещё не встречал ни в одном языке - Lua первый!

6. Работа с таблицами (getItem, getNumberOf, getParamEx). Коряво, но работать можно. Первыми двумя пока ещё не пользовался - они нужны только для снятия заявок, для работы только с таблицей "orders", чтобы не использовать глючного OnOrders.

7. Библиотеки. math.random приказал долго жить (вместо него, видимо, появится os.time), а math.floor использую в функции обрезки концевых нулей после запятой (идею подсказали на этом форуме). Убей, не понимаю, что он делает, но работает прекрасно!

8. Стандартные конструкции: с message вопросов нет (alert - он и в Африке alert), sleep используется обычным образом в main (150 мс - при этом задержки реакции на мышку и клаву почти незаметны), а на работу (отсутствующей в описании языка) loadstring просто не нарадуюсь!

Общая оценка: удовлетворительно. :smile:  
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Игорь М, Угу, сенькс Я бы и использовал, но первым напоролся на random, и уж такой подлянки я от него, конечно, не ожидал. :smile:  
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
TGB, Это не проблема: результаты у меня по выходу записываются в файл, а по запуску читаются, так что можно этот счётчик сбрасывать и потом читать - прямо как оператор Lua через loadstring. Я так и делаю для сумм свободной налички по валютам, номера счёта, кода клиента и ещё для чего-то. Только ведь это стандартнейшая операция! Это же делают все без исключения! Неужели нет чего-то без сохранения? Примерно такого, чего я ожидал от math.random. По-нормальному это вообще должно бы быть возвращаемое значение, как с файлом или диспетчером памяти: возвращаем дескриптор - и всё!
Страницы: Пред. 1 ... 3 4 5 6 7 8 9 10 11 12 13 ... 19 След.
Наверх