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

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

Страницы: Пред. 1 ... 25 26 27 28 29 30 31 32 33 34 35 ... 41 След.
Какая версия луа используется по умолчанию
 
Дмитрий, Не знаю - посмотрите в настройках последний пункт (Lua-скрипты). Мне, в общем-то, до лампочки, сейчас полистал отличия 5.4 от 5.3 - ни одно не интересует.
Какая версия луа используется по умолчанию
 
Во дела! У меня у одного из брокеров именно 8.11.0.66. Никогда не обращал внимания - тупо давил на "запустить". Оказывается, запускалась 5.3.5. Ну и ладно. :smile:  
Отладка QUIK 8.13
 
У Квика, работающего через одного моего брокера, версия 8.8, через второго - 8.11, у моего друга - 8.10. Это не считая ещё пары цифирей после того. На форуме обсуждается 8.12, которая, по слухам, "страдает падучей" и работает хуже всех предыдущих, но нет предела совершенству! :smile:  
Что бы это значило?
 
Артем, Так не пишите, сударь, не корчите из себя профи, не идёт Вам это - у Вас же всё написано НА ЛБУ! :wink:  
Что бы это значило?
 
Артем, Во-первых, это я сделал по рекомендации сотрудников арки, и до сегодняшнего дня даже не подозревал, что QTABLE_DEFAULT_COLOR тоже равна -1 и даже о том, что она вообще существует. И с какой радости я должен "два последних делать такими же как два предыдущих", если меня вообще не интересует, что там? Ещё в октябре я писал:

Некоторые функции допускают необязательные аргументы (например, основание системы счисления в tonumber), а другие - нет. Так,
SetColor (iTable, iRow, iCol, BCol, TCol)
НЕ работает, а если подставить туда два дополнительных аргумента , SelBCol, SelTCol, равные QTABLE_NO_INDEX (-1) - начинает работать! Поскольку мне совершенно не были нужны выделенные ячейки, до необходимости переделать вызов в
SetColor (iTable, iRow, iCol, BCol, TCol, SelBCol, SelTCol, -1, -1)
без подсказки от службы техподдержки я бы просто не додумался НИКОГДА!
Что бы это значило?
 
Артем, Источник проблемы НЕ найден, и ему явно не полгода, а гораздо больше. Меня этот глюк больше не интересует, и никаких "багрепортов" он не вызывает - система работает нормально, только таблица пустая, а первые три аргумента (точнее, третий, четвёртый и пятый) НИКОГДА не равны -1. Вот два последних равны ВСЕГДА - мне они нафиг не нужны, но без них эта хреновина "просто не работает".
Что бы это значило?
 
Старатель, Про QTABLE_DEFAULT_COLOR первый раз слышу, но эффект именно такой: "текст во всех ячейках пропадает и перекрашивание ячеек бесполезно". Не помогает даже Clear - только DestroyTable+AllocTable! Остаётся выяснить, почему сия хрень возникает чрезвычайно редко - тем более, что никто никаких QTABLE_DEFAULT_COLOR ей не задавал. У меня лично мало сомнений, что эту QTABLE_DEFAULT_COLOR нужно придушить в зародыше!
Что бы это значило?
 
Артем, Меня не интересует, заметили Вы что-либо или не заметили. Эта ошибка СУЩЕСТВУЕТ (хотя проявляется довольно редко - менее 10 раз за всё время). Никакого "слишком высокого количества SetCell и т.п. в секунду" у меня нет - всего там порядка 10-20 тысяч ячеек, а на экране видны и вообще около тысячи Что там "начинает лагать" меня тоже не интересует - пропадают данные! Вернее, не пропадают, а становятся невидимыми - скрипт и после этого работает нормально. А скрин получающейся картинки я приводил. Обновление данных у меня раз в полторы секунды. В принципе, меня эта ошибка больше не интересует - научился лечить. Но для софта Квика это недопустимо.

В коде у меня НЕ МОЖЕТ происходить никакой "потери данных" - они находятся В ДРУГОЙ таблице и время от времени просто передаются в таблицу визуализации с помощью SetCell и SetColor. Реальная же торговля идёт именно по данным этой самой "другой таблицы", и она нормально работает даже при таких "весёлых картинках".
Отладка QUIK 8.12
 
Незнайка, Язык действительно плохой (мало того: хуже языка я пока ещё не встречал), но именно я (и,насколько я успел заметить, ТОЛЬКО я) говорил, что писать торговый скрипт нужно именно на чистом Lua. Что я и сделал. При этом нашёл и исправил множество своих ошибок и написал "компенсаторы" для ошибок чужих. И сейчас мне плевать, что пропадает текст, и даже плевать почему он пропадает - даванул на Enter, и текст восстановился. Мне также плевать, что прерывания приходят пачками и вразнобой - последняя версия алгоритма вполне справляется и с этой неприятностью. Я написал заглушку и на последний известный мне глюк - когда при копании в таблице orders getitem вдруг возвращает nil, но эта ситуация (с необходимостью заглядывать в эту таблицу) пока ещё так и не проявилась, как не возникла ещё и ситуации с необходимостью снятия заявки. Возможно, там и имеет место моя криворукость и мои ошибки, но на сегодняшний момент я НЕ ЗНАЮ, какие ошибки мне ещё исправлять в моём коде,так что придерживаюсь гипотезы, что их там нет. :smile:  
Отладка QUIK 8.12
 
Артем, Это называется "криворукость", а не "нормальная ситуация". Андрей говорит, что криворукость эта сознательная, и такое предположение весьма вероятно. Не исключено, что ситуация ещё хуже: "верхи" уже не только не хотят, но и не могут. Да, "зависимостей в коде много", но никакая зависимость не может приводить к глюку, когда в таблице вдруг пропадает текст. Или когда на одно событие приходит целая колода прерываний. Или когда система не успевает реагировать на действия юзера. Так что, боюсь, вариантов остался только один: "выбросить на помойку всю проделанную работу и делать заново". Ещё 10 лет назад я писал аналогичную заметку (про браузеры), в которой были таковы слова:

Тупорылые успели так загадить клиента, что знаменитые Авгиевы конюшни выглядят на этом фоне чуть ли не благоухающим садом! Одних только лохотронов о браузере (о каждом из которых можно писать многотомные опупеи) бесчисленное множество - файловая система и менеджер вкладок, плагины и расширения, меню и библиотеки, редактирование и поиск, графика и анимация, асинхроность и синхронизация, тормоза и глюки, не говоря уже про более конкретный зверинец: DOM, jQuery, GWT, AJAX, PHP, SEAM, Wicket, Greasemonkey, Silverlight, и прочую мерзость. Но ведь нужно же когда-то заканчивать статью!

Самое страшное в нынешней ситуации - стадо паразитов, присосавшихся к клиенту, уже настолько отупело, что искренне считают себя программистами, искренне полагают, что они в чём-то состоятельны, и даже что они решают какие-то проблемы! Иными словами, они не только не хотят, но уже и не могут сделать что-либо полезное для конечного пользователя, даже если бы вдруг захотели - их тупость давно уже прошла "точку невозврата". Их публикации давно уже представляют собой сборники маразмов уровня пациентов психиатрической лечебницы, при этом их не передёргивает от омерзения к самим себе. Примеры:
- Сейчас, когда во многих организациях стандартом остаётся ещё доисторический IE6, не поддерживающий большую часть современных технологий, трудно говорить о прогрессе.
- Браузер, поддерживающий все современные стандарты и технологии веба, развяжет руки создателям сайтов, сейчас вынужденных оптимизировать свои сайты под разные стандарты и под старые технологии, зачастую теряя функциональность и отказываясь от внедрения новых возможностей.
- Браузер предлагает огромное количество новых возможностей, это громадный шаг вперёд. Сравнивать его с невнятными предыдущими поколениями даже как-то неуместно, настолько в нём много нового.
- Революционного в нем то, что это браузер, который не вызывает отторжения (!).
Дополнительная вонь - обсирание предшественников. То же самое будет говориться и о нынешних сверкающих образцах, и очень скоро - как только появится очередная версия. Быдло все схавает!

Эй, юзеры! Остался кто-нить живой? Может быть, ещё не поздно? Может быть, ещё имеется какой-то шанс спастись от нашествия тупорылых? Я обращаюсь даже к зомбированным: неужели вам не страшно - хотя бы за ваших детей?! ПРОСНИТЕСЬ, ГОСПОДА!!! Ловите последний аргумент, последний шедевр от тупорылых в этой статье:

Итак, какие же требования предъявляют пользователи к браузеру? В общем-то, самые обычные: простота, удобство работы, скорость, надежность и безопасность.
ДО СИХ ПОР?! При таком ГРОМАДНЕЙШЕМ времени и объеме тестирования, туевой хуче версий и "конкурирующих" браузеров, по-прежнему не реализованы требования, предъявляемые ещё в прошлом тысячелетии?! И зачем нам новая функциональность, если до сих пор не реализована старая? Если браузер не поддерживает стандарты, то его место на помойке - любые рассуждения на эту тему просто смешны. Если браузер падает больше двух раз в месяц, то его место на помойке - любые рассуждения на эту тему просто смешны. Если браузер не может даже нарисовать сраную ломаную в сраной статике, то его место на помойке - любые рассуждения на эту тему просто смешны. Если Microsoft или Google до сих пор не смогли наскрести денег, не смогли нанять пяток приличных программистов, чтобы те написали, наконец, НОРМАЛЬНЫЙ браузер, то их место на помойке - любые рассуждения на эту тему просто смешны.

Написано в 2011 году...
Отладка QUIK 8.12
 
Артем, Где Вы выкопали здесь "злой умысел"? Ничего личного - просто бизнес.(с)  :smile: Ещё лет 30 назад я видел на каком-то форуме шароварщиков, как более опытный поучал молодого коллегу: "Не вздумай исправлять баги! Не вздумай! Потом будешь выпускать релизы, и за каждый будешь получать деньги!". А некомпетентностью можно объяснить разве что Ваше поведение, но никак не поведение подавляющего большинства всех [софтверных] компаний.
Отладка QUIK 8.12
 
Андрей, Надо чётко понимать куда более глобальную вещь: это касается не только какого-то несчастного Квика - это касается ЛЮБОГО софта! По крайней мере, любого софта разработки XXI века. И классический пример такого подхода - Билл Гейтс, котрого почему-то называют вовсе не "моральным уродом", а, напротив, весьма уважаемым человеком. А потому не "ваш КВИК", а ваш КОМП никогда не будет работать нормально просто потому, что лохов нужно доить - тем более, что они с радостью позволяют это делать.

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

1. Меня не интересуют "данные, которыми располагает сервер QUIK" - мой скрипт работает только с теми данными, которыми располагает он сам.

2. Моему скрипту пофиг, "свежие ли значения мы имеем или это мусор, оставшийся со вчерашнего вечера". Ему также пофиг, закрылась сессия или нет. Какими бы ни были данные в ТТТ (а меня там интересует только цена последней сделки), они не меняются при отсутствии торгов и потому не вызывают никаких действий. Начали меняться - торговля пошла. Причём не просто пошла, а именно по этому тикеру. Вон, сейчас у меня включён скрипт для торговли на СПБ, так там до 10 утра торгуется лишь жалкая кучка тикеров. В 10 часов подключится партия рублёвых акций, а в 6 вечера подойдут буржуины. Скрипт же я вот включил где-то в 7-8 утра, так он и работает, и НА ДАННЫЙ МОМЕНТ подавляющее большинство данных в ТТТ именно вчерашние. Ну и что?

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

4. На кой мне флаг "это всё, что есть сейчас"? Ведь через секунду это будет уже далеко не "всё". А в таблицах на кой мне флаг об окончании загрузки? Я вот начал на днях залезать в таблицу 'orders' - очень редко, для того, чтобы снимать заявки, которые долго висят и по которым не было ни одного OnTrade - так мне тоже до лампады на все эти флаги - либо я нашёл свой тике в таблице, либо нет. Тем более, что она ведь тоже меняется!
Событие получения данных всех таблиц и графиков после подключения к серверу
 
Старатель, Ну, я "тут про какую-то ТТТ начинаю петь".  :smile: Это и есть точка отсчёта, от которой будет отталкиваться скрипт.(с) У кого-то там торги идут на бирже, а у меня торги идут прямо в Квике, и данные ТТТ я считаю априори актуальными и достоверными. Чего и другим советую вот уже который месяц. Как тут уже говорили, человек, торгующий в Квике вручную (через стаканы) именно так и поступает. Так с какой радости скрипт должен вести себя иначе?

Про "статичные данные" и "начальный момент" не понял. По идее, все данные должны быть динамичны, в любой момент.  :smile:  
Событие получения данных всех таблиц и графиков после подключения к серверу
 
Nikolay, А я давно говорил: не связывайтесь с сервером - это проблемы самого Квика! Работайте только с Квиком, тогда и код упростится до неприличия, и надёжность будет выше всяких похвал, и никаких API не потребуется.
Событие получения данных всех таблиц и графиков после подключения к серверу
 
Михаил Понамаренко, Можно сделать так: первую минуту после запуска (ну или две, три, четыре) скрипт "прогревается" и ничего не делает. А за это время и юзер может осмотреться (мало ли - может, файл входных данных не считался или оказался бракованный или ещё что случилось), и все нужные таблицы гарантированно загрузятся.
Событие получения данных всех таблиц и графиков после подключения к серверу
 
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:  
Страницы: Пред. 1 ... 25 26 27 28 29 30 31 32 33 34 35 ... 41 След.
Наверх