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

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

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 72 След.
способ звукового сигнала в луа
 
Цитата
Serge123 написал:
Ещё для смешивания звуков на форумах советовали использовать сторонние звуковые биб-ки или ДиректХ (ДиректСаунд).
могу выложить dll
которая может воспроизводить WAV файлы асинхронно и синхронно из памяти и из файлов.
способ звукового сигнала в луа
 
Цитата
Serge123 написал:
Цитата
Nikolay написал:
Можно даже параллельно проигрывать звуки, если использовать правильную команду.
Спасибо, а правильная это какая? У меня создалось впечатление, что mci это не умеет.
вариант воспроизведения mp3 файлов
скачайте из интернета прогу mpg123.exe
Код
local x="D:/nks/test.mp3" -- звуковой файл
os.execute("D:/mpg123/mpg123.exe "..x)
Звук из файла и из памяти на Lua
 
Ранее в теме
https://forum.quik.ru/messages/forum10/message74775/topic8544/#message74775

Показал как воспроизвести звуковой файл на Lua из командной строки.
----------------
Недостаток такого способа - затраты времени на загрузку приложения плеера.
Достоинство - ничего не надо писать на СИ.
===============
В данной теме, по просьбе трудящихся, показываю как воспроизводить звуковой файл  сохранить его в памяти для
многократного воспроизведения.
--------------
Решить эту проблему невозможно без написания функции на СИ.
===============
По данной ссылке
https://cloud.mail.ru/public/PYXu/YrjyXLvcP
можно загрузить zip файл  nks.dll  c такой функцией,
там же есть пример, который напишу ниже,
и библиотека Lua53.dll
--------------------------
Пример :
Код
--функция для Lua 5.3 выводит на динамики звуковой файл
--при первом вызове записывает файл в буфер
--при последующих  вызовах воспроизводит содержимое буфера
--автор nikolz 2024
--распакуйте файл на диск  желательно D
--пример вызова функции для вывода на динамики системного звука

path = "D:/nks/"  --путь где находится файл nks.dll
package.cpath =path.."?.dll;"..package.cpath
require"nks"

local x="C:/Windows/Media/Alarm10.wav" -- звуковой файл
nks.run(x);        -- первый вызов с указанием файла
for x=1,5 do
   nks.run();     -- вызов воспроизведение из буфера памяти
end
nks.stop();        -- завершение работы и удаление буфера памяти
способ звукового сигнала в луа
 
Цитата
Serge123 написал:
Цитата
nikolz написал:
Кроме музыки, в модуле можно синтезировать предложения .
Круть. На след. этапе можно сделать виртуальную дикторшу.
А для простых смертных у mciSendString предусмотрено проигрывание звука с заданного смещения и заданной длительности.
Так Вы ничего и не поняли.
Поясняю.
В начале темы написана одна строчка как воспроизвести звуковой файл.  
--------------------
Тоже самое что и ваша dll на основе  устаревшей функции  mciSendString.
--------------
Т е не надо никаких dll  для этого , понятно?
Схема торговой программы
 
Цитата
Serge123 написал:
Цитата
nikolz написал:
на сайте института Эллиотта  англ. был такой сайт
Дюже умнО, и глаза не железные...
Тогда рекомендую,
«Золото́й клю́чик, и́ли Приключе́ния Бурати́но» — повесть-сказка советского писателя Алексея Толстого,
представляющая собой литературную обработку сказки Карло Коллоди «Приключения Пиноккио. История деревянной куклы».
в которой описана очень простая схема торговой программы.
способ звукового сигнала в луа
 
Есть еще они способ о котором  возможно мало кто знает.
Я использую такое решение в своих умных устройствах и для отладки звуковых команд для них на луа.
---------------------------
Берем модуль  внешнего плеера (цена вопроса 1 доллар) подключаем его к USB и загружаем на него свои звуковые файлы .
На выход модуля можно подключить динамики.
Есть вариант модуля с памятью на чипе флеш  либо с внешней флеш.
Число таких файлов может быть тысячи
В луа  используется функция вывода на виртуальнуй UART.
Выводим код любого файла и модуль его играет, а скрипт работает дальше.
Время  вывода команды на модуль  несколько мкс.
Кроме музыки, в модуле можно синтезировать предложения .
способ звукового сигнала в луа
 
есть решение
https://quik2dde.ru/viewtopic.php?id=79
Код
function PlaySoundFile(file_name)
  w32.mciSendString("CLOSE QUIK_MP3") 
  w32.mciSendString("OPEN \"" .. file_name .. "\" TYPE MpegVideo ALIAS QUIK_MP3")
  w32.mciSendString("PLAY QUIK_MP3")
end

Но оно делает тоже самое что и мой вариант, но для этого делается спец функция на СИ
т е в этом решении  вызова из командной строки, но через СИ.  
способ звукового сигнала в луа
 
Пардон, ошибся
В данной теме написан вариант запуска приложения плеера из командной строки
----------------------------
Т е загрузка файла звука делается приложением плеера.
Т е сначала грузится приложение плеер а оно грузит исполняемый   файл.
---------------------
Основное время затрачивается на загрузку приложения плеер.
Но плюсом такого решения является то, что плеер работает в своем потоке.
----------------------
Вариант
Код
local x="C:/Windows/Media/Alarm10.wav"
local s="powershell -c (New-Object Media.SoundPlayer "..x..").PlaySync();"
for j=1,10 do  os.execute(s); end

Лишь упрощает написание командной строки но не исключает многократную загрузку
=================
Чтобы загрузка была однократной надо использовать функцию на СИ и вызывать ее на исполнения.
-----------------------
При этом если файл длинный, то воспроизведение звука будет тормозить скрипт.
-------------------
Либо надо делать или брать готовую функцию исполняющую в отдельном потоке.
-----------------
В инете есть монго решений.  
способ звукового сигнала в луа
 
Код
local x="C:/Windows/Media/Alarm10.wav"
local s="powershell -c (New-Object Media.SoundPlayer "..x..").PlaySync();"
for j=1,10 do  os.execute(s); end
способ звукового сигнала в луа
 
вот вариант многократного проигрывания звука  с однократной загрузкой файла с диска
Код
local x="C:/Windows/Media/Alarm10.wav"
for j=1,10 do
local s="powershell -c (New-Object Media.SoundPlayer "..x..").PlaySync();"
os.execute(s);
end

играет 10 раз файл  "C:/Windows/Media/Alarm10.wav"
способ звукового сигнала в луа
 
Цитата
funduk написал:
А знаете ли Вы способ, который не загружает с диска этот файл всякий раз при проигрывании? А делает это один раз в начале работы скрипта
Знаю, но написал специально эту тему с целью дать вариант простого решения без написания каких-либо вспомогательных функций.
-------------------  
Какой смысл усложнять решение ,
если загрузка этого файла займет микросекунды,
а возможно ОС не будет грузить ее каждый раз снова.  
Схема торговой программы
 
Serge123,
Вспомнил, что после кризиса 2008 года написал книжку Сорос  "Новая парадигма финансовых рынков"
Читал ее когда-то.  
Интересный взгляд на законы рынка достаточно авторитетного спекулянта.
Схема торговой программы
 
пардон, опечатка,
на сайте института Эллиотта  англ. был такой сайт , сейчас не знаю есть ли.
Схема торговой программы
 
Цитата
Serge123 написал:
Цитата
nikolz написал:
после кризиса всегда появляются новые Гуру, так как у старых слился депозит.
А это разве может помешать старым гурам базара, у которых "слился депозит", продолжать ими оставаться? Толпа-то этого не знает...

Я не обращал внимания на дату. Если найдёте что-то современное и полезное, дайте ссылку.
Много современного и полезного есть в платном торговом терминале Amibroker и на их форуме ,
а также на сайте и форуме метатрейдера,
на сайте института .
-------------------
Много статей и исследований есть  на сайтах недружественных стран.
---------------
Но сейчас как-то отошел от этого, поэтому дать ссылки не могу.
способ звукового сигнала в луа
 
Добрый день,
Можно воспроизводить звуковые сигналы Windows в скриптах луа так:
звук  из каталога C:/Windows/Media/:
Код
os.execute("powershell -c (New-Object Media.SoundPlayer 'C:/Windows/Media/Alarm10.wav').PlaySync();");
Код
os.execute("powershell -c (New-Object Media.SoundPlayer 'C:/Windows/Media/Ring10.wav').PlaySync();");
Схема торговой программы
 
Цитата
Constantin написал:
Мне вот интересно - каждый пишет свою обвязку для роботов? Это не рационально. Нет общей?
Вы правы.
Но бесплатных торговых систем для бирж не существует в мире.
---------------
КВИК это не торговая система, а программа для подачи заявок брокеру (так  определено изначально)
----------------
Сначала был язык QPILE для некоторой автоматизации подачи заявок
Потом встроили луа для этого.
---------------
Но КВИК это не торговая платформа, а так и остался терминалом для подачи заявок брокеру.
Что не так?
Схема торговой программы
 
Цитата
Serge123 написал:
Constantin, вот какие-то интересные блоги попались:
https://smfanton.ru/interesno/torgovye-roboty-na-birzhe.html
и по ссылке оттуда
http://www.quantalgos.ru/
а не смущает, что этим заметкам  7 лет?
И что случилось  с публичным портфелем этого авторами, как полагаете?
---------------
Кстати, он пишет что ведет свой сайт 10 лет
Т е после кризиса 2008 что-то купил быстрее кого-то и после этого не стал продавать, а стал учить других торговать.
после кризиса всегда появляются новые Гуру, так как у старых слился депозит.
------------------
Сейчас после 2022 - период новых Гуру до следующего кризиса
Вопросы к спецам по Lua и Lua C API
 
пардон, ошибся.
Выкладывал арбитражного советника, а не спредового.
Но спредовый еще проще.
Вопросы к спецам по Lua и Lua C API
 
Цитата
Serge123 написал:
Цитата
nikolz написал:
Тогда вообще не понятно заявление, что он купил раньше кого-то.
Могу предположить, что по обезличенным сделкам можно было увидеть, что он успел купить по одной цене, а через очень короткое время пришла чья-то крупная покупка (видимо, по рынку) уже по др. цене.

Отн. kalikazandr, которого что-то давно не видно, могу сказать, что выглядел он довольно опытным роботостроителем, не хуже других: насколько я помню, году 20-21-м присутствующий здесь опытный тов. swerg (Да благословит его аллах и приветствует) на форуме quik2dde.ru опубликовал пример своего спредового робота (видимо, тов. swerg  (Мир ему и благословение аллаха) в то время ещё только учился), а этот kalikazandr раскритиковал этого робота и сказал, что это пример, как не надо его писать). При этом тов. swerg (Да вознаградит его аллах добром) ничуть не обиделся, зашла речь о том, как надо писать, и советы этого kalikazandr по написанию роботов и возможные подводные камни я ещё в прошлом году даже скопировал в свой текстовый файлик, который, надеюсь, и сейчас лежит на твердотельном накопителе.
Цитата
nikolz написал:
Предположу, что вечером задержка у Вас возможна из-за работы алгоритма Nagle в винде.
Так этот алгоритм сидит в винде? Хм, мне здесь кто-то уже отвечал, что это алгоритм по фамилии одного мужика, который сидит на роутерах и по вечерам склеивает пакеты для экономии траффика. А если он в винде, то можно его попробовать как-то отменить?
относительно спредового робота.
На форуме выкладывал скрипт такого советника на луа.
Добавьте туда блок торговли по его сигналам и будет вам робот.
dll на C: удивительная ошибка...
 
Опять кто-то сказки рассказывает
М-6000, М-7000, СМ-1, СМ-2 - это HP(система команд с HP2000),
M6000 - это советский вариант американской HP2000
--------------------------------------
CM3, 4, 1420, - это   DEC(система команд PDP).
DBK - вариант на микропроцессоре 1801.
===================
и система команд у DBK и CM2 совершенно разная. Даже байты перевернуты в числах.

============================
БЭСМ-6 (аналог CDC 6200)  так и осталась самой мощной ЭВМ до 90-х.
-------------------
Но сказочникам все едино.
Вопросы к спецам по Lua и Lua C API
 
Цитата
Serge123 написал:
Цитата
nikolz написал:
Вам о чем-нибудь говорит название "обезличенные сделки"?Свои вы как-нибудь опознаете, но не конкретного конкурента.
А он разве писал о ком-то конкретном? В этом благородном деле все - конкуренты.
Цитата
nikolz написал:
От терминала квика у вас на компе до очереди на сервере биржи путь не близкий.
Да, я понимаю... Если я захочу дойти до Москвы, то пару  лаптей  ботинок точно сношу.
Особенно вечером тяжело выставлять заявки (в 19:00:01): посылаю первые 4 раза заявку через 5 мс., а они приходят почти одновременно. А в последнее время два раза вечером видел, что на все 14 заявок не приходил отклик OnTransReply. Более того, я в файле, куда пишет свои действия скрипт, 2 раза не видел сообщения об отправке 1-й заявки, при этом она исполнялась. Кто-то может пояснить причину такого явления? (Ошибки в моём скромном скрипте не предлагать, я в нём кода не менял).
Тогда вообще не понятно заявление, что он купил раньше кого-то.
------------------------------------------
Предположу, что вечером задержка у Вас возможна из-за работы алгоритма Nagle в винде.  
Вопросы к спецам по Lua и Lua C API
 
От терминала квика у вас на компе до очереди на сервере биржи путь не близкий.  
Вопросы к спецам по Lua и Lua C API
 
Цитата
Serge123 написал:
Цитата
nikolz написал:
Каким образом он измерил опережение конкурентов?
Это же видно по alltrades. Свои сделки там можно узнать, а время сделки даётся с точностью до мкс.
Эти вопросы лучше было бы ему задать на той самой странице, где он об этом написал.

И если смотреть на всё это со стороны, то бред одного анонима, который хочет пустить пыль в глаза и при этом не подтверждает своих доходов выпиской по счёту от брокера, ничем не лучше бреда других анонимов, которые тоже не подтверждают своих прибылей. Поэтому сторонним наблюдателям, как я, невозможно кого-то предпочесть.
Вам о чем-нибудь говорит название "обезличенные сделки"?
Свои вы как-нибудь опознаете, но не конкретного конкурента.
-------------------
Если Он что-то купил а потом кто-то еще это же купил , то по этому факту Вы не узнаете,
кто из вас раньше подал заявку, а кто позже.  
dll на C: удивительная ошибка...
 
Цитата
Serge123 написал:
Я ещё заметил, что эти граф. эффекты начали проявляться недавно, а с тёмной темой я работаю давно. Причём, раньше я после обеда, когда интенсивность торгов меньше, выбирал режим экономии энергии, когда у ЦП тактовая частота ставится 800 МГц вместо 2-х ГГц. И при этом мой скрипт обрабатывал в OnAllTrade и OnQuote сообщения по нескольким тикерам. Сейчас, если снизить частоту ЦП, не только вылазят левые иконки, но и фон на пустых местах окошек может вдруг стать белым вместо тёмного (и таким остаться) даже без работающего скрипта. Такое впечатление, что с какой-то версии Квик начал перерисовавать красивые иконки в тёмной теме 60 раз в сек. При этом диспетчер задач показывает нагрузку на ЦП 3%, а нагрузку на GPU 0-1%.
проблема в железе.
Можно попробовать следующее.
1) Выгрузить браузер
2) Выгрузить все приложения кроме Квика
3) Установить более низкое разрешение монитора.  
Вопросы к спецам по Lua и Lua C API
 
Цитата
Serge123 написал:
nikolz, проверял скорость str:sub и без двоеточия сам с пом. цикла и os.clock(), написал по памяти. Возможно, скорость для разных вариантов зависит от ЦП. И я проверял это в Квике.

Что значит фейк по-русски? Не стоит разбираться с lua_share?

Про то, что я зря перешёл с Дельфи на си, это, разумеется, шутка. Тут на форуме с ч/ю есть проблемы... Хотя, на Дельфи можно было натаскиванием компонентов на форму быстро сделать навороченную программу. Но мне сейчас не требуется писать программы с GUI.
Фейк по многим причинам.
-----------------
Автор пишет: "  позволяет мне опережать конкурентов на 2+ мс."  
----------------------------
Каким образом он измерил опережение конкурентов?  
--------------------------
Если работает на QUIK , то время отправки заявки составит примерно 0.1 мс.  Поэтому невозможно опережать на 2 ms
--------------------------
Если работает на винде, то квант винды 10 мс и возможны моменты когда его задача будет ждать эти 10 мс
----------------------------
Если  комп не в дата центре, то запаздывание получения данных через интернет уже порядка 10 ms и он никогда не обгонит компы в датацентре.
--------------------------------
Если сидит в датацентре, то там задержка менее 1 мс и обгонять на 2мс - это значит отставать ото всех.
-------------------------
Далее автор пишет:   " Был случай, единичный, когда ближайший конкурент купил акции всего лишь на 780 мкс позже меня,"
-------------------------
Эту информацию можно получить лишь по данным с сервера биржи, а их даже брокер не получает.
==================
Ну и последнее.
------------------------
Важно не то когда Вы купили, а то , c какой прибылью Вы вышли из позиции, т е, когда продали.
-----------------------
Можно раньше всех такого говна накупить...
================
Вывод:  Не читайте до обеда фейки на форумах  
и думайте над тем, что читаете,
прежде, чем перепостить такой бред.  
Вопросы к спецам по Lua и Lua C API
 
Serge123,
Вы меньше верьте надписям на заборах.
--------------------------
Си является эталоном при тесте языков на скорость исполнения.
Читайте техн.  статьи а не форумы.  
Вопросы к спецам по Lua и Lua C API
 
Цитата
Serge123 написал:
Цитата
TGB написал:
Ошибка в ссылке на справку по Lua. Правильно:   https://quikluacsharp.ru/  
Сейчас на этом сайте посмотрел вашу статью и ваш спор с явно опытным человеком со странной кличкой kalikazandr:  https://quikluacsharp.ru/stati-uchastnikov/modul-realizatsii-interfejsa-obrabotki-sobytij-quik-s-isp...  (Мне даже показалось, что вы имеете отношение к этому сайту. Кстати, домен пора уже продлять.) А этого человека что-то давно не видно. Его советы по написанию роботов я видел также на сайте  https://quik2dde.ru/  Такое впечатление, что его метод с dll предпочтительнее. (Хотя, я с некоторым подозрением отношусь к тем, кто вместо "не знаю" пишет "хз"...) А вот и ответ на ваше замечание о том, зачем так стараться не писать не на чистом QLua:
===
Привет!
1. К сожалению, я не могу представить свое решение (не Fifo), оно уже реализовано на с++ и позволяет мне опережать конкурентов на 2+ мс. Был случай, единичный, когда ближайший конкурент купил акции всего лишь на 780 мкс позже меня, но тут хз, как получилось, видимо бывают исключения из правил.
===
От слова Привет  и далее фейк или по-русски - вранье.
 
Вопросы к спецам по Lua и Lua C API
 
Цитата
Serge123 написал:
string.sub(str, i, j) работает раза в два быстрее, чем str:sub(i, j),
Вы это сами проверяли или опять на форуме у того кто видел кого-то прочитали?
----------------
вот вам тест:
Код
local str="iqreporoerp[tp[]yprtlh;lh[yyjpy[[y]j;g][j;][[p[lf;d,;,n;hm';hm";
local N=10000
local t1;
local s;


 local k=os.clock();   for k=1,N do  s=string.sub(str,5,20)  end   t1=os.clock()-k
 k=os.clock(); for k=1,N do  s=str:sub(5,20)   end  t2=os.clock()-k
print(t1/N,t2/N,t1/t2)

а вот результат:
Код
>D:/lua53/lua53.exe -e "io.stdout:setvbuf 'no'" "test_edflib.lua" 
8.2e-08   8e-08   1.025
>Exit code: 0

разница составляет 2%, в пользу str:sub,
т е наоборот, чем Вы написали.
Вопросы к спецам по Lua и Lua C API
 
Цитата
Serge123 написал:
Цитата

Цитата
nikolz написал:
может.
nil - это тип=0.Если разобрались, то знаете, что в структуре table есть поле   unsigned int sizearray;   -- размер массива-------------------Кроме того, размер любого блока , выделенного из кучи средствами malloc,realloc , можно прочитать функциями ОС.
Если можно выйти за пределы массива (т.е. в конце массива может не быть элемента типа nil), то это плохие новости. Тогда перебирать массив надо, зная, сколько в нём элементов.
А какой Win API можно узнать, сколько байтов выделено, зная адрес этого блока памяти?
Я уже написал Вам, что у вас есть размер массива
поле Table  sizearray;
Если Вы пишите напрямую  по указателю array, то почему не проверяете sizearray?
В  исходниках есть пример проверки.  
Вопросы к спецам по Lua и Lua C API
 
Цитата
Serge123 написал:
Мне известно, что они увеличиваются и имеют размером степень двойки. Меня интересует, может ли внешняя длл сделать цикл по массиву и остановиться, если встретит nil, не выйдет ли она за пределы отведённой для массива памяти? Я с месяц назад писал о чтении массива напрямую без rawgeti, открою секретик: я разобрался в исходниках и структурах и умею из длл читать массив. Работает, как часы. Кстати, зависания Квика и были в результате отладки этой длл. Всвязи с этим и вопрос.
может.
nil - это тип=0.
Если разобрались, то знаете, что в структуре table есть поле
 unsigned int sizearray;   -- размер массива
-------------------
Кроме того, размер любого блока , выделенного из кучи средствами malloc,realloc , можно прочитать функциями ОС.
Запись открытого интереса в файл.
 
/*@@ LUA_INT_TYPE определяет тип для целых чисел Lua.

/* предопределенные параметры для LUA_INT_TYPE */
#определить LUA_INT_INT 1
#определить LUA_INT_LONG 2
#определить LUA_INT_LONGLONG 3

/** конфигурация по умолчанию для 64-разрядного Lua ('long long' и 'double')

#if !определено(LUA_INT_TYPE)
#определить LUA_INT_TYPE    LUA_INT_LONGLONG
#конечный код
Запись открытого интереса в файл.
 
  • Для справки:
  • Windows: long и int остаются 32-разрядными,
  • а для 64-разрядных целых чисел определены специальные новые типы данных.
--------------------------------  
  • Linux: размер long становится 64-разрядным, в то время как размер int остается 32-разрядным в 64-разрядных версиях Linux.
===========================
Распространенные проблемы с 64-разрядной миграцией Visual C ++

При использовании компилятора Microsoft C ++ (MSVC) для создания приложений для запуска в 64-разрядной операционной системе Windows вам следует знать о следующих проблемах:

  • int и a long являются 32-разрядными значениями в 64-разрядных операционных системах Windows.

  • Для программ, которые вы планируете компилировать для 64-разрядных платформ, следует соблюдать осторожность и не назначать указатели на 32-разрядные переменные.

  • Указатели являются 64-разрядными на 64-разрядных платформах, и вы усечете значение указателя, если присвоите его 32-разрядной переменной.

  • size_t, time_t и ptrdiff_t являются 64-разрядными значениями в 64-разрядных операционных системах Windows.

  • time_t это 32-разрядное значение в 32-разрядных операционных системах Windows в Visual Studio 2005 и более ранних версиях. time_t теперь по умолчанию это 64-разрядное целое число.

    Вы должны знать, где ваш код принимает int значение и обрабатывает его как size_t или time_t значение. Возможно, что число может вырасти до 32-разрядного числа, и данные будут усечены при их передаче обратно в int хранилище.

Модификатор %x (шестнадцатеричный int формат) printf не будет работать должным образом в 64-разрядной операционной системе Windows. Он будет работать только с первыми 32 битами передаваемого ему значения.

  • Используйте %I32x для отображения 32-разрядного интегрального типа в шестнадцатеричном формате.

  • Используйте %I64x для отображения 64-разрядного интегрального типа в шестнадцатеричном формате.

  • %p (шестнадцатеричный формат указателя) будет работать должным образом в 64-разрядной операционной системе Windows.

Запись открытого интереса в файл.
 
форматы чисел в версиях 5.4,5.3
Цитата
Serge123 написал:
Цитата
nikolz написал:
Луа хранит числа в двух форматах double(8 байт ) и long (4 байта)
Насколько я понимаю, у Луа, скомпилированного под 32-разрядную Виндовс, будут форматы float и long (по 4 байта), а если Луа скомпилирован под 64-разрядную Виндовс, то числовые форматы будут только double и int64 (по 8 байтов).
не возражаю , так как в луа это одна и та же  структура.
Запись открытого интереса в файл.
 
Цитата
Serge123 написал:
Цитата
nikolz написал:
Луа хранит числа в двух форматах double(8 байт ) и long (4 байта)
Насколько я понимаю, у Луа, скомпилированного под 32-разрядную Виндовс, будут форматы float и long (по 4 байта), а если Луа скомпилирован под 64-разрядную Виндовс, то числовые форматы будут только double и int64 (по 8 байтов).
уже нет квиков под 32 разрядную версию, так как для хранения номеров сделок надо 64 бита.
Запись открытого интереса в файл.
 
Цитата
snurhel написал:
Доброго времени суток.
В Lua, я совсем новенький, так что просьба не ругаться за банальные вопросы.
Я собираюсь записывать историю историю изменения отрытого интереса в бинарный файл, для дальнейшего анализа в другой программе.
В формате:
Дата             Время                           Цена Last   Значение интереса
12.02.2024  16.42.01.074:074244    12.298          20000
Время тика хочу записывать в posix формате(unix время, long 64 бита), но обнаружил что в Lua  это время с точностью до секунд, и не микросекунд.
Поиск решения внятного ответа не дал, видел что на форуме поднимался этот вопрос, но так ни к чему вроде как и не пришли.
Можно ли только средствами языка Lua решить этот вопрос, или надо писать костыли?

Для цены хотел использовать double(64 бита), а для открытого интереса integer(32 бита).
И вроде как в Lua 5.3 появился целочисленный тип, но я так понял Lua c динамической типизацией, сам присваивает как ему кажется правильней тип, и напрямую это ему не указать.
Но в других источниках я читал, что number всегда занимает место 64 бита в формате double, даже если записано целочисленное значение.
Так как все-таки Lua записывает числа?

И если все-таки размер number меняется, то может ли userdata послужить решением в этом вопросе?
Возможно если сам не разберусь, отдам задачу более квалифицированному человеку, но хотелось бы все равно понять, как будет действовать Lua в квике, при записи бинарного файла.
Знаю что можно просто все писать в csv, но не хочу тратить время на преобразование строк в числа, хоть и не претендую на HFT, но хотелось бы меньше лишних движений.
У Вас много вопросов и не понятно, на какой отвечать, но попробую.
----------------------
Луа хранит числа в двух форматах double(8 байт ) и long (4 байта)
------------------------
Хранятся эти числа в структуре . В этой же структуре хранятся и указатели.
------------------------
Поэтому размер не зависит от типа данных.
-------------------------  
Писать бинарный файл можно как запись строк.
Луа пишет в файл все байты вне зависимости от значения байта .
-----------------------  
Время с дискретом 0.1 мкс можно получить используя API C for lua. Т е написав или взяв в интернете функцию высокоточного чтения времени.
================
Но я бы рекомендовал Вам сначала разобраться с реальными задержками данных поступающими в терминал и скоростью реакции вашей программы на их изменение.
Потом решать, какие точности измерений Вам необходимы.
 
dll на C: удивительная ошибка...
 
Цитата
Serge123 написал:
Вот пара новых примеров, которые случились подряд, радиатор у ПК почти холодный.
Если сбоит память, то почему ни разу не было ошибок в работе программы, не говоря уже о вылетах по защите памяти? Исключительно то лишние свои, то посторонние иконки...
Предположу что ошибки могут быть связаны с ошибками памяти.
Если вы разгоняли память то надо вернуть в биосе дефолтные установки.
--------------------------
Надо бы ее проверить
Вопросы к спецам по Lua и Lua C API
 
  • Мы реализуем массивы в Lua просто путем индексации таблиц целыми числами. Следовательно, массивы не имеют фиксированного размера, а увеличиваются по мере необходимости. lua.org/pil/11.1.htmlРоберт Харви
    28 апреля 2015 в 19:40
Вопросы к спецам по Lua и Lua C API
 
Не беспокойтесь, такой проблемы нет.
Вопросы к спецам по Lua и Lua C API
 
Цитата
Serge123 написал:
Ещё возник такой вопрос о выделении памяти под массив в таблицах Луа. Я смотрел исходники на бразильском, но с налёту так и не смог выяснить: по-бразильски я ещё не очень понимаю, да и буковки там мелкие, плохо видать...

Вопрос такой: может ли быть случай: когда вся память, выделенная под массив, занята элементами этого массива? Напр., выделена память под 8 элементов массива и в нём сидит 8 элементов?

Я пытался поискать мнения тех, кто разобрался в этом, нашёл вот это замечание Бориса Нагаева:
https://qna.habr.com/q/117781
Но из него так до конца и не понял ответа на мой вопрос...
В луа память под массивы расширяется динамически.  
dll на C: удивительная ошибка...
 
Цитата
Serge123 написал:
Под конец работы опять показалась та же картинка, но большего размера и в другом пункте того же меню.
Предположу, что у Вас проблема с железом.
Очень похоже на перегрев.
На КВИКЕ Вы это видите, потому что это приложение у Вас активно.
Посмотрите нагрев процессора.
Если давно не чистили комп, то почистите вентилятор процессора.
dll на C: удивительная ошибка...
 
Цитата
Serge123 написал:
Я USB-хабом не пользовался... Это, видимо, расширитель для USB, чтобы подключать больше USB устройств?
Не хватало мне ещё что-то докупать в связи с этой проблемой. Насколько я понял, она возникает по причине того, что при попытке загрузиться с флэшки BIOS не загружает (не знаю откуда) драйвер для работы с флэшкой. Максимум, что я видел при многочисленных попытках загрузить Акронис с флэшки, - это первоначальная заставка программы, которая как-то всё-таки читается с флэшки, и потом всё мертво.

А вот на моём рабочем маломощном мини ПК BIOS с разблокированными доп. функциями: можно, напр., запретить какой-то порт SATA. Это очень удобно, если есть два загрузочных диска и хочется, чтобы при загрузке с одного из них другого не было видно.

Помню, я как-то нарвался на неприятную особенность вин10: стоял на ПК загрузочный диск с вин7, я к нему подключил ещё один диск и установил на него вин10. И эта вин10 без спросу полезла на диск с вин7 и сделала так, что с него уже нельзя было загрузиться, а можно было загрузить с него вин7 только через меню выбора ОСдля загрузки при загрузке с диска с вин10. Если убрать диск с вин10, то загрузка с диска с вин7 стала невозможна. Причём, никаким ковырянием настроек вин10 нельзя было это отменить и вернуть загрузку с диска с вин7!!!

Я хотел найти в Интернете ответ на вопрос: что будет, если на ПК стоит загрузочный диск с вин10 и я подкючу к нему ещё загрузочный диск с вин10: не получится та же история, как и с вин7? Ответа я не нашёл. Может, здесь кто-то знает ответ?

Я сколько-то лет назад делал такой фокус: ретранслировал и исправлял mbr загрузчик в 1-м секторе диска и добавлял к нему маленькое меню: с какого диска грузиться, с 1-го или со 2-го? Мой фрагмент кода обрабатывал нажатие клавиши через BIOS и в mbr секторе на диске, с которого не грузимся, исправлял байт в таблице разделов, чтобы он выглядел, как неразмеченная область диска, чтобы виндовс туда не лезла. Но не хочется вспоминать всё это дело, да и у этого Topton диск размечен как GPT, а с GPT я не умею делать такой фокус...
Возможно знаете, но сейчас win10 можно ставить без проблем с сайта майкрософт.
---------------------------------
Я не встречался с проблемой невозможности загрузки с флешки.
--------------------
Ставил не мало, но такой проблемы не было.
----------------
Можно подключить второй комп к первому и сбросить загрузочный файл винды  
---------------------------
В крайнем случае можно через UART порт перебросить. Если нет физического можно через виртуальный.
------------------------
Можно повесить второй винт.
-------------------------------------
Как говорят, хочешь решить проблему - делаешь, не хочешь - придумываешь причину почему.
dll на C: удивительная ошибка...
 
Цитата
Serge123 написал:
Вот здесь ещё есть его описание:  https://habr.com/ru/articles/694440/
На моём топтоне, в отличие от этой статьи, насколько я помню, в BIOS нет меню Advanced.
по вашей ссылке чел пишет:
S200 - из замеченного - при подключении USB-хаба (любого) и втыкании в него флэшки переставала работать беспроводная мышь с адаптером воткнутым в корпусной USB.  Пришлось воспользоваться USB-хабом подключаемым к порту USB-C. В таком виде - полет нормальный.
dll на C: удивительная ошибка...
 
Цитата
Serge123 написал:
Да, я уже подумывал так сделать... У меня тут за дисплеем валяется ещё один китайский мини ПК, но уже 6-ядерный, я хотел на него установить Квик, но тогда придётся переключать туда-сюда эзернет провод от модема и от дисплея... Я не смог сделать так, чтобы он получал Интернет от модема через вайфай и не смог загрузиться на нём с флэшки, чтобы снять копию диска, из-за ущербности/урезанности его BIOS (при загрузке возникает надпись Evaluation version). Это TopTon Computer, и это известная проблема:  https://4pda.to/forum/index.php?showtopic=994767&st=160  Если бы не этот дурацкий BIOS, то это был бы замечательный мини-ПК...

Видимо, придётся опять установить Квик на этот же маломощный мини-ПК, на котором работаю сейчас, и опять с нуля делать конфигурацию для wnd файлов...
Квиков на один комп можете поставить сколько угодно.
И поработайте 1 день на чистом квике  без ваших скриптов.
Если есть другой брокер то можете на одном компе подключить два квика к разным брокерам.
------------------------
Второму компу можно по  ehernet  (кабелю) дать интернет от этого компа.
dll на C: удивительная ошибка...
 
Цитата
Serge123 написал:
МенЯ продолжают преследовать эти иконки... Сегодня я не запускал этот скрипт с длл, сейчас только захотел закрыть Квик и в некоторых выпадающих меню обнаружил подобную картинку, как в аттаче. Это повторилось раза 3-4 подряд, но я не могу через клавишу PrtScr запиасть несколько копий экранов... В этих меню Квика слева от каждого пункта встречалась также иконка в виде барашка от SoftPerfect RAM Disk, который сидит в трее.

И это в недавно скачанной версии Квика... У меня только одно предположение: возможно, как-то подпорчен wnd файл, который сегодня был загружен в Квик. Но я с этим файлом сегодня торговал...
Рекомендую все ваше выкинуть  из квика и понаблюдать  за появлением чего-то где-то.
Потом расскажите результат.
По поводу текущей паники в акциях
 
Цитата
Serge123 написал:
Как сегодня выяснилось, выходить в деньги мне было невыгодно (но не слишком).
у меня за это время робот перевернулся надцать раз
сейчас так:
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
VPM,
Вы уже утомили своими сказками про действия ММ.
=================
еще раз Вам пояcняю:
Задача маркет-мейкера не двигать рынок
а наоборот сжимать спред и уменьшить волатильность.
==================
Более того нет одного ММ.
На московской бирже маркет-мейкеров 3154 штуки, а не один.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
и еще..
Когда на рынок приходит крупный игрок, т е рынок начинает мощно двигаться,
то маркет-мейкер перестает играть свою роль, а присоединяется к этому игроку
т к на этом он заработает больше бабла чем если будет сдерживать рынок.
Вот тогда рынок буквально улетает так как его никто не держит.
dll на C: удивительная ошибка...
 
Цитата
Serge123 написал:
Хм, может быть, тут дело в gcc.exe? Кому не нравится имя mydll.dll??
В сообщение же сказано, что переполняется стек функции. Можно лишь гадать почему.
Но как правило, либо Вы передаете функции очень большой объем параметров, либо утечка памяти, т е некорректный выход из стека какой-то функции.
------------------
Если пишите на си, то используйте функции библиотеки СИ, а не w32.dll  (это самопальная dll верно?)  возможно ошибка исчезнет.
В любом случае это ошибка а сишных самопальных dll
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Т е  маркет-мейкер  это такой игрок, которому за покупки-продажи акций платит биржа.  
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Добавлю к предыдущему ликбезу.
Маркет-мейкер  (у него контракт с биржей на эту должность) никогда не наращивает позиции,
так как это не его цель и за это ему не платят.
Его задача как майкет-мейкера как раз обратная, чтобы рынок не двигался .
Т е чтобы была малая волатильность и малый спред.
==================
Позиции наращивают игроки и они двигают рынок.

Так как маркет-мейкер как правило крупный игрок,
то он может быть и в роли такого игрока.
--------------------
Не все крупные игроки являются маркет-мейкерами.
===============
Т е если маркет-мейкер  это такой игрок, которому за покупки-продажи акций платит биржа.  
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 72 След.
Наверх