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

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

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 28 След.
Основные библиотеки для QLua 5.4.1
 
Цитата
Nikolay написал:
luasocket сборка есть здесь
Посмотрел, она как-то собрана странно, вместе со всем луа. Работать-то должна, но я б так не сделал.
Проблема с оперативной памятью Lua на Windows Server 2019
 
Цитата
Руслан написал:
имели в виду что-то другое
Думал железный сервер. А на скрине вижу, что виртуальный. Тогда и "кластер" у него виртуальный и рассуждение неприменимо. По существу проблемы надо автора коннектора подтягивать, как он там задумывал никто кроме него не знает.
Проблема с оперативной памятью Lua на Windows Server 2019
 
Цитата
Руслан написал:
отличие серверной машины или же операционки Windows Server 2019 от стационарного компа или Windows 10
На сервере, как правило, RAID и размер кластера в разы больше, чем 4к на домашнем компе, может файла подкачки не хватает, а не памяти? Тогда увеличить своп-файл кратно размеру кластера. По умолчанию у него лимит 1.5 размера ОЗУ, надо поставить сильно больше.
Ошибка в данных источника DataSource (брокер ВТБ)
 
Цитата
Blackninja написал:
идут данные от 05.05.2021 и потом почему-то начинаются 06.09.2021
Попробую угадать. Пятого мая квик подключался в последний раз, а потом только 1 октября. Подключившись, он ровно 3000 свечек накачал, как раз это будет шестое сентября 18:05.
Получение признака "Субординированный инструмент" в lua
 
Цитата
BlaZed написал:
Если не сложно, может заставите ее работать и под девятым квиком, а если еще и под Lua 5.4 будет работать, было бы совсем замечательно.
Обещанного три года ждут )
Баги QUIK 8.13
 
Цитата
Roffild написал:
а не полноценная система с продуманным API
И не должна была быть. Для этого есть квикфикс, делать из квика конкурента своему же продукту арка не будет.
Баги QUIK 8.13
 
Цитата
Roffild написал:
на GitHub
Таки я посмотрел. В PythonDLL в additional dependencies ожидалось бы увидеть notelemetry.obj, чисто для феньшую. Ну хотя бы в релизном конфиге.
Средневзвешенная цена
 
Цитата
Рустам написал:
не на всех акциях но в большинстве из них
Видимо, в тех, у которых есть дополнительная сессия. Оценка фиксируется по закрытию и показывается в таблице, а потом идет вечерка и к средневзвешенной добавляются новые сделки. Кстати, биржа с квиком согласна в цифре.
Кривые шибки в QLua
 
Цитата
Anton написал:
Никакие телодвижения со стороны главного потока квика его не выпустят.
А вот тут наврал. Таки можно выпустить из другого потока, проверил сейчас. Тксть на майкрософт надейся, а сам не плошай. Значит, есть третий вариант:
3) основной поток квика зачем-то выпускает лок, который не захватывал.
Кривые шибки в QLua
 
TGB,  еще точнее проблема здесь

Лок выпустить может только мейн, раз уж он его захватил. Никакие телодвижения со стороны главного потока квика его не выпустят. Отсюда варианта два:
1) главный поток квика где-то лезет в луа без захвата лока;
2) лок выпускается одним из опкодов на картинке. Например, JMP может вызывать luaF_close, а она luaM_free, а она может вызывать luaC_fullgc, если определен макрос HARDMEMTESTS. Поэтому первое, что б я сделал, это посмотрел на предмет наличия этого макроса в 5.3.
Дубликаты уведомлений onOrder v9.2.2.11
 
Цитата
Павел Bosco написал:
какие-то ещё способы общения
Файлы tri/tro еще.
Кривые шибки в QLua
 
Короче нет в циклах опкода OP_CLOSURE, дело не в этом. Слева 5.3.5, справа 5.4.1.

 
Кривые шибки в QLua
 
Цитата
Anton написал:
А в 5.4 это место по-другому сделано.
Поправлюсь: по-другому, но тоже есть yield на главном пути. В общем, надо установить сначала, присутствует ли этот опкод в байткоде циклов в обеих версиях, иначе голое теоретизирование получается. Если окажется, что в 5.3 опкод есть, а в 5.4 нет, то задача решена. Если что-то другое окажется, то, глядя на байткод, можно будет просто ручками пройти по нему и посмотреть, что происходит, а не просто пытаться угадать.
Кривые шибки в QLua
 
Цитата
TGB написал:
почему? Не понял.
Смотрим, как замыкание создается в 5.3
Код
      vmcase(OP_CLOSURE) {
        Proto *p = cl->p->p[GETARG_Bx(i)];
        LClosure *ncl = getcached(p, cl->upvals, base);  /* cached closure */
        if (ncl == NULL)  /* no match? */
          pushclosure(L, p, cl->upvals, base, ra);  /* create a new one */
        else
          setclLvalue(L, ra, ncl);  /* push cashed closure */
        checkGC(L, ra + 1);
        vmbreak;
      }
оп, а там checkGC на главном пути
Код
#define checkGC(L,c)  \
        { luaC_condGC(L, L->top = (c),  /* limit of live values */ \
                         Protect(L->top = ci->top));  /* restore top */ \
           luai_threadyield(L); }
а там luai_threadyield тоже на главном
Код
#define luai_threadyield(L)     {lua_unlock(L); lua_lock(L);}
То есть даже не то что может быть небезопасно, как я по памяти написал, а всегда небезопасно. А в 5.4 это место по-другому сделано.

Для уверенности еще надо доказать, что в этом примере компилятор использовал OP_CLOSURE, а не что-то другое. Для этого надо скомпилировать (именно в квике) в файл и отреверсить результат. Мне некогда заняться.
Кривые шибки в QLua
 
Цитата
nikolz написал:
цикл  for i = 1, 100000000 do  end    - пустой. Оптимизирующий компилятор его просто выкинет.
Разве что внешний какой-нибудь. Квиковский не выкидывает.

Цитата
nikolz написал:
условие может  не выполнятся никогда
Оно не должно выполниться никогда по логике переключения потоков в луа текущих версий. И в 5.4 не выполняется никогда, а в 5.3 выполняется. Вот об этом и разговор тут, мол поправить бы.

Код-то не мой скопировали. Я его менял, предположив, что поток переключается в момент создания замыкания, и занес локальные внутрь do-end, дабы проверить. Но не угадал. В общем случае в 5.3 замыкание может создаваться небезопасно, а в 5.4 этот кусок изменен, так что вполне вероятно, что ноги все-таки оттуда растут. Ковырять некогда.
Средневзвешенная цена
 
Цитата
Рустам написал:
Есть одна единственная формула по которой находится средневзвешенная цена. Эти значения должны показывать одно и тоже
Средневзвешенная по всем сделкам (рыночная цена) и средневзвешенная по закрытиям дневок (WMA) это сильно разные вещи.
Цитата
Рустам написал:
Кому верить?
Верить никому нельзя. Мне - можно.
Получение признака "Субординированный инструмент" в lua
 
Цитата
BlaZed написал:
может заставите ее работать и под девятым квиком
Зависит от того, насколько сильно кишки поменяли, попробую посмотреть на демке. На 5.4 обещанный перевод начал было, да отвлекся на другое, а там девятка вышла и уже как бы надо под нее делать, а на боевом ее еще не ставил. Попробую на демке что ли поковырять. Вот, кстати, пример использования недокументированных возможностей, раз и все заново.
[ Закрыто] Ищу спеца по ЛуаКвик, для долгосрочного сотрудничества по созданию робота и его доработкам или для консультаций и наставничества.
 
Цитата
Незнайка написал:
Если только в образовательных целях.
Здесь в образовательных. У меня все в длл, там кое-что происходит, для чего важно, из какого потока вызывать. И тут, думаю, на каком-то этапе окажется, что такое деление удобно.
[ Закрыто] Ищу спеца по ЛуаКвик, для долгосрочного сотрудничества по созданию робота и его доработкам или для консультаций и наставничества.
 
Цитата
Незнайка написал:
Тоже самое, если запихать содержимое onMainInit в блок do end?
Да.

Цитата
Незнайка написал:
А не проще onMainCleanup выполнить в OnStop?
Проще. Тут идея в том, что пара onMainInit/onMainCleanup строго в мейне выполняется, а еще должна быть пара onQuikInit/onQuikCleanup, выполняемая строго в потоке квика, и там как раз окна должны создаваться/прибиваться и прочее подобное. Может покажу еще, если руки дотянутся. Заинлайнить можно все, задача-то наоборот разложить по полочкам, чтобы с первого взгляда было понятно, что в каком порядке происходит.
[ Закрыто] Ищу спеца по ЛуаКвик, для долгосрочного сотрудничества по созданию робота и его доработкам или для консультаций и наставничества.
 
Цитата
Владимир написал:
Но ведь окна (в смысле, таблицы Квика) всё равно надо убивать?
Все равно надо, да, и это придется в OnStop таки делать.
[ Закрыто] Ищу спеца по ЛуаКвик, для долгосрочного сотрудничества по созданию робота и его доработкам или для консультаций и наставничества.
 
Цитата
Незнайка написал:
почему?
В данном случае, уточню, а не вообще. Потому что require вносит файл в список модулей и не любит полные пути, dofile же делает что ожидается без лишней автоматики.

Цитата
Владимир написал:
Кстати, что за зверь flush и на кой он нужен? А onMainInit зачем? Почему этого не сделать прямо в main?
1) flush сбрасывает буфер файла на диск, это тот же сишный fflush напрямую. Рантайм создает буфер 4к, пишет туда и сбрасывает блоками по 4к. Если скрипт падает (или виснет) после file:write, последний записанный кусок на диск не попадет, мы тут типа соломки подстелили.
2) onMainInit как раз чтобы вынести бизнес-код из мейна, заодно весь мусор, созданный в процессе инициализации, попадет к коллектору сразу после нее, а не после того, как мейн закончится (т.е. никогда).

Цитата
Владимир написал:
Но я не совсем врубился, что происходит. Можно описание процесса на русском языке?
1) OnStop снижает runStatus с 3 до 2 и крутит спинлок, не давая квику начать отсчет остатка жизни мейна.
2) главный цикл в мейне завершается и мейн выполняет очистку, в нашем случае запись дампа, при этом он уверен, что квик его ждет (висит на OnStop). Тут важен pcall, иначе если при очистке вылетит ошибка, квик так и останется висеть навеки.
3) мейн закончил очистку, понижает runStatus с 2 до 1 и крутит спинлок, это сигнал для OnStop, что очистка закончена.
4) OnStop вышел из спинлока и понизил runStatus c 1 до 0, это сигнал мейну, что OnStop завершен.
5) если при очистке была поймана ошибка, мейн ее теперь бросает заново, теперь квик не ждет нас и не зависнет. Если ошибки нет, мейн просто завершается.
Это не решает проблем с отправкой сообщений окнам из мейна, т.е. при наличии окон придется переделать, чтобы очистка была таки в OnStop. Но решает проблемы с недописанным файлом, если мейн слишком резво закончится. Как-то Старатель о таком писал, а тут у меня воспроизвелось и пришлось порешать.

Цитата
BlaZed написал:
Не могу понять в чем смысл данного ожидания уже после выполнения функции очистки.
Если мейн выбрасывает ошибку, пока OnStop крутит спинлок, квик зависает намертво. Тут мы убеждаемся, что спинлок закончился. Если сделать имя файла "?.lua", будет вылетать ошибка и можно это пронаблюдать.
[ Закрыто] Ищу спеца по ЛуаКвик, для долгосрочного сотрудничества по созданию робота и его доработкам или для консультаций и наставничества.
 
Цитата
БорисД написал:
надеюсь  что они виртуальные
Естественно.

Кто-то (не Владимир ли) жаловался, что завершение скрипта не всегда корректно даже с очисткой в OnStop, вот здесь показано, как завершать скрипт в несколько шагов, но на примере завершения в мейне. Для скрипта с окнами логику надо будет "выворачивать". То есть это все еще не более чем моделька, на универсальность не претендующая.

Насчет соревнований сильно сомневаюсь, тут все завалено задачами, за эту я скорей в качестве прокрастинации схватился.

Повторюсь еще раз. Есть программы типа велслаба, сьерры, мультичартса, нинзи и других. Смысл начального тестирования идей прямо в квике от меня ускользает, в нем нет для этого ничего. Отобранные во внешней программе стратегии можно перенести на луа, а можно саму программу к квику прицепить. Второе не проще, но нужно сделать один раз. Да и для некоторых программ уже есть готовые адаптеры к квику.
[ Закрыто] Ищу спеца по ЛуаКвик, для долгосрочного сотрудничества по созданию робота и его доработкам или для консультаций и наставничества.
 
В общем, дорвался я наконец до квика и, дабы размяться, порешал ту же задачку по-своему. Тксть мои мятые триста рублей. Кое-что интересное здесь можно увидеть в районе OnStop и в конце мейна. Все на спинлоках, чтобы не тащить длл, в длл можно гораздо веселее это сделать. Дамп урезан до просто списка бумаг, как и прежде, не в нем здесь соль.

Основной скрипт
Код
------------------------------------------------------------------------------
--              'CONSTANTS' (Lua has no true constants, you know)           --
------------------------------------------------------------------------------

local inFileName = getScriptPath() .. '\\IN.lua'
local outFileName = getScriptPath() .. '\\OUT.lua'
local mainLoopTimeout = 500

------------------------------------------------------------------------------
--                               BUSINESS LOGIC                             --
------------------------------------------------------------------------------

local inSecList = nil

local function writeSecList()
   local f = io.open(outFileName, 'wb')
   if not f then
      error('Failed to open OUT.lua for write')
   end
   f:write('return {\r\n')
   if inSecList then
      for _, r in ipairs(inSecList) do
         f:write('\t{ classcode = "' .. (r.classcode or '') ..
            '", seccode = "' .. (r.seccode or '') .. '" },\r\n')
      end
   end
   f:write('}\r\n')
   f:flush()
   f:close()
end

-- called in main thread before the main loop
local function onMainInit()
   inSecList = dofile(inFileName)
   -- TODO: further initialization here
end

-- called in main thread on each time step
local function onTimeStep()
   -- TODO: your trading code here
end

-- called in main thread after the main loop 
local function onMainCleanup()
   writeSecList()
   -- TODO: further cleanup here
end

------------------------------------------------------------------------------
--    THE CODE BELOW SHOULD NOT BE EDITED UNLESS YOU FULLY UNDERSTAND IT    --
------------------------------------------------------------------------------

local runStatus = 0

function OnStop()
   assert(runStatus == 3, "Unexpected runStatus in OnStop: " .. runStatus)
   runStatus = runStatus - 1
   while runStatus == 2 do
      sleep(10)
   end
   runStatus = runStatus - 1
end

function main()
   onMainInit()
   runStatus = 3
   while runStatus == 3 do
      onTimeStep()
      sleep(mainLoopTimeout)
   end
   do
      local s, e = pcall(onMainCleanup)
      runStatus = runStatus - 1
      while runStatus == 1 do
         sleep(10)
      end
      if not s then error(e) end
   end
end

И модельный IN.lua для примера со списком бумаг (код тоже может быть добавлен, ПЕРЕД return, конечно же)
Код
return {
   { classcode = "TQBR", seccode = "SBER" },
   { classcode = "TQBR", seccode = "GAZP" },
   { classcode = "TQBR", seccode = "GMKN" },
   { classcode = "SPBFUT", seccode = "RIZ1" },
}
[ Закрыто] Ищу спеца по ЛуаКвик, для долгосрочного сотрудничества по созданию робота и его доработкам или для консультаций и наставничества.
 
Цитата
Владимир написал:
нам такой парсер не нужен
Ну не нужен так не нужен, мое дело предложить.
На всякий случай для тех, кто решит, что нужен, лучше dofile вместо require использовать во избежание чудес.
[ Закрыто] Ищу спеца по ЛуаКвик, для долгосрочного сотрудничества по созданию робота и его доработкам или для консультаций и наставничества.
 
Цитата
Владимир написал:
попытаться разговорить народ
Боюсь, разговоры будут шо лучше б не было. Каждый строчит как он хочет, поэтому по коду как таковому я воздержусь. А по вот по чему не воздержусь: формат файла IN выбран неудачно, отсюда куча кода, которого могло бы не быть вовсе.

Давайте представим для начала, что файл состоит только из команд и комментариев. В этом случае мы можем назвать его IN.lua, каждая строка будет командой (на чистом луа, разумеется, безо всяких префиксов) либо комментарием (с двух минусов, как в луа принято), и весь парсинг сведется к require(getScriptPath() .. '\\IN.lua'). Не нужна даже проверка на существование файла, require сама выбросит ошибку в случае ненахода, равно как и в случае синтаксической ошибки в коде команд.

Теперь остается вопрос, как в наш чистый луа воткнуть список бумаг. А очень просто, в виде луа-таблицы. Наш IN.lua будет выглядеть примерно так
Код
-- COMMANDS
-----------

-- comment
message('Command 1')

-- another comment
local function cmd2(txt)
  message('Command 2: ' .. txt or '')
end

cmd2('hello')
cmd2('world')
-- cmd2('commented out')

-- SECURITIES
-------------

inSecList =
{
  { classcode = "TQBR", seccode = "SBER" },
  -- NOTE: the next line is commented out
  -- { classcode = "TQBR", seccode = "GAZP" },
  { classcode = "TQBR", seccode = "GMKN" },
  { classcode = "SPBFUT", seccode = "RIZ1" }
}

-- COMMANDS (again)
-------------------

message('Command 3')
Основной файл скрипта сокращается до своего первоначального варианта плюс
Код
require(GetScriptPath() .. '\\IN.lua')
После этой строки мы уже распарсили весь файл, выполнили все команды, и список бумаг у нас уже в глобальной переменной inSecList.
Синхронизация потоков
 
Цитата
Незнайка написал:
Почему так?
table.ssort захватывает лок луа и не позволяет переключить поток с мейна на основной поток квика (или обратно). Между скриптами он не работает, у каждого скрипта свой лок.
[ Закрыто] Ищу спеца по ЛуаКвик, для долгосрочного сотрудничества по созданию робота и его доработкам или для консультаций и наставничества.
 
Цитата
Владимир написал:
ДЛЯ КОГО "на аккорде лучше"?
Для опыта,написал же ж.

Цитата
Владимир написал:
Для развода лохов
Кстати о лохах. Лоху обычно затирают про миллиарды и тысячи процентов. Он понимает, конечно, что его лошат, но ожидает лошения на миллиарды, коих у него нет, а потому и игра выглядит безрисковой. В процессе у лоха из заднего кармана утягивают мятые триста рублей. Обнаружив пропажу, лох считает себя победителем: хотели миллиардов, а получили голимую трехсотку, хаха, как я их!
[ Закрыто] Ищу спеца по ЛуаКвик, для долгосрочного сотрудничества по созданию робота и его доработкам или для консультаций и наставничества.
 
Цитата
Владимир написал:
А что, на сделке надо было?
На аккорде лучше. Бесценный опыт, второй раз не захочется уже.

Цитата
Владимир написал:
Именно поэтому он и стал самым богатым человеком планеты!
Ну дос-то он купил допустим. Винду поверх налепил поначалу. Потом нанял толкового чела, который ему сделал (отличное) ядро нт, и с тех пор он это ядро костылит и продает, меняя фантики. Все по канону.
[ Закрыто] Ищу спеца по ЛуаКвик, для долгосрочного сотрудничества по созданию робота и его доработкам или для консультаций и наставничества.
 
Цитата
БорисД написал:
ну теперь можешь считать что встретил
Не, я вряд ли встретил.

Цитата
Владимир написал:
20 лет проработал
На окладе, о чем я и говорю.
[ Закрыто] Ищу спеца по ЛуаКвик, для долгосрочного сотрудничества по созданию робота и его доработкам или для консультаций и наставничества.
 
Владимир,  так это скрипты с вменяемым техзаданием. Разработку бота по чертежам из интернетов, как у Жванецкого, закончить невозможно, можно только прекратить. Если мечта заказчика настолько сильна, что он готов держать прогера на почасовой оплате для переписывания всех идей из интернетов на луа, все в этом мире возможно. Чет я таких заказчиков не встречал, в основном взаимовыгодное типа. То есть, расшифровывая, кодер потратит три месяца или полгода фултайм на изыскания, а заказчик будет посильно участвовать в виде подбрасывания новых идей каждые полчаса, и в итоге заказчик узнает, что хотел узнать (и что я бесплатно написал выше), а кодер получит в лучшем случае по ставке дворника, в худшем вообще "у нас ничо не работает, платить не за что".

Вообще что-то тестировать в квике не надо. У него тупо нет для этого функционала. Есть куча спецсофта для этого той или иной кривизны, там хотя бы основная задача именно тест. Вот переписать готовое под квик внезапно налетит куча желающих, потому что там понятно, где косяк прогера, а где косяк самой идеи.
[ Закрыто] Ищу спеца по ЛуаКвик, для долгосрочного сотрудничества по созданию робота и его доработкам или для консультаций и наставничества.
 
Цитата
БорисД написал:
кто способен писать за деньги
Тут вопрос не в способен, а в готов. Озвученные подходы кодить в 100500 раз, чтобы в итоге еще раз узнать, что нефик там ловить, желающих мало найдется из тех, кто их когда-то уже закодил и выбросил на помойку. Тут должны сойтись собственный интерес кодера и его способность это все закодить, ну и желание на сигаретки еще получить бонусом.
QUIK + Windows 11
 
Цитата
Роман написал:
в 16:00 должна новая сформироваться, а она формируется только в 16:05
Это ж лютый неликвид, там скорее всего первая сделка четырехчасовки и была в 16:05. Если б на скриншоте был сам график с отметками даты и времени, можно было бы точно сказать.
EMA, Расчет средней скользящей
 
Цитата
Dr Wed написал:
По факту и в одно и в другое поле попадает номер свечи.
Сейчас не в той обстановке, чтобы вдумчиво в код повтыкать, могу ошибиться, но вроде как в p текущий индекс, а в l индекс последней закрытой свечи. На текущей свече же может быть несколько вызовов. Аналогично в tmp.p текущее рассчитанное значение, а в tmp.pp - значение для предыдущей закрытой свечи.

Цитата
Владимир написал:
Зачем нам "вторые космические"?
Я и говорю, нам такой хоккей не нужен )
EMA, Расчет средней скользящей
 
Цитата
Владимир написал:
Зачем резать курицу, несущую золотые яйца?
Несущую не надо. А когда в куриную башку приходит идея колонизации марса и она стартует на второй космической с прицепившимися где-то на границе стратосферы космическими туристами, лучше поглядеть на это со стороны, вскоре сверху жареные тушки икаров повалятся, мы ж не хотим среди них оказаться.

Цитата
Dr Wed написал:
Что такое it в коде индикаторов от arqa?
Это итератор, судя по всему.
EMA, Расчет средней скользящей
 
Цитата
Владимир написал:
волшебное слово
Я и так вижу в наших диалогах "волшебные слова". Но смущает, что они "из разных сказок", не должны бы в одном месте быть одновременно. Для меня реально волшебное слово - это стоп-слово. Т.е. момент, когда "все, чудеса закончились, сворачиваемся и едем присматривать остров". Без оного есть хороший шанс в какой-то момент свернуться не совсем добровольно и на остров уже не поехать.
EMA, Расчет средней скользящей
 
Цитата
Владимир написал:
Нам деньги надо зарабатывать, а не монетки бросать.
Ну их же всем раздают просто так, подошел и заработал, изи. Собственно, в некоторые периоды так и есть, тогда интернет заполоняется рассказами, как победить рынок с помощью простого советского. Потом победители куда-то исчезают, видимо, покупают себе острова и там счастливо живут.
Цитата
Владимир написал:
Что ещё за "42"?
Отсылка к "автостопом по галактике" (читать не стоит). Там мегакомпьютер после многолетних расчетов ответа на вопрос о смысле жизни (или типа того) выдал ответ 42. Тксть ответ мы теперь знаем, осталось понять, в чем был вопрос.
EMA, Расчет средней скользящей
 
Цитата
Владимир написал:
что такое "надо много отсчетов"
Закон больших чисел. Грубо говоря, есть монетка, мы заранее знаем, что вероятность орла равна 0.5. Но с трех бросков можем получить и 1, и 0, и 0.33, и 0.66 (а 0.5, гыгы, даже теоретически не можем получить с трех бросков).

Цитата
Владимир написал:
Основной закон рынка одним словом
Это все знают, 42.
EMA, Расчет средней скользящей
 
Цитата
Владимир написал:
Вся эта кухня по определению вероятностная
Именно. Чтобы оценка распределения сформировалась более-менее близко к оригиналу, надо много отсчетов. А оригинал-то нестационарный, так что просто удлинить выборку - это собрать в кучу много разных распределений, в итоге получить нормальное и этот самый винеровский процесс. Так что если есть возможность увеличить выборку "на месте", ей стоит воспользоваться. Тут полный аналог неопределенности Гейзенберга: хотим точное распределение - непонятно, где оно было; хотим точно знать, где оно было - непонятно, какое оно было )
EMA, Расчет средней скользящей
 
Цитата
Владимир написал:
пока очередная свеча не накопится, её для анализа просто НЕТ
Это правильно, при обычном применении "незакрытой свечи" это будет заглядывание в будущее на тесте и феерический слив в реалтайме. Но посмотрите на картинку с другой стороны. Пусть есть десятиминутные свечи 10:00-10:10, 10:10-10:20 и т.д. Можно ли вместо них использовать свечи 10:01-10:11, 10:11-10:21 и т.д.? Можно же, какая разница. Или 10:02-10:12, или 10:03-10:13... Ну так давайте настроим десять систем, каждая на своем вот этом сдвинутом фрейме, почему нет? Ну и в конце, раз они все одинаковые, может и будем просто каждую минуту считать очередной сдвинутый десятиминутный фрейм? И у нас получился скользящий фрейм, все свечи в котором, однако, вполне себе закрытые. Ну и минутный сдвиг тут для примера, а чего бы нам секундный не взять.

Цитата
Владимир написал:
захламлять картину всякими броуновскими трепыханиями
Это в предположении, что под трепыханиями есть некое "истинное движение", прикрытое "шумом" от несознательных граждан, лупящих по рынку почем зря. Собственно, так и предполагается в большинстве "академических работ", винеровский процесс (сиречь интегрированный белый шум) со сдвигом (сиречь "тренд"). И даже это предположение бьется на истории (если брать дневки за 100 лет, как обычно и берут). Но у меня например нет 100 лет впереди, чтобы доказывать эту теорию на практике. А на меньших горизонтах вклад винеровского процесса оказывается настолько больше "тренда", что последним можно смело пренебречь. Куды бечь, есть ли спасение для бедного инвестора-физика? Ну, можно считать, что процесс не совсем винеровский. Или совсем не винеровский. А тогда вылезают простые и вкусные решения, рассказывать о которых я конечно не буду )

Цитата
Владимир написал:
алгоритмический выкидыш
Та не, с этим все нормально, под ним математика строгая. Вот можно ли эту математику ради наживы применить, другой вопрос. Напрямую вряд ли.
EMA, Расчет средней скользящей
 
Цитата
Владимир написал:
"Чтобы дать больший вес новым данным, была создана экспоненциальная скользящая средняя (EMA)"
Чудесные писатели чудесных текстов, была создана, типа сидели-сидели и создали и сразу торговля как поперла. Это просто БИХ-фильтр первого порядка, соответственно где применяющий понимает, что он творит, - там полезен, в прочих случаях очередной бубенчик. А цикл не нужен, достаточно последнюю точку рассчитать.
формирование свечей в QUIK (BUG), (QUIK vs QLUA)
 
Цитата
QApplication написал:
Но как же быть вот с этими трейдами?
А что ноль после номера трейда означает? Это не offmarket часом?
Кривые шибки в QLua
 
TGB,  нет квика под рукой, посмотрите плиз, вот так воспроизведется?
Код
local for_OnParam = 2
local N_OnParam = 0
IsRun = true

function OnParam(p1, p2)
   for i = 1, for_OnParam do 
      N_OnParam = N_OnParam + 1                                                                              
   end
end

function main()
   while IsRun do 
    do
      local OnParam_begin = N_OnParam   
      local J = 100000000   
      while ( J > 0  )   do   J = J - 1  end
      if N_OnParam ~= OnParam_begin then
         message ( ' Переключение колбека и потока main:  N_OnParam - OnParam_begin = ' .. tostring(N_OnParam - OnParam_begin))
      end      
   end
   sleep(10)  
   end
end   
   
function OnStop()
   IsRun = false
   return 10000   
end

Баги QUIK 8.13
 
Цитата
Roffild написал:
В Lua нет try-catch.
В луа есть try-catch, называется pcall.
Кривые шибки в QLua
 
TGB,  если уж говорить о возможных причинах, я бы посмотрел на хайли лайкли происходящий рехэш таблицы при вставке. Проверить это при наличии сорцев просто, поставить бряк на рехэш и запустить ваш тест. А так "из общих соображений" можно весь луа перерыть.
Подскажите Как залить JSON массив в LUA массив (таблица)? Массив 2х мерный. JSON лежит с текстовом файле.
 
Цитата
Alex написал:
А как ее установить ?)
Там жеж англицким по белому написано, забросить файл json.lua рядом с вашим и в вашем json = require "json", и потом json.decode(строка-с-джейсоном).
Цитата
Владимир написал:
вероятность нарваться на труднонаходимые ошибки
имеется, да. Но что-то мне подсказывает, что лисапедный парсер будет не сильно лучше, потому как иначе и вопроса бы не возникало.
Подскажите Как залить JSON массив в LUA массив (таблица)? Массив 2х мерный. JSON лежит с текстовом файле.
 
Хоть бы так например. Ну или изобрести лисапед самостоятельно.
Не могу получить данные по некоторым фьючерсам функцией CreateDataSource
 
Цитата
Дмитрий написал:
работает для инструмента Si-12.21 (SiZ1), но не работает для GOLD-12.21 (GDZ1)
У первого шаг цены 1, у второго 0.1, формат %d для целых чисел.
Кривые шибки в QLua
 
Цитата
TGB написал:
Параметр nup = 0 означает, что это C - функции
Этот параметр указывает количество upvalues, прицепленных к каждой функции. Их можно и к сишным функциям прицепить. Соответственно причина явно не в этом. И таки нет, там все просто, lua_pushcfunction + lua_setglobal (возможно, в сорце это один вызов и компилятор его автоматом так разворачивает, тем не менее).
Нельзя ли ключ из secring.txk использовать из токена?, qcrypto32, secring.txk, yubikey, rutoken, openssl, pki
 
Цитата
Arrigo написал:
Используете в телефоне "разблокировку по отпечатку"? ))
Возможно кого-то шокирует, я вообще сотовой связью не пользуюсь. Есть мыльница, в которую аккумулятор вставляется непосредственно перед авторизацией где-то по смс и вынимается непосредственно после. Мыльница ничего такого не умеет и слава богу.
Нельзя ли ключ из secring.txk использовать из токена?, qcrypto32, secring.txk, yubikey, rutoken, openssl, pki
 
Цитата
suturee написал:
Пальцы не нужны.
Принято, откладываем пальцы в сторону.
Цитата
suturee написал:
этот приватный ключ внутри токена и должен генерироваться, и за его пределы не выходить.
Все равно не понимаю, как оно может работать на автомате без митма со стороны поставщика ключа. Пусть квик начал подключение, ему нужен сессионный ключ, где он будет искать его, если таблетка у юзера где-то далеко? Или она на сервере воткнута? Кто тогда кнопку жмет? Если она таки у юзера, надо юзера как-то найти и запрос ему послать, что малореально без помощи сервера производителя таблетки, а это значит, что итоговый сессионный ключ пойдет тоже через сервер производителя таблетки (обратно от юзера к квику). Что в общем и есть митм тксть по обоюдному согласию.
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 28 След.
Наверх