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

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

Страницы: Пред. 1 ... 12 13 14 15 16 17 18 19 20 21 22 ... 28 След.
QUIK 8.0 x64: что нужно знать перед обновлением на новую версию
 
Цитата
Imersio Arrigo написал:
Таки пгостите, но кто вам сказал что это именно "создает файл в свопе"?
Билли, кто ж еще
Цитата
If hFile is INVALID_HANDLE_VALUE, the calling process must also specify a size for the file mapping object in the dwMaximumSizeHigh and dwMaximumSizeLow parameters. In this scenario, CreateFileMapping creates a file mapping object of a specified size  that is backed by the system paging file instead of by a file in the file system.
Это вот backed означает, что если страничку надо из озу выдавить, ее будут выдавливать в этот самый своп, а не в обычный файл. При этом какая-то страничка в файле/свопе под нее должна быть зарезервирована, именно поэтому нельзя мэппинг растить динамически, и как только он создан, сразу же файл становится равного размера. Для маленьких мэппингов, кстати говоря, винда может залочить странички из nonpaged pool вместо свопа, поэтому до некоторого (небольшого) размера функция не фейлит даже без свопа.

Цитата
Imersio Arrigo написал:
Т.е. если у машины отключен своп, то я таким ее уроню штоле?
Эт где это я такое написал-то. Как раз речь шла о том, что функция сфейлит и ошибка будет #1455, ERROR_COMMITMENT_LIMIT, или в текстовом виде "The paging file is too small for this operation to complete.". А вот если б она позволяла выделить мэппинг без привязки страницы к месту на диске и потом где-то в ядре понадобилость страницу выдавить, вот тут был бы бсод.
Журнал сделок и расчет результата сделок
 
Цитата
Иван написал:
пример нескольких строк из таблицы
С этим-то какие сложности
Код
{
  { direction = 'B', value = 33000.0 },
  { direction = 'S', value = 32000.0 },
}
LUA скрипты выполняются очень медленно если не пользоваться ноутбуком, При погашенном экране выделяется мало процессорного времени
 
Цитата
Сергей написал:
Как ни странно, выставление этого параметра на 100% - помогло. И при отсутствии нагрузки процессор не греется.
Мне тоже странно. Кроме множителя, у процессора есть еще кучка режимов "полусна", они тоже как-то используются. Предположу, что он в этот самый "полусон" входит, а обратно без юзера выходить не спешит, фиксация множителя просто костылит это поведение. Но это уже из биоса настройки и сильно зависят от прозводителя, универсального "куда глядеть" я не знаю.
QUIK 8.0 x64: что нужно знать перед обновлением на новую версию
 
Цитата
AndyJOKER написал:
Своп 4 гига фиксированно. Не вижу смысла увеличивать.
Эт напрасно. CreateFileMapping(NULL, ...) создает "файл" таки в свопе, и если там места не будет, получите ошибку, очень похожую на приведенную. Это не значит, что винда будет страницы туда физически писать, если в памяти места хватает, но зарезервировать она должна, бо в случае необходимости вытеснить страницу и некуда - ей придется в бсод падать, а она этого не очень хочет.
LUA скрипты выполняются очень медленно если не пользоваться ноутбуком, При погашенном экране выделяется мало процессорного времени
 
Цитата
Сергей написал:
Описания о том как, когда и что именно устанавливается на 5% сходу нагуглить не смог.
Устанавливается множитель процессора. То есть шина всегда работает на 100МГц, а процессор на частоте шины, умноженной на этот самый множитель. Скажем, если процессор заявлен на 3ГГц, у него множитель максимальный 30, вот это 100%. Там посложней чутка, не всякий произвольный множитель может быть установлен, так что проценты скачками действуют, ну и 0% это множитель 8 всегда, а не ноль, как можно было бы подумать. Переход туда-сюда происходит очень быстро, это точно не то, что может притормаживать. Можно в cpu-z посмотреть, как это все меняется в реальном времени от малейшей нагрузки.
LUA скрипты выполняются очень медленно если не пользоваться ноутбуком, При погашенном экране выделяется мало процессорного времени
 
Цитата
Сергей написал:
Попробую выставить этот параметр на 100%.
Не стоит, это приведет к тому, что процессор будет молотить на полной частоте вхолостую, греться только и ничего более. Что-то другое должно быть.
LUA скрипты выполняются очень медленно если не пользоваться ноутбуком, При погашенном экране выделяется мало процессорного времени
 
Цитата
Сергей написал:
Как будто это какая-то бага/фича винды, которая анализирует пользовательскую(а может еще какую) активность и снижает приоритет.  
В настройках энергосбережения посмотрите "дополнительно", там куча всего, по мере неиспользования выключается диск, сеть, процессор. На десктопе там более-менее вменяемые дефолты, на ноуте может быть очень агрессивно по дефолту настроено.
LUA скрипты выполняются очень медленно если не пользоваться ноутбуком, При погашенном экране выделяется мало процессорного времени
 
Погуглите away mode, не оно ли часом. Вообще можно набросать скрипт, который будет сообщать винде, что квик - мультимедийное приложение и не надо его ни в чем ограничивать, но потребуется длл грузить, средствами только луа этого не сделать.
Журнал сделок и расчет результата сделок
 
Пусть у нас есть табличка луа в виде массива со сделками, у каждой сделки есть как минимум поля direction = { 'B' | 'S' } и value (объем в деньгах).
Код
function calc_result(tradelist)
  local result = 0
  for i,t in ipairs(tradelist) do
    if t.direction == 'B' then
      result = result - t.value
    elseif t.direction == 'S' then
      result = result + t.value
    else
      error('WTF')
    end
  end
  return result
end
Журнал сделок и расчет результата сделок
 
Сделка это один пункт из вашего списка, у нее результат "купились/продались икс контрактов по цене игрек". А результат серии сделок посчитать так: завести переменную, равную 0. Каждый раз, когда что-то купилось, уменьшать переменную на объем покупки. Каждый раз, когда что-то продалось, увеличивать ее на объем продажи. Когда закрылось все, в переменной останется чистая разница по всем проведенным сделкам. Считать можно как в реалтайме, так и задним числом по списку сделок.
QUIK 8.0 x64: что нужно знать перед обновлением на новую версию
 
Цитата
AndyJOKER написал:
из-за утечки памяти
Это не утечка же ж, физическая память 30% (внизу на скрине). Я б в первую очередь подумал, что у вас своп отключен или квоты какие-то стоят.
Поддержка квик под linux, Нужно обновление инструкции
 
Цитата
новичок написал:
тк иначе зачем делать целиком среду выполнения с GUI.
С этим как раз более понятно, раз mali заявили поддержку директа, чего бы не попытаться на этом поле поиграть и слегка подвинуть гл. То-то я гляжу, чего это вдруг озаботились созданием свопчейна, не привязанного к окну, неужто битмэпы рисовать на свопчейн (в чем смысл сего действа), а оно вон оно что, на никсы замахнулись. Жаль ядра виндового, загнется видимо, будет "виртуальная машина виндовс" поверх чего угодно. Ядро-то как раз чуть ли не единственное хорошее, что в винде есть.
Библиотека lua выгружается раньше чем dll
 
Это часть более общего косяка, не прибивается стейт при ошибках и соответственно не собирается мусор. Про main не знал, тоже в копилочку добавится, очевидно, что ноги оттуда же растут. Обещали поправить вот прям с ближайшей версии.
Поддержка квик под linux, Нужно обновление инструкции
 
Цитата
новичок написал:
кого поддержат HW-вендоры
Тут еще намечается отказ эпла от интела, вон их уже и русскими шпиёнами объявили. Теперь мс под ту же тему закладывается. Замес нешуточный ожидается по всему фронту.
Поддержка квик под linux, Нужно обновление инструкции
 
Цитата
новичок написал:
пс:
Цитата
The company is going to decouple Win32 and UWP APIs from the OS, and  developers will be able to access them with NuGet, creating a common  platform.
Капец венде в общем. Теперь официально.
Удаления всех комментариев из скрипта.lua
 
Цитата
_sk_ написал:
Anton, Вы меня поражаете своей компетентностью в различных областях в хорошем смысле этого слова! Спасибо за разнообразную помощь и доброжелательное отношение!
Спасибо на добром слове. Хотя порой думается, что помогаю обойти мелкие проблемы на пути к большим.
Удаления всех комментариев из скрипта.lua
 
Цитата
Archie_ написал:
А что, проверить расширения у файла, это действительно условие в одну строчку кода.
Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий (Прутков). Из прочего хочу обратить внимание на один рефрен:
Цитата
я не программист
Вы программируете, следовательно в моменте вы программист. Внезапно.
Удаления всех комментариев из скрипта.lua
 
Цитата
Archie_ написал:
и эта защита пишется в пару строк и за пару минут
Оптимистичный вы человек.

Цитата
Archie_ написал:
А как теперь - поломаете ?
Я и первый раз цели поломать не ставил, а хотел показать, что вот упустили какую-то особенность и вуаля. Уверен, что есть особенности еще, которые ни вы, ни я не знаем. Речь об этом, а не о конкретном косячке. Впрочем, уже писал, если все устраивает и вы не систему ПРО делаете, то и ладно и хорошо.
Куплю и раздам функции для LUA 5.3 x64, Нужны w32.dll lfs.dll qvcl.dll.
 
Цитата
Anton написал:
Автологин кстати тут недавно выкладывал тоже
Ссылка протухла, вот новая. Работает абсолютно по другому принципу, нежели вариант с w32 и вариант от s_mike@rambler.ru, кого дллофобия не очень мучает, могут заценить.
Удаления всех комментариев из скрипта.lua
 
Цитата
Archie_ написал:
еще один баг устранили))
Это экстенсивный путь программирования. Обратите внимание, у вас в коде нет вообще пути "я не буду это парсить". Сунем на вход c++ и скрипт бодренько поудаляет из него все, что ему показалось луа-стайл комментарием. Ну, не запустит ракеты на воронеж, и то спасибо. Хотя кто знает, точно ли не запустит. В общем, где-то когда-то как-то оно все будет работать, если этого достаточно, то и ладно.
Удаления всех комментариев из скрипта.lua
 
Цитата
Archie_ написал:
если вам удастся его поломать, то дайти мне знать
Код
--[[ parse me ]]--
function test()
   print("\"--[[")
   print("\"]]--")
end

test()
Поток обезличенных сделок, Прекращается трансляция обезличенных сделок при стабильно работающем quik (выбранные инструменты вновь становятся неактивными)
 
Цитата
Иван Ру написал:
рекомендации
Выше писал единственный, по-моему, более-менее рабочий вариант: открыть ТВС со ВСЕМИ инструментами и засунуть ее куда-нибудь на дальнюю вкладку навечно. Из столбцов можно один какой-нибудь выбрать, значения не имеет. Правда, с этим тоже были какие-то глюки, если другие ТВС открывать-закрывать.
Куплю и раздам функции для LUA 5.3 x64, Нужны w32.dll lfs.dll qvcl.dll.
 
Народ как-то не любит "сторонние длл", так что насчет народной славы я б посомневался. Автологин кстати тут недавно выкладывал тоже, так что выбор и так имеется без того варианта через w32.
Удаления всех комментариев из скрипта.lua
 
Ваш парсер относится к классу LL(k), при этом грамматика луа леворекурсивная, то есть в принципе всегда можно подобрать такой скрипт, на котором ваш парсер сфейлит. При этом, поскольку он полностью весь луа не парсит, он сам этого не заметит и выдаст мусор (а должен сказать "не понимаю вот эту вот конструкцию"). Вы верно заметили выше, что лучше день потерять, потом за пять минут долететь, только теряете дни не в ту сторону. Писать LL(k) для луа бессмысленно, как его ни усложняй. Парсер должен быть полным и в данном случае построен по принципу рекурсивного спуска, если вы конечно не хотите загнаться и написать GLR, потому что LALR на грамматике из документации тоже не строится, конфликты возникают. Отсюда этапы пути: а) привести грамматику к форме Грейбах; б) доказать, что получилась грамматика, эквивалентная исходной; в) только потом браться за код (по форме Грейбах уже очень просто написать рекурсивный спуск). Или воспользоваться каким-то генератором, хоть яком, хоть бизоном, хоть этим на яве, забыл как его, хотя с ними геморроя будет больше пожалуй, чем при чисто ручном подходе.
Пустое окно экспорт в базу данных ODBC, ODBC
 
Цитата
Дмитрий написал:
Опять возникает ошибка.
В лог-то заглядывали сами? Там же ж английским по белому написано, что за ошибка.
Поток обезличенных сделок, Прекращается трансляция обезличенных сделок при стабильно работающем quik (выбранные инструменты вновь становятся неактивными)
 
Цитата
Иван Ру написал:
Тиковые графики работают корректно, у меня одно окно привязанное к таблице текущих торгов, при переключении между инструментами данные перегружаются.
Вот этот момент раньше не был озвучен и, сдается мне, собака здесь и порылась. Если так, то когда
Цитата
устанавливается фильтр с экспортом данных по одному инструменту (инструмент может быть разный)
, этот "разный" инструмент должен быть как раз тот, на котором стоит фокус в таблице торгов (и, соответственно, открыт тиковый график).
Critical error ACCESS_VIOLATION in script *.lua, Адаптация скриптов под версию 8.5
 
Цитата
Павел Корякин написал:
А джуна похоже нет дистрибутива 8.5.2.
Можно попробовать накатить поверх общий апдейт, т.е. просто файлы позаменять из зипа. Не уверен, что стопроцентно сработает, по идее должно.
Critical error ACCESS_VIOLATION in script *.lua, Адаптация скриптов под версию 8.5
 
Ставьте 8.5.2, в 8.5.1 даже пробовать не стоит, там луа косячный по всем пунктам.
Индикатор с уровнями для 3 таймфреймов
 
Это вы хотите выполнить так называемый ресемплинг цифрового фильтра. Точного решения у задачи нет. Очень грубое решение: если вы переключаетесь с таймфрейма X минут на таймфрейм Y минут, то чтобы машка осталась примерно такой же, ее период надо умножить на (X/Y). Если надо точнее, то надо ресемплинг по формулам делать и получится в итоге дробная длина машки. Для ema это не проблема (только придется вручную писать, квиковская только с целыми периодами работает), для sma не знаю, как можно дробную длину интерпретировать. Пример в цифрах: на минутках у вас емашка с периодом 10. Переключаетесь на 5 минут, точный период емашки на пятиминутках будет 2.301645. Как видите, близко к 1/5 от 10, но не точно равно.
Уведомление о необходимости обновления торговых терминалов в связи с изменениями на срочном рынке Московской биржи, Список проблем при работе устаревших версий QUIK после обновления торговой системы срочного рынка МБ
 
Цитата
TGB написал:
что каждый из нас может остаться при своем мнении.
Ну я-то точно останусь при мнении, что "trade_num" это строка, а 111111 это число.
Уведомление о необходимости обновления торговых терминалов в связи с изменениями на срочном рынке Московской биржи, Список проблем при работе устаревших версий QUIK после обновления торговой системы срочного рынка МБ
 
Вы типы ключей смотрите.
Уведомление о необходимости обновления торговых терминалов в связи с изменениями на срочном рынке Московской биржи, Список проблем при работе устаревших версий QUIK после обновления торговой системы срочного рынка МБ
 
Цитата
TGB написал:
Я специально посмотрел записи таблицы "all_trades" в QUIK 8.5.1.18.  Все поля ее записей строковые.
Как и где вы посмотрели? Луа возвращает тип number для номера сделки, в alltrades.dat они лежат в виде 64-битных целых (просто поверьте). Так где вы строки увидели?
Удаления всех комментариев из скрипта.lua
 
Цитата
Archie_ написал:
Если Учесть  что в коде нету многострочных комментариев, то эта функция сработает в любой ситуации правильно и без ошибочно !!!
А если в файле нет комментариев вообще, то и strpy сработает безошибочно.

Цитата
Archie_ написал:
Так что если не можете помочь, то пройдите мимо и не умничайте, ну или просто возьмите и помогите.
Я вам помог, если что. Вот прям щас можете начинать гуглить "грамматика", "парсер". Потом, когда засунете грамматику луа в парсер, начнете гуглить "леворекурсивная грамматика". Или вы ждали, что вам готовый код дадут в виде вспоможения?
Удаления всех комментариев из скрипта.lua
 
Надо полноценный парсер луа писать, это все колхоз и работать будет только в простых случаях. Грамматика луа есть в документации, дело за "малым".
Уведомление о необходимости обновления торговых терминалов в связи с изменениями на срочном рынке Московской биржи, Список проблем при работе устаревших версий QUIK после обновления торговой системы срочного рынка МБ
 
Цитата
TGB написал:
Почему нельзя сделать. чтобы номер заявки был текствой переменной?
Так и думал, что это будет приведено. Потому что есть например OnAllTrade. По каждому тику квику пришлось бы:
1) искать строку с номером заявки в хранилище луа
2) не находить ее, выделять память, пихать новую строку в хранилище луа
3) дергать колбек
4) убивать ссылку на строку
5) через каждые несколько тиков луа придется собирать мусор.
Это было бы не просто медленно, это убило бы вообще все, квик бы плелся как черепаха и зависал от каждого движения мышки. И это только одно.

Цитата
TGB написал:
32-ух разррядные приложения
Размер alltrade.dat видели? Он целиком в память мэпится. Какие 32-разрядные уже.

Цитата
TGB написал:
неужели руководство квика считает, что они не потеряют клиентуру?
Их "клиентура" это брокеры. Не потеряют. Что брокер поставит взамен? Хотел перечислить с эпитетами, но не буду никого обижать.
Темная тема
 
Тут надо понимать, откуда ноги растут. Квик темную тему рисует через GDI+, это чисто софтовая либа и очень CPU-прожорливая. То есть расход CPU не сократить никак. Это первое. Второе это композиция, это как раз на GPU делается. На семерке ее можно выключить в визуальные эффекты -> отключить композицию рабочего стола. На восьмерке и десятке ее выключить нельзя от слова вообще, отключение прозрачности это другое и повлияет мало. Никаких радикальных решений со стороны арки тут быть не может без полного переписывания всей графики, что вряд ли мы увидим, а если увидим, то как бы вместе с ними не выкатили минимальные требования к ОС типа 8.1 или даже 10 (свят-свят).
Quik 8.5 не освобождается память
 
Цитата
Egor Zaytsev написал:
Мы исправим ошибку в ближайшем       обновлении ПО.
Радостно слышать. Немного напрягает уточнение "синтаксических". На этом этапе подчищать еще особо и нечего, интересно именно когда скрипт уже поехал и насоздавал всякого.

Это, похоже, последняя ошибка в qlua на уровне собственно языка.
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Цитата
Imersio Arrigo написал:
раз обе библиотеки есть
Нас грузит какая-то определенная версия и мы с этой версией должны работать. Можно не линковаться с luaxx.dll, а подгружать ее динамически, чтобы одна длл работала во всех 8 версиях, но это геморрой тот еще. Там тупо придется разные функции импортировать в зависимости от версии и писать обертки для согласования, причем не везде это тривиально можно сделать, не говоря уже о неоправданном оверхеде в рантайме. Посмотрите на lua_upvalueindex например. В нормальном случае она компилируется просто в константу, в случае "универсальной длл" это будет что-то вроде
Код
inline int lua_upvalueindex(int idx)
{
   return ((luaver > 51 ? LUA_REGISTRYINDEX : LUA_GLOBALSINDEX) - idx);
}
И так повсюду. Оно кому-то надо?
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Цитата
Imersio Arrigo написал:
поддерживает две версии 5.1 и 5.3, не?
По крайней мере для пользовательских скриптов это малореально в принципе. Ну то есть героически порешать может и можно, только зачем. Скорей всего какой-то из плагинов тоже на луа завязан и его до сих пор не переписали. Как перепишут, так и 51 выкинут.
Раскрытие графика во весь экран - сделать по двойному щелчку мыши
 
1. Чтобы у кода подпись была и паранойя не мучала реципиентов. Ну как у квика подпись арки.
2. На сях с плюсами. Но не выложу, сорри. Если не устравивает как есть, ну что ж, может арка что придумает к тридцатому году.
Раскрытие графика во весь экран - сделать по двойному щелчку мыши
 
Цитата
Сергей написал:
Наличие непонятных .dll смущает.
Ну тогда только страдать. Покупать сертификат ради выложить бесплатно у меня альтруизма не хватит.
Цитата
Сергей написал:
код на LUA
На голом луа это не сделать.
Раскрытие графика во весь экран - сделать по двойному щелчку мыши
 
Цитата
Сергей написал:
Если никак, то прошу сделать, чтобы можно было раскрывать график (окно) двойным щелчком, удерживая Alt или Ctrl или Shift.
Двойным щелчком как-то ужасноватенько звучит. Но вот стандартную F11 можно назначить на раскрытие-сворачивание любого активного окна в квике. И, более того, это уже сделано. Скриптиком ессна плюс длл. Пока я не передумал, качать здесь. Должно работать с любой версией квика. Папочку из архива вынуть, положить в папку квика, добавить и запустить qfs.lua, ставить фокус на графики-таблицы, жать F11, наслаждаццо.
Quik 8.5 не освобождается память
 
Цитата
Egor Zaytsev написал:
Проблема на 8.5.2?
Подтверждаю наличие в 8.5.2 и во всех предках. Другой (возможно, более наглядный) вариант тестового скрипта не раз уже приводил:
Код
-- global table
gtbl = {}
setmetatable(gtbl, { __gc = function() message("gc global level") end })

-- chunk-level table
local stbl = {}
setmetatable(stbl, { __gc = function() message("gc chunk level") end })

function OnInit()
   message("OnInit")
   -- error("OnInit error")
end

function main()
   message("main")
   local ltbl = {}
   setmetatable(ltbl, { __gc = function() message("gc function level") end })
   error("main error")
end
При первом запуске квик показывает ошибку в мейне, сборки мусора нет. Если запустить его снова, сначала отработают все финализаторы в положенном порядке. Сам факт, что стейт со всеми глобалами переживает скрипт, уже на мысли наводит.
Перезапуск LUA-скрипта из-за ошибок
 
Цитата
Иван написал:
мне приходится закрывать созданную таблицу
Вот для этого и нужно ошибки на границе ловить, чтобы подчистить за скриптом все им созданное. Для этого в луа есть метаметоды __gc, но в квике при ошибке они не работают, баг пока еще не поправили. Поэтому придется извращаться с ловлей ошибок pcall'ом. Что же касается автоматического перезапуска, что-то мне не думается, что это здравая идея. Запустите вы скрипт тестировать одним контрактом и уйдете, он купит контракт - рухнет, перезапустится через секунду, купит еще один - рухнет, и так на все плечи. Лет 15 назад у меня еще из старого велса так скрипт потестировался. Благо в плюс по итогу, а могло бы и не в плюс. Если скрипт упал, то пусть лежит уже до выяснения причины, это не есть один из допустимых сценариев его работы.
Перезапуск LUA-скрипта из-за ошибок
 
Вы защитили только непосредственно тело включаемого скрипта, если он создаст какие-то функции и вы их потом вызовете из мейна например и будет ошибка в этой функции, она точно так же пролетит до квика. Заворачивать в pcall надо мейн и все колбеки, то есть ловить ошибки на границе с квиком. Ошибка при загрузке скрипта (типа синтаксической ошибки или не загрузилась длл) лучше вообще не ловить, пусть рушится, на этом этапе еще безопасно.
Неправильное значение Totalnet в функции onTrade()
 
Цитата
Иван написал:
Сделал проверку в трех функциях:CheckLastNumOnTrade = 0;CheckLastNumOnOrder = 0;CheckLastNumOnStopOrder = 0;
И отрезали себе всю логику. По ордеру в 10 контрактов пришел ответ "1 залит", вы списали ордер целиком и забыли про него. Если делать хорошо, то "просто" не получится, а если надо "просто", то и проблем нет, но и результат может удивить в какой-то момент (неприятно).
Неправильное значение Totalnet в функции onTrade()
 
Цитата
Иван написал:
А как с этим бороться?
С этим не надо бороться, это нормальное поведение для event-driven архитектуры, с этим надо работать. Вы отправляете транзакцию (без немедленной ошибки) и уходите заниматься другими делами, а потом происходит что-то из:
- явное подтверждение статуса транзакции (OnTransReply)
- неявное подтверждение статуса транзакции (OnOrder, OnTrade, ...)
- потеря соединения (OnDisconnected)
- таймаут (т.е. никакого ответа вообще не получено за заданное время; это ваша задача, завести таймер)
- крах скрипта (если ошибки ловите и обрабатываете, тут самое развеселье начнется)
Все это может произойти в любом порядке и не один раз, к этому надо быть готовым и все. Заводите объект "транзакция номер id", по колбекам меняете его состояние. Когда состояние стало "консистентным" (все выполнено или все отклонено) - убиваете объект. Возможные дальнейшие события с этим id вас уже не волнуют, игнорируете их. В свою очередь объект "транзакция" может порождать или убивать объект "заявка", у того своя жизнь и свои события. В свою очередь объект "заявка" может влиять на объекты "сделка" и "позиция". Тут уже ближе к верхнему уровню, в конечном итоге все затевалось, чтобы изменить "позицию".
Проработка стратегии на виртуальной торговле, Формирование стратегии, виртуальная торговля
 
Цитата
Ludmila написал:
Я так понимаю Тестирование на истории в Quike не работает.
Если хотите добрый совет, то вот он: не надо стратегии на qpile писать. Экспортируйте все нужное наружу, импортируйте заявки, все остальное не в квике.
Quik 8.5 не освобождается память
 
Цитата
Старатель написал:
При остановке скрипта в результате ошибки память не освобождается.
Еще со старого луа осталось. Что характерно, при повторном запуске того же скрипта - добивается. Но это часто слишком поздно, если финализеры используются. Пытался обойти так
Код
local function safecall(fn, ...)
   local a
   if nil == arg then a = nil else a = unpack(arg) end
   local s, e = pcall(fn, a);
   if not s then
      _G = nil
      collectgarbage()
      error(e)
   end
end

OnI nit = function()
   safecall(function()
      message("OnInit")
      --error("error in OnInit")
   end)
end

main = function()
   safecall(function()
      message("main")
      local ltbl = {}
      setmetatable(ltbl, { __gc = function() message("ltbl finalizer") end })
      error("error in main")
   end)
end
Но это ж жесть, колбеки через pcall пропускать. Вот то, что у меня в safecall при ошибке, надо и в квике при ошибке делать.
Звук Lua в фоновом режиме
 
Что-то не так разложили. Рядом с вашим скриптом должны лежать qPlaySound.lua (из первого варианта) и qPlaySound.dll, ваш скрипт должен require("qPlaySound"). Вот для удобства все содержимое тестовой папки (ага, спецом поставил седьмой квик и проверил). Распакуйте архив, перенесите папку lua целиком в папку квика, в квике добавьте и запустите qplay.lua. Должен квакать раз в две секунды. Если все ок, qplay.lua можно выкинуть и дальше пользоваться как хочется.
Страницы: Пред. 1 ... 12 13 14 15 16 17 18 19 20 21 22 ... 28 След.
Наверх