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

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

Страницы: 1 2 След.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
nikolz, вот этот пост уже не твой, потому что мой код на ГитХабе не заметили... ОК, бывает...  
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
nikolz написал:
Roffild , если не трудно ,
дайте ссылку на пакет  Alglib ,
который содержит методы машинного обучения.
и перечислите, какие методы обучения в этой библиотеке есть.
Спасибо.
https://github.com/Roffild/RoffildLibrary/tree/master/Include/Roffild - я запихал лес из Alglib в Java и Python. И в QLua конвертировать не проблема. Я использую ВСЕ языки программирования одновременно.

Это только у Вас объединение QLua с Python и C++ вызывает боль и гордое повторение мантры "яжпрограммист".

https://www.alglib.net/translator/man/manual.cpp.html - всё к QLua можно прикрепить. Там и К-Кластер, простой perceptron, случайный лес и много чего ещё...
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
Владимир написал:
Roffild, Алгоритмист я, придурок. Тыщу раз об этом говорил.
А задачку про "Титаник" решить не можешь.
Только к эти алгоритмистам не приставай - сожрут.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
Nikolay написал:
Нет, математики их не заменят. Но когда программист не знает элементарную математику, это гораздо хуже, если он не знает Git. Тем более, что сейчас Git, Docker, Cuber. А через несколько лет скажут что так не модно. Одно то, что сейчас почему-то все решили, что приложение - это браузер и больше ничего не надо, уже вызывает отторжение.
Настоящие математики на MatLab,R, Python
И не о какой оптимизации они не слыхали.

Языки программирование не отличаются от естественных в плане описания.
Знать ботанику нужно для программы Селекция.
Знать юридические документы нужно для программы Кадры.
Математика выше школьной нужно в ограниченном круге. А исходники одних только синуса и косинуса - это заранее просчитанная таблица.

А добавить котика на страничку можно даже без школьной математики. А вот без Git и Docker этого котика никто не увидит.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
Nikolay написал:
Сюр. Потому как есть алгоритмист, который пишет код, выполняющий то, что могу понять несколько людей на планете. Кто проверять то будет?
Цитата
Владимир написал:
Nikolay, Ну, ваще-то алгоритмист пишет не код, а описание алгоритма. :: Я всегда считал себя именно алгоритмистом, но писал и пишу довольно много кода - только потому, что я ещё и программист немножечко.
...сейчас они придут к мнению, что "программисты" не нужны и "математики" их полностью заменят :D
И  Владимир, ещё раз официально признал, что ОН "- это кто угодно, только НЕ программист."

Цитата
TGB написал:
Интересно, временами, наблюдать битву титанов, когда "титанник", практически, уже почти утонул  :: .
Да я сам в шоке, на какую правду-матку я их развел :)
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
Nikolay написал:
Справедливости ради, знание современных систем хранения версий - это ни в коем времени не характеризует кого-то как программиста.
Я когда начинал, мы учились на бумаге. В первую очередь просто алгоритмы. Потом код на бумаге. И ничего, абстрактное мышление хорошо развивает.
То что сейчас без знаний Git не считают кого-то полноценным программистом, то это сюр, т.к. это знание ничего не дает.
Это не "сюр", а требование к качеству кода, который должен проходит ревью.
Так что есть минимальные требования к современным программистам для работы в команде.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
nikolz написал:
Ваша ссылка на сайт - это сайт для чайников по обучению МО на питоне.
Вы научились собирать из готовых кубиков на питоне программу,
которая, как "черный ящик", ищет решение регрессионной задачи.
Прекрасно.
-------------------------------------
Но, если для Вас парсинг и МО - одно и тоже ,
тогда покажите Ваши результаты машинного обучения в LUA, на указанных Вами CSV файлах.
------------------------
или хотя бы разверните TORCH на Lua для начала.
Для меня нет трудностей в использовании Alglib на LUA.
Но я скорей всего Python к QLua полностью прикручу, когда Биржа очухается.

И если у тебя из МО получается "черный ящик"... ну... посмотри его код хотябы...
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
Владимир написал:
Roffild, Лапуль, любому дебилу понятно, что пишущий коммиты и багрепорты - это кто угодно, только НЕ программист.  

Лапуль, первый раз в жизни слышу, что CSV нужно ПАРСИТЬ! Да у меня весь "малый Синдбад" работает именно с CSV! Именно им, например, я обрабатывал тиковые массивы для отладки своего скрипта, о которых писал.  Для справки, лапуль: CSV - это И ЕСТЬ таблица! Для Синдбада (даже малого) это таблица НЕОДНОРОДНЫХ кортежей, с которыми всё ваше стадо не умеет работать даже на уровне постановки задачи - вы из любого говна проблему сделаете, ибо вы ТУПОРЫЛЫЕ!
Лучше сразу признайся, что ты даже не знаешь значения слов "коммиты" и "багрепорты"  :shock:

Такого фееричного слива я не ожидал :lol:

Чтож, Владимир, официально признал, что ОН "- это кто угодно, только НЕ программист."
Не знать, как отправить коммит... мда...
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
В Квике как раз из CSV в таблицу загнать можно.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
nikolz написал:
странное у Вас предложение.
Вы предлагаете соревнование на питоне.
Если очень Вам неймется, то тогда предлагайте на LUA.
Форум-то про КВИК, а в нем лишь LUA.
CSV можно парсить только на Питоне?
А Владимир нам парсер на ASM покажет, если Мираж действительно его...
Цитата
Владимир написал:
Roffild , Лапуль, Вы же сами тут говорили про свои коммиты, да багрепорты - ну какой Вы после этого, в задницу, "программист"? Вы НУЛЬ! Абсолютный нуль.

nikolz, Ах, "МО" сиречь "машинное обучение"? Впрочем, неважно - в любом случае это есть полное и абсолютное говно. А г-н Roffild нам ярко демонстрирует РЕЗУЛЬТАТЫ этого "обучения".
Дед, "коммиты" и "багрепорты" - это не свечки от геморроя! Современные программисты их по-другому используют!
Не сливайся так быстро...
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Я фанат современного программирования, который рос на "Форуме.Исходников", споря с программистами медицинского оборудования и с создателями Alglib. Я исходный код воспринимаю быстрее обычного текста.

И тут явился Владимир, который БЕЗ ДОКАЗАТЕЛЬНО наплёл, что он крут и Я ему неровня! Чтож... отвертеться у него не получится!

Задача начального уровня для МО: Найти выживших с Титаника
train.csv - данные для обучении модели
test.csv с gender_submission.csv - тестовые данные с результатом

Нужно для train.csv получить свой "gender_submission.csv" и отправить в Kaggle на автоматическую проверку.

Мой результат с 77.99% на простой 4-х слойной сетке. Точную ссылку дам только после Владимира.

Владимир, отказ и увиливание от решения этой задачи будет расценено, как полная капитуляция и потеря права хоть чё-то вякать про программирование!

Проверочный файл можешь закачать куда-нибудь (админы этого форума додумались ZIP запретить) или сразу на Kaggle. И исходники решения тоже выложи, если твоя модель больше 80% выдаст.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
nikolz написал:
и еще...
TORCH (факел) программа машинного обучения содержащая практически все, что из этого сейчас модно.
---------------------
Гугл взял пакет TORCH7 для луа и сделал оболочку для питона.
-----------------
разработчики TORCH7 взяли пакет программ для научных исследований на Фортране и сделали оболочку для CИ.
-------------------  
Прикольно.
Нет. Pytorch - Caffe2
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
nikolz написал:
50 лет - это тот срок, через который методы,  
известные в науке, доходят до массового потребления.  
не... это в 2008г все алгоритмы на полную заработали.
Сейчас за 30 дней после публикации на АрХив алгоритм разлетается по всем фремворкам. В месяц могут кучу новых алгоритмов на АрХив выложить. Да, и засрали АрХив своим МО - народ уже бурлил по этому.

TensorFlow - Google
Pytorch - Facebook с фиксом классов TF
XGBoost и его модификации от Макрософта и Яндекса
...и я тоже накоммитил в этих проектах...

Владимир, поскольку ты всерьёз считаешь себя гением, то докажи это на Kaggle! Хотя бы стартовый "Титаник" осиль...
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
Владимир написал:
...Нет, лапуль, про Машинное Обучение я тоже не в курсе. Зато я в курсе, что обучение тоже УГРОБЛЕНО!
...И как, при работе этого самого "МО" комп успевает-таки отслеживать нажатие клавиш? Чо, УСПЕВАЕТ?! Большой успех молодого спортсмена! ::  
Да поняли мы уже, что бот для шахмат - это достижение для тебя. Считаешь, что алгоритмы не создаются...

Чувак, всё современное МО строится на алгоритмах, недоступных компам до 2000-х. "Градиентный спуск" может распознать тебя в московском метро и предсказать цену акций. "Случайный лес" строит цепочку условий. МО - это то, что обыграет Каспарова. Но ты до сих пор можешь сидеть в своей пещерке. Хотя в твоём возрасте уже сложно разбираться в алгоритмах МО...
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
Владимир написал:
Roffild, Лапуль, я же не спорю - криворукие бездари способны засрать и 32ГБ, и 64ГБ, и вообще всё, что им будет дадено - это же не поможет! Комп ВСЁ РАВНО не будет успевать реагировать на движения мышки или нажатия клавиш пользователей! А вот наш "Мираж", кастрированный до 16К ПЗУ и 4К ОЗУ (это и на программу, и на дебютный справочник, и на "операционку") с процессором КМ-86 ОФИЦИАЛЬНО выполнил норму КМС! Криворуким же бездарям НИЧЕГО не поможет!
И чё? Шахматы для древнего компа... без исходников...

На ASM можно выжать максимум в демосцене
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
Roffild написал:
*  и котики - двигатель прогресса!
О каких словах еще знает этот форум?
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
Владимир написал:
Roffild, Лапуль, я не спрашивал про "новое" - я спрашивал про ПОЛЕЗНОЕ! Когда комп с поистине ЧУДОВИЩНОЙ памятью и быстродействием не успевает реагировать на движения мышки или нажатия клавиш пользователей, это по-русски называется ПЦ! Повторяю вопрос: ЧТО ИМЕННО ПОЛЕЗНОГО для конечных пользователей сделало всё ваше стадо так называемых "программистов" за весь XXI век?
Тоесть ты тоже из тех придурков, которые не знают, как ОСи распределяют оперативку?
Я свои 32ГБ забиваю пополной, что ускоряет МО в разы.
Только крики про нехватку оперативы начинаются при попытки сыграть ГТА в 2-3 окна.
Своп вруби, если пенсии на оперативу не хватает.
Под Виндой 1 прога макс 64ГБ может поправу сожрать (я проверял).

Вообще именно контейнеры позволяют ограничить проге ресурсы компа - вот реальный мир!

*  и котики - двигатель прогресса! Мы достигли колоссальных результатов в области доставки контента в глаза и уши пользователя!

Для программистов - https://github.com

Для учёных - https://arxiv.org, но тебе туда нельзя из-за новых идей и алгоритмов... (по сортировке тоже много)
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Владимир, а если ты заплатил за то, что в свободном доступе на ГитХабе с лицензией BSD or GPL... мы то тут причем?

Это твоё поколение в закрытых лицензия погрязло. Права на название "Unix" до сих пор по рукам ходит...
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Владимир, а есть у тебя вообще критерий "новизны"? По твоей логике, твоё поколение тоже ничего не придумало:
Многие алгоритмы берутся из работ математиков 19века.
Аэродинамика - баллистика и наблюдение за птичками.
Жюль-Верн дал "чертёж" подлодки.
А первый компьютер собрала бабка Аида еще в 19веке!

А Грейс Хоппер исправила баг своими руками! - наши уже не могут так исправлять...

Антикитерский механизм (200 год до н.э.) раскрывает свои новые секреты

Так что хватит уже приписывать себе идеи других поколений!

Щас наши контейнеры изобрели - теперь софт независим от конфигурации сервера.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
 
Повторная подписка на свечи через CreateDataSource не работает на версии 9.2.3.15
 
Мда... большая текучка кадров в Арке...
Бесконечный цикл функции с заданным интервалом времени
 
Цитата
Владимир написал:
Я же русским языком спросил: что ваше стадо сделало ДЛЯ ЛЮДЕЙ? Какое им дело до ваших вонючих языков?
ДЛЯ ЛЮДЕЙ:
Цитата
...и он отправил это сообщение через Хром (или его клона) с Андройда или Винды...

А для говна твоего типа я ничего не сделал...
А такие как ТЫ, ничего не создали. Попробуй сам хоть что-нибудь создать. Стань же первым представителем свой касты "Г-программистов"!

Только прекрати уже использовать ПО, в которое Я багрепорты и коммиты отправил :D
Бесконечный цикл функции с заданным интервалом времени
 
Цитата
Владимир написал:
jQuery, GWT, AJAX, PHP, SEAM, Wicket, Greasemonkey, Silverlight
На 2021г: из Пыха Яву сделали, DOM и JavaScript улучшили, остальное выкинули из-за смартфонов.
Бесконечный цикл функции с заданным интервалом времени
 
Цитата
Владимир написал:
Повторяю вопрос: за все двадцать с лишним лет нынешнего века всё ваше стадо, вместе взятое, ХОТЬ ЧТО-НИБУДЬ полезного сделало? ДА или НЕТ?
...и он отправил это сообщение через Хром (или его клона) с Андройда или Винды... лицемер ёпт....
Вернись уже в свой DOS! И смартфон выкинь!

И я застал "Войну Браузеров".
Бесконечный цикл функции с заданным интервалом времени
 
Владимир, а... это про мой "тот скулёж"... Это был не "скулёж", а требование соответствия стандартам программирования 2022г, о которых ты даже не вкурсе...

Программирование ПО - это область, знание в которой устаревают за 5 лет.
Ты даже последний стандарт С не видел... за то гордо называешь себя "программистом"... мда...

Кратко, что появилось и изменилось за последние только 10 лет: GitHub, CI/CD, Docker, UnitTests, Python3 и т.д. - это лишь малая частичка, что Я использую, как программист.
Бесконечный цикл функции с заданным интервалом времени
 
Цитата
Владимир написал:
Roffild, Дык я же спрашивал молодую шоблу по кличке "программисты", способны ли хотя бы они сами ХОТЬ ЧТО-ТО полезное назвать? И тишина...

Лапуль, я не "один алгоритм придумал", а НАЗВАЛ один ПОЛЕЗНЫЙ алгоритм! Ваше стадо скулящее вообще ни одного назвать не сумело! А в Яндекс я хаживал, когда ещё Илья Сегалович мне по нему экскурсию проводил (была у нас одна совместная работёнка). И мне же принадлежит фраза: "Умер Сегалович - умер и Яндекс". И кто сейчас ковыряется в этом говне, мне совершенно не интересно.

ЗА КАКИМ ХЕРОМ, лапуль, "осиливать хотя бы Python" - мне когда-то хватило одного беглого взгляда про его "динамическую типизацию", чтобы забыть о существовании этого говна навсегда.

Страуструпа, естественно, не читал - только Кернигана, и всегда говорил, что этот бездарь способен только изуродовать гениальный язык. Фраза "указатель на структуру покрывает все "классовые" потуги Страуструпа как бык овцу" тоже моя (и Жванецкого, конечно).

Проблема российских (начиная с 00-х) программистов: они И В САМОМ ДЕЛЕ считают себя "программистами"! А программисты вымерли, ещё в прошлом тысячелетии - осталось лишь скулящее ВОТ ЭТО.  
Python - это "клей" для С, С++ и др., поэтому на нем Машинное Обучение сейчас. Но про МО ты не вкурсе... первые попытки хоть и были 1960-х, но это всё баловство до выхода в 2008г карты от Нвидия и TensorFlow в 2011г.
Даже школота осиливает Python, а ты не смог...

Именно советские программисты сейчас скулят, что надо изучать Python, Git, C++20, Java... Им BASIC и Fortran подавай :D

Внутри Python на С... если ты действительно Кернигана........
Бесконечный цикл функции с заданным интервалом времени
 
Проблема советских (и начала 90-х) программистов: они до сих пор считаю себя "современными программистами" :)
Бесконечный цикл функции с заданным интервалом времени
 
Цитата
Владимир написал:
Roffild, Да был я на Хабре, Господи! Такая же распальцованная шушера правит бал! Я даже поэму об этом написал, даже здесь её, кажется, приводил. И здесь же задавал вопрос: ЧТО ИМЕННО сделано ВСЕЙ СВОРОЙ "современных программистов", ЗА ВЕСЬ XXI век, что могло бы быть расценено как полезное? Мне так никто ничего и не назвал. Может, Вы знаете? Нет, я и сам знаю одну полезную штуку - почти каждый день её использую, иногда сотни раз в день - ну просто прелесть, что за утилита! Только вот нюанс: этот алгоритм придумал и реализовал именно я. И на Хабре написал пару заметок именно про него. Визгу было!..
Да стар ты уже, поэтому колесо от телеги и от машины не отличаешь - это одно "колесо" и ничего нового :D

И почему только один алгоритм придумал? В Яндекс даже курьером не возьмут...

Осиль хотя бы Python на пенсии, а то Страуструпа прочитал и возомнил себя "программистом". Или не прочитал?..
Бесконечный цикл функции с заданным интервалом времени
 
Владимир, иди лучше Хабр почитай, а то и ты частенько несешь бред...

Глянул я на днях исходники OpenCart. Как же он хорош! Для 2008 года :D Сейчас за такой стиль кода кастрируют... А ведь не чурались тогда программисты (и Я) запросы в базу по всем файлам разбрасывать...
Бесконечный цикл функции с заданным интервалом времени
 
БорисД, форум лишь потеряет гопника-тролля Владимир, а не современного программиста. Его опыт устарел на десятилетия.
Бесконечный цикл функции с заданным интервалом времени
 
Народ, кто может связать:
Цитата
Nikolay написал:
Развели....

Много примеров, но все они мало применимы. Какие циклы. Тайме, чаще всего, организуется по месту, а не где-то в main, в одной точке. Далее, чтобы это было удобно, могли бы хоть функцию обратного вызова организовать, чтобы по завершению она была бы вызвана. Иначе зачем он нужен, чтобы напечатать привет...

А исходя из этого - таймер это объект - шаблон, класс, замыкакние. Который создается там где он нужен и вызывается его проверка. По истечению вызовется функция в контексте определения, что даст захваченную область видимости этой функции и не надо возится с параметрами.
с этим кодом:
Код
local t0 = os.clock()
local t1,t2,t3,t4,t5,t6,t7=t0,t0,t0,t0,t0,t0,t0  -- таймеры
-- функции исполняемого кода
function f1(x1) print(x1..", f1");   end
function f2(x1,x2) print(x1..", f2");   end
function f3(x1,x2,x3) print(x1..", f3");   end
function f4(x1,x2,x3,x4) print(x1..", f4");   end
function f5(x1,x2,x3,x4,x5) print(x1..", f5");   end
function f6(x1,x2,x3,x4,x5,x6) print(x1..", f6");   end
function f7(x1,x2,x3,x4,x5,x6,x7) print(x1..", f7");   end

 while true  do   --бесконечный цикл
local x=os.clock()
 if x-t1>1 then f1(x) t1=x end
 if x-t2>2 then f2(x,x2) t2=x end
 if x-t3>3 then f3(x,x2,x3) t3=x end
 if x-t4>4 then f4(x,x2,x3,x4) t4=x end
 if x-t5>5 then f5(x,x2,x3,x4,x5) t5=x end
 if x-t6>6 then f6(x,x2,x3,x4,x5,x6) t6=x end
 if x-t7>7 then f7(x,x2,x3,x4,x4,x6,x7) t7=x end
end


?????
Бесконечный цикл функции с заданным интервалом времени
 
Может так правильнее:
Код
local timers = {
    [1] = function(...)
        for key, value in pairs({...}) do
            print("arg num=", key, " val=", value)
        end
    end
}
-- Заполнение таймеров одной функцией (влом копи-пастить)
for key, value in pairs({3, 5, 8, 9, 16}) do
    timers[value] = timers[1]
end
-- Цикл
while true do
    local tm = math.tointeger(os.clock())
    for sec, fun in pairs(timers) do
        if (tm % sec) == 0 then
            fun(tm, sec, "Любое количество", "аргументов!")
        end
    end
    sleep(100)
end
Бесконечный цикл функции с заданным интервалом времени
 
Ну... да... с "tmlast = tm" баганул и надо поправить...

Но без понимая смысла этих таймеров я не знаю насколько правильно.
Бесконечный цикл функции с заданным интервалом времени
 
Просто печатает через каждые {1, 3, 5, 8, 9, 16} секунд:
Код
arg num=   1    val=   6767.77
arg num=   2    val=   6768.88
arg num=   3    val=   Любое количество
arg num=   4    val=   аргументов!


А смысл... пусть nikolz объяснит.
Бесконечный цикл функции с заданным интервалом времени
 
Код
local timers = {
    [1] = function(...)
        for key, value in pairs({...}) do
            print("arg num=", key, " val=", value)
        end
    end
}
-- Заполнение таймеров одной функцией (влом копи-пастить)
for key, value in pairs({3, 5, 8, 9, 16}) do
    timers[value] = timers[1]
end
-- Цикл
local tmlast = 0
while true do
    local tm = os.clock()
    local fun = timers[math.tointeger(tm - tmlast)]
    if fun then
        fun(tm, tmlast, "Любое количество", "аргументов!")
    end
    tmlast = tm
end
Бесконечный цикл функции с заданным интервалом времени
 
nikolz, а какой практический смысл этих таймеров? Попытка обуздать коллбеки?

Я на практике знаю про профайл кода и что замеры... ну... э... "бредовые".
Бесконечный цикл функции с заданным интервалом времени
 
Sleep(15) - это минимум на Винде 10 с последними обновами...
Бесконечный цикл функции с заданным интервалом времени
 
nikolz

Я уверен, что создатель QLua уже уволился из конторы, потому что часть новых функций добавляет уже абы кто, путая названия и порядок аргументов функций. Ну... не составили code-style для QLua...

QLua - попытка ответить на MQL, быстро составленное на коленке.

Колбеки выполняются в основном потоке терминала! - За такое уже надо увольнять!

Ну... поймал ты в колбеке момент отправки заявки... будешь в колбеке ждать сделку блокируя поток терминала, чтоб не спамить заявками? А еще инфа о портфеле может обновиться ДО инфы по сделки! Асинхронная модель Квика!

Проблема в синхронизации последовательности заявка-сделка-портфель, чтоб не отправить лишнею заявку.
Моё решение на Гитхабе.

И где гарантия, что в колбек поступает ВСЯ информация БЕЗ потерь? Можно и сделку не поймать...

В момент выполнения колбека пришли еще 5. Какая судьба у этих 5? Вызовутся последовательно все 5 или (вероятнее всего) только последний (или ничто)???
Бесконечный цикл функции с заданным интервалом времени
 
Я тоже хочу всех "лапуль" поучить :D

rd.isTradingAllowed() учитывает баг `isConnected() == 1`, разрыв связи, клиринг и выходные!

Код
local rd = require("roffild")

function main()
    ISRUN = true
    while ISRUN and rd.isTradingAllowed() ~= true do
        sleep(1000)
    end
    message("started")
    while ISRUN do
        if rd.isTradingAllowed() then
            -- здесь основной код
        end
        sleep(100) -- 0.1сек
    end
end

function OnStop(flag)
    ISRUN = false
    return 3000 -- Timeout
end


Я callback'и не использую ВООБЩЕ! (кроме этого OnStop)
Библиотека для QLua от Roffild'a
 
https://github.com/Roffild/qlua

QLua спроектирован кошмарно!

После освоении основ QLua можете попробовать мою библиотеку, в которой я пытаюсь устранить часть проблем QLua.
QLua подстановка с описанием для редакторов Lua
 
https://github.com/Roffild/qlua-annotations

Я проверил в редакторах Lua:

Visual Studio Code с Lua от sumneko (рекомендую).

PyCharm с EmmyLua (плохо отображаются многострочные описания).

Код
---@type qlmoney_limits
local tbl = getItem("money_limits", 2)



Описание поля при наводке мыши:


Ну, и... звездани на ГитХабе...
Автологин
 
Вообще-то в том же МТ5 при первом входе создается хеш-ключ автологина, который привязан к Комп+Винда+ПапкаПрофиля+итд. Когда хеш-ключ не совпадет - вводи логин и пароль опять.

Но программистам Квик проще свалить на "безопасность" :D
Как сверить количество лотов в Квике и в моем роботе .
 
https://github.com/Roffild/qlua/blob/ea90a32b40530cfa5081973b954f90655dc391­1d/roffild.lua#L193-L255 - мой вариант getFuturesHoldingPrice()

В Квике НЕТ синхрона таблиц, поэтому приходится самому костыль синхрона делать...
Баги QUIK 8.13
 
МТ5 согласен с моим вариантом:
 
Баги QUIK 8.13
 
Похоже стандартный MoneyFlowIndex считается особым способом...

ВТБ ао
MoneyFlowIndex оба 6 периода
Дата: 2021.12.16 20:45 (5 минутки)
Расхождении не только там...

Мой вариант:
Код
Settings = {
    Name = "Tester",
    Step = 0,
    line = {}
}

LINES = 1

for x = 1, LINES, 1 do
    Settings.line[x] = {
        Name = "Line" .. tostring(x),
        Type = TYPE_LINE,
        Color = RGB(255, 255, 255),
        Width = 1
    }
end

function Init()
    LINES = #Settings.line
    return LINES
end

function OnCalculate(index)
    local start = O(index)
    if start == nil then
        return nil
    end
    return indicMoneyFlowIndex(indicToDataSource(), 6, Size()-index)
end

---Money Flow Index
---@param datasource fnCreateDataSourceReturn DataSource
---@param period number Период
---@param shift number Сдвиг в барах
---@return number
function indicMoneyFlowIndex(datasource, period, shift)
    if shift == nil then
        shift = 0
    end
    local stop = datasource.Size() - shift
    local start = stop - period
    if start < 1 or stop < 1 then
        return nil
    end
    local pos = 0.0
    local neg = 0.0
    local last = (datasource.H(start) + datasource.L(start) + datasource.C(start)) / 3.0
    for x = start+1, stop, 1 do
        local tp = (datasource.H(x) + datasource.L(x) + datasource.C(x)) / 3.0
        if tp >= last then
            pos = pos + (tp * datasource.V(x))
        else
            neg = neg + (tp * datasource.V(x))
        end
        last = tp
    end
    if neg ~= 0.0 then
        return 100.0 - (100.0 / (1.0 + (pos / neg)))
    else
        return 100.0
    end
end

---DataSource for Indicator
---@return fnCreateDataSourceReturn
function indicToDataSource()
    return {["O"] = O, ["H"] = H, ["L"] = L, ["C"] = C, ["V"] = V, ["T"] = T, ["Size"] = Size}
end

На картинке:
белый - мой
зеленый - стандартный
 
Редактор для LUA
 
Автоподстановка для QLua
getcandlebyindex и сдвиг графика
 
O(i)==nil на таких барах. Но всегда ли?
Изменение настроек (Settings) внутри кода индикатора, В окне свойств пользовательских настроек не отображается новое значение
 
Код
function OnCalculate(index)
    local start = O(index)
    if start == nil then
        return nil
    end
    if MINSTEP == nil then
        local info = getDataSourceInfo()
        local secinfo = getSecurityInfo(info.class_code, info.sec_code)
        MINSTEP = secinfo.min_price_step
        STEP = Settings.Step
        -- ..........
    end
    local result = {}
    start = start - ((math.tointeger(rd.round(start / MINSTEP)) % STEP) * MINSTEP) + FIRST
    for x = 1, LINES, 1 do
        table.insert(result, start - (x * STEP * MINSTEP))
    end
    return table.unpack(result)
end

https://github.com/Roffild/qlua/blob/master/LuaIndicators/roffild_Levels.lua

Баги индикаторов
Баги QUIK 8.13
 
24. У Тёмной темы главное меню плохо дружит со стрелками на клавиатуре.
Баги QUIK 8.13
 
23. Интерфейс: "Редактор настроек графика" вообще не знает, что индикатор привязан к другому Инструменту, который при Добавлении можно указать. Узнать и изменить Инструмент через Редактор невозможно.
Страницы: 1 2 След.
Наверх