Nikolay написал: циклически организовать проверку числа записей и если оно увеличилось, то считывать вновь пришедшие блоки.
Индекс запсииси в таблице ордеров
Пользователь
Сообщений: Регистрация: 12.05.2020
08.07.2025 11:39:06
Цитата
Nikolay написал: Все же пока это происходит только после OnCleanUp, а не вдруг.
Цитата
Nikolay написал: но назвать это ожидаемым - вряд ли.
------ В функции getItem "плавающая" ошибка при работе с ордерами. Не видны проблемы с ее исправлением. Рабочее место QUIK и сервер это продукты ARQA.
Индекс запсииси в таблице ордеров
Пользователь
Сообщений: Регистрация: 12.05.2020
08.07.2025 00:32:24
Цитата
Nikolay написал:. стоит принять за истину, что теперь терминал не гарантирует в таблицах сохранность порядка записей.
Они "дышат" . Это значит, что функция SearchItems работает некорректно. Она выдает таблицу индексов записей. В какой то момент (например через 3 секунды) эти индексы используются для обращения к записям, а записи могут "разбежаться" . ---- Предложение разработчику QUIK: 1) В таблицы QUIK добавить служебное поле номер записи в таблице и использовать его значение для обеспечения сохранности порядка в таблицах. 2)
Цитата
TGB написал: надо чтобы заявки в таблице появлялись с формированным номером заявки и trans_id;
Поддержка, пожалуйста, "донесите" предложение разработчику.
Вызов getDataSourceInfo() из Init() в Lua индикаторах
В скрипте можно создать любые индикаторы (с полным контролем над ними) с использованием источников (DS), полученных функцией CreateDataSource. Кроме того в ветке представлен модуль подключения в скрипте к индикаторам папки LuaIndicators с готовыми индикаторами с сайта разработчика QUIK.
Индекс запсииси в таблице ордеров
Пользователь
Сообщений: Регистрация: 12.05.2020
03.07.2025 20:25:00
Очередная ветка на тему таблицы заявок, в каком то смысле, продолжение темы:
Пользователям от таблицы заявок (стоп-заявок) надо чтобы: 1) заявки в таблице появлялись с формированным номером заявки и trans_id; 2) индекс заявки, пока она существует обеспечивает прямой доступ к ней и не меняется. Как это будет реализовано дело разработчика QUIK и, вообще, нас не интересует. Сколь угодно быстро, но неправильно работающие программы никому не интересны.
Замечания по реализации в QUIKе обработки заявок (и, наверное стоп-заявок).
Пользователь
Сообщений: Регистрация: 12.05.2020
19.06.2025 09:49:33
Цитата
paluke написал: К примеру, если предполагается, что есть единственный скрипт, работающий с инструментом - все заявки его, trans_id вообще может быть неинтересен.
С этим частным случаем можно согласиться, но все таки QUIK не "живопырка", используемая только в этом частном случае.
Замечания по реализации в QUIKе обработки заявок (и, наверное стоп-заявок).
Пользователь
Сообщений: Регистрация: 12.05.2020
18.06.2025 12:26:44
Цитата
Anton Belonogov написал: Описанные изменения негативным образом скажутся на скорости получения информации терминалом.
1. Зачем пользователю быстро видеть "сырые" данные, которые нельзя использовать непосредственно в своем скрипте? 2. Сам факт многократного обсуждения данной темы пользователями показывает, что в обработке заявок есть проблема. Пользователю все равно приходится выполнять ту работу, которая не реализована разработчиком QUIK, а именно, писать фрагмент учитывающий и обрабатывающий записи заявок без trans_id. Где тут скорость?
Замечания по реализации в QUIKе обработки заявок (и, наверное стоп-заявок).
Пользователь
Сообщений: Регистрация: 12.05.2020
18.06.2025 08:41:23
Цитата
Anton Belonogov написал: Для ускорения передачи информации сервер изначально может отправлять заявки без заполненного trans_id, это не является ошибкой.
Что может делать в скрипте пользователь с заявкой без заполненного trans_id? ----- Есть по крайней мере два варианта реализации того, чтобы пользователь получал заявку всегда с trans_id. 1. Счетчик выдаваемый функцией getNumberOf увеличивается только после заполнения trans_id. 2. Для формирования записей заявок создается буфер, в котором все делается как сейчас в таблице, но записи из буфера сохраняются в таблице заявок только после заполнения trans_id.
Замечания по реализации в QUIKе обработки заявок (и, наверное стоп-заявок).
Пользователь
Сообщений: Регистрация: 12.05.2020
16.06.2025 14:27:32
Цитата
Anton Belonogov написал: По предоставленному описанию не смогли воспроизвести подобную проблему при вызове функции getItem.
Эта ситуация "плавающая" (я ее увидел один раз, но с распечатанными параметрами доступа к таблице), связанная, возможно, с синхронизацией доступа к записям таблицы. У меня нет кода стабильно воспроизводящего эту ситуацию.
Цитата
Anton Belonogov написал: 1. Отсутствие trans_id на исходной записи заявки - корректное поведение. Причины обсуждались на форуме ранее, рекомендуем ознакомиться, например, с этой темой .
Я знаком с этим обсуждением. Там объясняется как сделано сейчас. Но зачем и на основании чего выполняется запись в таблицу заявок без trans_id? Если на основании созданной пользователем транзакции, то в ней trans_id есть.
Замечания по реализации в QUIKе обработки заявок (и, наверное стоп-заявок).
Пользователь
Сообщений: Регистрация: 12.05.2020
11.06.2025 07:20:27
Интересно бы было увидеть ответ поддержки.
limit_kind в таблице depo_limit
Пользователь
Сообщений: Регистрация: 12.05.2020
11.06.2025 07:14:07
Цитата
Anton Belonogov написал: Это взаимоисключающие параметры, сервер транслирует на терминалы только один из них, поэтому смысла в дополнительном параметре для QLua нет.
Не согласен. Разве "Дата предстоящих расчетов" рассчитывается без учета "Режима торгов"? Пожалуйста, объясните какие проблемы возникают у брокера и пользователя, если дополнительно к тому как было (limit_kind - "Режим торгов") транслировалось бы поле (возможно пустое) "Дата предстоящих расчетов"? Может быть разработчик не стал создавать новое поле с целью большой экономии памяти ?
Anton Belonogov написал: limit_kind - это параметр позиции на сервере QUIK, а не параметр инструмента в Торговой системе.Торговые режимы остаются прежними, изменяется только ведение позиций на сервере, что позволяет для каждой позиции видеть даты предстоящих расчетов.
Почему бы не оставить в покое limit_kind (как было)? В чем была проблема завести новое поле "Дату предстоящих торгов"?
Замечания по реализации в QUIKе обработки заявок (и, наверное стоп-заявок).
Пользователь
Сообщений: Регистрация: 12.05.2020
06.06.2025 08:06:25
Цитата
nikolz написал: Возможно, причина в том, что запись в таблицу заявок производится после выхода из колбек
Причина мне не интересна. Я написал как сделать так, чтобы у пользователей было меньше вопросов.
Замечания по реализации в QUIKе обработки заявок (и, наверное стоп-заявок).
Пользователь
Сообщений: Регистрация: 12.05.2020
05.06.2025 12:55:21
1. trans_id известен в момент подачи заявки, но в таблице orders поле trans_id в записи заявки формируется с задержкой. Это приводит к тому, что при обращении к существующей записи таблицы orders возможны случаи отсутствие значения trans_id. Не видно никаких проблем в том чтобы поле trans_id формировалось в момент создания записи в таблице orders. Почему так не сделано?
2. Бывали случаи (сразу после снятия заявки), когда при чтении существующей записи: order = getItem_wait('orders', Индекс_существующей_записи) значение order равно nil. "Костыль" на такие ситуации следующий:
Код
local function getItem_wait(tbl_quik, ind)
local ob = getItem(tbl_quik, ind)
local N = 500
while not ob do
sleep(10)
ob = getItem(tbl_quik, ind)
N = N - 1
if N <= 0 then error ('Не дождались результата чтения таблицы ' .. tbl_quik .. ' по индексу ' .. tostring(ind)) end
end
return ob
end
Предлагается тело функции getItem_wait в каком то виде реализовать в штатной функции getItem.
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 12.05.2020
04.06.2025 11:28:14
Цитата
Anton Belonogov написал: Когда будет выпущена версия с исправлением, мы направим уведомление в эту тему форума.
В версии 12.4.0.38 ошибка устранена.
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 12.05.2020
06.05.2025 07:43:29
Цитата
Anton Belonogov написал: В ПО терминала QUIK действительно есть ошибка в работе функций обратного вызова Lua скрипта, приводящая к рестарту сборщика мусора без учёта его предыдущего состояния. Ошибка будет исправлена в очередных обновлениях ПО.
Вышло очередное обновление версия 12.3.0. Ошибка не устранена.
Подписка и отписка SetUpdateCallback, Подписка и отписка SetUpdateCallback
Пользователь
Сообщений: Регистрация: 12.05.2020
15.04.2025 15:02:42
Цитата
paluke написал: Поддержка вместо 1. #### и 2.#### предлагала SetEmptyCallback() перед Close().
Да. Это работает. Но в документе: функция SetEmptyCallback позволяет получать данные с сервера. И нет описания, что Close не закрывает источник без предварительного вызова SetEmptyCallback.
Подписка и отписка SetUpdateCallback, Подписка и отписка SetUpdateCallback
Пользователь
Сообщений: Регистрация: 12.05.2020
15.04.2025 07:36:22
1.
Цитата
VPM написал: На самом деле проблема стара как этот мир (в нашем случае квик)
Скрипты в QUIKе это программы реального времени, в которых существенен фактор времени. В коде, выложенном ниже, определена функция CreateDS, которая дожидается появления данных DS.
Код
stopped = false
function main()
-------------------------------------------------------
-- Создание параметризированной функции-замыкания коллбека (с дополнительными (кроме index)
-- параметрами ds и par, задаваемыми в момент создания).
-- Использование ds:SetUpdateCallback(CreateUpdateCallbackDS(func, ds, par))
-- параметр par необязателен, но если он fаlse, то тело функции не выполняется.
-- ! Исключения в функции коллбека перехватываются. Коллбек при этом отключается с выдачей сообщения об исключении.
-- Параметры:
-- func(index, ds, par) - функция обработки коллбеков (вызываемых по изменениям свечи) --
-- ds - открытый источник;
-- par - параметр (может отсутствовать) --
-- index - индекс свечи при выполнении коллбека;
-- Результат: параметризированная функция-замыкание - параметр для функции ds:SetUpdateCallback ---
local CreateUpdateCallbackDS = function(func, ds, par)
return
function(index) -- Обертка для func --
if par ~= false then
local kod, mes = pcall(func, index, ds, par) -- в защищенном режиме --
if mes then
message('Исключение в коллбеке (он отключен, его 3-й параметр : '.. tostring(par) .. '). Текст исключения: ' .. mes, 3)
par = false
end
end
end
end
--------------------------------------------------
--- Cl - класс, Sec - код бумаги, Int - таймфрейм.
--- T - ожидание поступления данных источника в сек. (по умолчанию 15 сек.)
local CreateDS = function(Cl, Sec, Int, T)
T = (T or 15) * 10
local ds, Error = CreateDataSource(Cl, Sec, Int)
for i = 1, T do
if not ((Error == "" or Error == nil) and ds:Size() == 0) then break end
if i == T then error('Не дождались DS: ' .. Sec .. '. Ошибка: ' .. tostring(Error)) end
sleep(100)
end
return ds
end
---------------------------------------------------
-- Вариант многократно используемой параметризированной заготовки для создания коллбеков в CreateUpdateCallbackDS --
local function cb_p(index, ds, sec_code)
local t = ds:T(index)
local _str = string.format("#%d of %d\t%.4f\t%.4f\t%.4f\t%.4f\t%.4f %02d.%02d.%04d %02d:%02d:%02d.%04d\n",
index, ds:Size(),ds:O(index), ds:H(index), ds:L(index),
ds:C(index), ds:V(index),
t.day, t.month, t.year, t.hour, t.min, t.sec, t.ms)
message(sec_code .. ': ' .. _str)
end
---------
local ds
local function cb(index) -- одноразовая функция коллбека -
local t = ds:T(index)
local _str = string.format("#%d of %d\t%.4f\t%.4f\t%.4f\t%.4f\t%.4f %02d.%02d.%04d %02d:%02d:%02d.%04d\n",
index, ds:Size(),ds:O(index), ds:H(index), ds:L(index),
ds:C(index), ds:V(index),
t.day, t.month, t.year, t.hour, t.min, t.sec, t.ms)
message(_str)
end
ds = CreateDS("QJSIM", "GAZP", INTERVAL_M1)
message('Size = ' .. ds:Size())
-- Вариант с созданием функции-замыкания, выдающей сообщение об исключениях во время ее выполнения ---
ds:SetUpdateCallback(CreateUpdateCallbackDS(cb))
-- ds:SetUpdateCallback() -- 1. #### это не помогает
-- ds:SetUpdateCallback(function() end) -- 2. #### и это не помогает
ds:Close() -- ?? После Close повторно установленные один раз коллбеки не срабатывают (
-- хотя источник открывается)
ds = CreateDS("QJSIM", "GAZP", INTERVAL_M1)
-- ds:SetUpdateCallback(function() end) -- 3. #### это тоже помогает вместо последующего ds:SetUpdateCallback(cb)
ds:SetUpdateCallback(cb) -- Обычный вариант (если в функции коллбека cb возникает исключение,
-- то коллбек перестает выполняться, но сообщения об этом нет)
ds:SetUpdateCallback(
CreateUpdateCallbackDS(cb_p, ds, "GAZP")) -- 4. #### Повторная установка параметризированного
-- коллбека. Если это закомментировать, то коллбек не запускается
-- ds:SetUpdateCallback(cb) -- 5. #### Это , вместо пункта 4, тоже проходит
while not stopped do
sleep(3000)
-- message('while Size = ' .. ds:Size())
end
end
function OnStop(row)
stopped = true
end
---
-- Резюме (смотрите комментарии, выделенные строкой ####).
--- После ds:Close(), ds = CreateDataSource(...) повторно установленный коллбек cb не срабатывает
-- (хотя источник открывается и свечи приходят).
-- Но если устанавливать два раза: ds:SetUpdateCallback(cb) ds:SetUpdateCallback(cb),то cb срабатывает --
2. В том же коде определена функция CreateUpdateCallbackDS - создание параметризированных замыканий-коллбеков на основе функций заготовок (в коде примера: функция cb_p). Функцию-заготовку можно использовать, создавая коллбеки для многих разных источников DS. При этом обеспечивается выдача сообщений об исключениях времени выполнения колбека (что не делается штатными средствами).
3. В коде комментариями, помеченными строкой ####, описываются "танцы с бубном" с тем, чтобы повторно подключить коллбек к повторно открытому DS. Вопрос к поддержке: что еще надо показать, чтобы стало ясно, что в ds:Close() есть ошибка?
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 12.05.2020
11.04.2025 18:30:12
Цитата
Anton Belonogov написал: Ошибка будет исправлена в очередных обновлениях ПО
Спасибо.
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 12.05.2020
09.04.2025 08:16:14
Цитата
Anton Belonogov написал: Проблема изучается. Постараемся в ближайшее время дать ответ.
Спасибо. Жду.
Цитата
VPM написал: Не понимаю и Вам зачем, наверно нужно или скучно стало?
Не знаю как вы, а я использую QUIK на практике и заинтересован в том, чтобы он был стабильным и эффективным.
Да, не потокобезопасна в ванильном режиме. Но разработчик Lua предусмотрел (и, возможно, напрасно) вариант использования инстанции Lua в нескольких потоках в режиме разделения, когда коды Lua могут быть использованы только одним потоком. Для этого варианта надо вносить изменения в исходники Lua, обеспечивающие синхронизацию разделения. С чем разработчик QUIK немало "покувыркался". Если исходить из того, что синхронизация сейчас реализована корректно, то перед выполнением коллбеков мусорщик можно было бы не останавливать. Отсутствие сборки мусора при выполнении коллбека обеспечивает: 1) сокращение времени его выполнения; 2) и что не менее важно, дополнительную страховку от возможных ошибок синхронизации, запрещая работу коллектора, который обрабатывает все стеки инстанции Lua. Но после выполнения коллбека должно быть восстановлено то состояние коллектора, которое было перед выполнением коллбека. Вообще то, я уже пару раз описывал, как можно изменить схему взаимодействия скриптов Lua с QUIK, чтобы уйти от "интересных" проблем синхронизации потоков. Более того это несколько бы ускорило выполнение скриптов (освобожденных от выполнения кода синхронизации).
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 12.05.2020
06.04.2025 07:48:51
nikolz забыл вас спросить: вы понимаете почему разработчики QUIK при выполнении коллбеков останавливают сборку мусора?
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 12.05.2020
06.04.2025 07:39:30
Цитата
nikolz написал: Т е в каком стеке Вы вызовите сборщик, тот стек он и будет чистить.
Цитата
TGB написал: В конце концов, можно почитать книгу Р. Иерузалимски
Вы умеете читать? Или только пишите ? Цитата из книги 32.2 Сборщик мусора: "Фаза очистки обходит все объекты Lua." Вы понимаете, что в Lua объектами являются и его стеки? В конце концов, детали сборки мусора вы можете посмотреть в исходниках Lua.
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 12.05.2020
05.04.2025 07:07:39
Цитата
TGB написал: Надо: 1) сохранять состояние сборки мусора скрипта перед выполнением коллбека; 2) отключать сборку сборку мусора; 3) выполнять коллбек; 4) восстанавливать состояние сборки мусора.
Если это непонятно, то в переводе на коды это, примерно, следующее (три строки не считая комментариев и пробелов):
Код
--- Перед выполнением коллбека ---
local isrunning = collectgarbage('isrunning')
if isrunning then collectgarbage('stop') end
--- Выполнить коллбек ---
--- После выполнения коллбека ---
if isrunning then collectgarbage('restart') end
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 12.05.2020
05.04.2025 06:30:12
Цитата
nikolz написал: сборщик мусора собирает мусор в в стеке основном VM.но при этом он не видит стек коррутины
Кто вам это рассказал или где вы это прочитали ?
Цитата
nikolz написал: Я полагаю что делается запуск сборщика для области стека корутины main.
Зачем что то предполагать, когда можно узнать точно как это устроено? И для этого на сайте разработчика существуют свободно доступные исходники Lua. Из них вы бы узнали, что управление памятью в Lua общее для всех его стеков и нет специального запуска сборщика для области стека корутины main. В конце концов, можно почитать книгу Р. Иерузалимски.
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 12.05.2020
04.04.2025 08:09:57
Цитата
nikolz написал: Дело в том, что main - это корутина.
С этим согласен.
Цитата
nikolz написал: В корутине свое адресное пространство для локальных переменных.
В любых функциях свое адресное пространство для их локальных переменных.
Цитата
nikolz написал: По логике должны действовать два различных сборщика мусора.
В Lua один сборщик мусора (вы же смотрели его исходники).
Цитата
nikolz написал: меня пока не волнует как работает сборщик в скрипте
Ну, вы не единственный на этом свете .
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 12.05.2020
03.04.2025 18:39:41
Цитата
TGB написал: В версии QUIK 12.2.2.8 (а, похоже, и в более ранних) при запуске любого коллбека отключается сборка мусора (collectgarbage('stop')), а после его отработки включается (collectgarbage('restart')). Это ошибка. Коллбеки не должны менять состояние уборки мусора после своего выполнения, а должны восстанавливать то, которое было перед их выполнением.
Вроде, написано понятно, но если непонятно, то демонстрирую кодом:
Код
local OK = false
function OnParam()
OK = true
end
function main()
_RUN_ = true
collectgarbage('stop') -- Сборка мусора отключена --
while _RUN_ do
if not collectgarbage('isrunning') then
if OnParam and OK then
message(' Ошибка обработки коллбеков устранена. '
.. 'В скрипте где то был остановлен сбор мусора. '
.. 'Вызов коллбека OnParam не меняет состояние сборки мусора', 3)
end
end
sleep(3000)
end
end
function OnStop()
_RUN_ = false
return 10000
end
Если код выполняется при подключенном к серверу QUIKе и при этом нет сообщения: "Ошибка обработки коллбеков устранена. ............" , то понятно, что коллбек OnParam включил сборку сборки мусора, отключенную разработчиком в скрипте.
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 12.05.2020
01.04.2025 15:58:25
Цитата
TGB написал: Коллбеки не должны менять состояние уборки мусора после своего выполнения, а должны восстанавливать то, которое было перед их выполнением.
Поддержка: что не так? Ответьте, пожалуйста.
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 12.05.2020
26.03.2025 11:13:56
В версии QUIK 12.2.2.8 (а, похоже, и в более ранних) при запуске любого коллбека отключается сборка мусора (collectgarbage('stop')), а после его отработки включается (collectgarbage('restart')). Это ошибка. Коллбеки не должны менять состояние уборки мусора после своего выполнения, а должны восстанавливать то, которое было перед их выполнением. ----- Разработчик скрипта может в какой-то момент отключить на какое то время уборку мусора (имеет право), а тут прилетает любой коллбек и все портит.
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 12.05.2020
25.03.2025 11:53:53
В версии QUIK 12.2.1.2 (а, похоже, и в более ранних) при запуске любого коллбека отключается сборка мусора (collectgarbage('stop')), а после его отработки включается (collectgarbage('restart')). В общем, решение разумное, повышающее надежность, но не сохраняющее состояние сборки мусора скрипта. Это неправильно. Надо: 1) сохранять состояние сборки мусора скрипта перед выполнением коллбека; 2) отключать сборку сборку мусора; 3) выполнять коллбек; 4) восстанавливать состояние сборки мусора.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Пользователь
Сообщений: Регистрация: 12.05.2020
11.03.2025 12:16:54
Цитата
VPM написал: не могу полностью согласиться, важно не то что узнают, важней что начнут активно применять
У вас есть сомнения насчет применения? Ответ (ваш):
Цитата
VPM написал: Деньги в (классическом понимании) и выгода двигают рынки, и не только фондовый.
Поэтому, некоторая локально эффективная стратегия, "пойдет" в массы, но при некотором уровне "массовости", будет, как я описал, разрушена.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Вы живете в идеальном математическом мире ? Кто вам сказал, что рынок описывается вашей математической моделью? Есть хорошая Ньютоновская модель описания макромира, но она не сильно подходит для описания микромира и это определяется эмпирически (на экспериментах). Вы не поняли, что авторы, предлагающие универсальные доходные стратегии торгов либо сильно наивные люди, но скорее хорошие предприниматели. Я написал:
Цитата
TGB написал: принципиальной особенностью прибыльной стратегии является ее зависимость от поведения участников фондового рынка (многие из которых используют роботы) и ограниченность круга участников, ее использующих.
где "ограниченность круга участников" является ключевым утверждением. --- Представьте на минуту, что вы сумели найти доходную стратегию торгов устойчиво обеспечивающую прибыль 60% годовых. Если вы хоть что-то понимаете в фондовом рынке, то как только эту стратегию станут использовать другие участники рынка, то они будут разрушать вашу стратегию. ----- Я допускаю что многочисленные авторы что-то заработали на рекламируемых ими стратегиями торгов, но сейчас они зарабатывают на издаваемых ими книгах.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Пользователь
Сообщений: Регистрация: 12.05.2020
11.03.2025 09:34:02
Цитата
VPM написал: Разработка и оптимизация торговой стратегии — это сложный процесс, который требует глубокого понимания рынка и инструментов анализа.
Согласен. -------- Но не надо питать особых иллюзий относительно написанного VPM в декларотивном / рекламном стиле . Фондовый биржевой, краткосрочный (с периодом до полгода) рынок — это, во многом, рефлексивная игра с локально псевдо-нулевой суммой. Во-первых, он существенно зависит от действий его участников, а во-вторых, на нем деньги не создаются, а, в основном, перераспределяются между его участниками. Прибыль любого его участника — это, в конце концов, в значительной части, чьи-то убытки. Если предположить, что все участники такого рынка, используют некоторую общую прибыльную стратегию торгов, то, понятно, что все они, одновременно, в прибыли не окажутся. Таким образом, не существует общей прибыльной стратегии торгов для приблизительно описанной реальности, в которой есть еще и приток/отток финансовых средств в рынок из вне. Рефлективность фондового рынка порождает возможность манипуляции рынком крупными его участниками. Причем, не только своими действиями на нем, но информационными вбросами, влияющими на поведение его участников. Кроме того, этот рынок является инсайдерским, так как среди его участников всегда присутствуют те, которым раньше других доступна информация, влияющая на его поведение. Надо понимать, что использование вероятностных моделей поведения рынка, во многих случаях это сильное допущение из-за отсутствия более адекватных моделей. В каком-то смысле, фондовый рынок подобен локально неустойчивой, но, до поры до времени, самовосстанавливающейся финансовой пирамиде. Собственно говоря, все социальные процессы, в том числе, происходящие в локальных, а также в глобальной экономике, имеют «пирамидальный» характер. Наблюдаемые политико-экономические кризисы – это, во многом, проявление такой «пирамидальности», обусловленной природой человека. Из написанного выше следует, что принципиальной особенностью прибыльной стратегии является ее зависимость от поведения участников фондового рынка (многие из которых используют роботы) и ограниченность круга участников, ее использующих. С учетом того, что фондовый рынок меняется, для обеспечения прибыльности, должна меняться стратегия торгов.
limit_kind в таблице depo_limit
Пользователь
Сообщений: Регистрация: 12.05.2020
25.02.2025 09:28:15
Цитата
Nikolay написал: limit_kind - это режим торгов инструмента
Присоединяюсь: Дата расчета это не режим торгов.
При попытке подключиться (с полученным логином и паролем) к демоверсии (Quik_Junior_v11.4.1) выдается сообщение: "Срок лицензии истек".
Пользователь
Сообщений: Регистрация: 12.05.2020
17.02.2025 18:22:25
Anton Belonogov спасибо.
При попытке подключиться (с полученным логином и паролем) к демоверсии (Quik_Junior_v11.4.1) выдается сообщение: "Срок лицензии истек".
Пользователь
Сообщений: Регистрация: 12.05.2020
17.02.2025 17:34:32
Цитата
Anton Belonogov написал: Демо-доступ предоставляется сроком на один месяц, учетная запись U0222125 была действительна в период 16.01.2025-16.02.2025. Сейчас Вы можете повторно пройти и получить новую учетную запись.
Спасибо. После получения новой записи заработало. Но, наверное, когда заканчивается срок учетной записи, сообщение могло бы быть таким: "Срок вашей учетной записи истек. Вы можете зарегистрироваться повторно". И еще: я регистрировался 14.02.36, но похоже слишком рано, когда не истек срок предыдущей учетной записи.
При попытке подключиться (с полученным логином и паролем) к демоверсии (Quik_Junior_v11.4.1) выдается сообщение: "Срок лицензии истек".
Пользователь
Сообщений: Регистрация: 12.05.2020
17.02.2025 17:10:12
Цитата
Anton Belonogov написал: Сообщите, пожалуйста, с каким логином Вы подключались.
QUIK_LOGIN = "U0222125"
При попытке подключиться (с полученным логином и паролем) к демоверсии (Quik_Junior_v11.4.1) выдается сообщение: "Срок лицензии истек".
Пользователь
Сообщений: Регистрация: 12.05.2020
17.02.2025 17:07:53
Цитата
TGB написал: несколько цифр, которые видны при подключенном к бирже терминале QUIK
Интересно, как можно видеть цифры, если демо-терминал не подключается к серверу, а выдается сообщение: "Срок лицензии истек"?
При попытке подключиться (с полученным логином и паролем) к демоверсии (Quik_Junior_v11.4.1) выдается сообщение: "Срок лицензии истек".
Пользователь
Сообщений: Регистрация: 12.05.2020
17.02.2025 16:57:52
Цитата
Anton Belonogov написал: В ответ на Ваше письмо мы попросили уточнить UID, это было в 10:30. Ответ не получили.Дублируем наш запрос - можно ответить здесь или в письме.
Похоже партизаны перерезали нашу с вами связь . Я от вас сообщений не получаю. в том числе дублирующих. 1. Из интернета: "Ваш UID терминала QUIK (UID – это несколько цифр, которые видны при подключенном к бирже терминале QUIK в левом верхнем углу рядом с фамилией)" 2. Я в в своей почте не нашел вашего ответа. 3. Я запускаю Quik_Junior_v11.4.1 и не вижу, хоть убейте , "несколько цифр, которые видны при подключенном к бирже терминале QUIK в левом верхнем углу рядом с фамилией)" 4. Для меня загадка, что такое UID в Quik_Junior? Пожалуйста, объясните где его искать.
При попытке подключиться (с полученным логином и паролем) к демоверсии (Quik_Junior_v11.4.1) выдается сообщение: "Срок лицензии истек".
Пользователь
Сообщений: Регистрация: 12.05.2020
17.02.2025 16:32:09
Я это сообщение отправил по почте в поддержку в 10.26. Сейчас 16.29. Поддержку всю уволили?
При попытке подключиться (с полученным логином и паролем) к демоверсии (Quik_Junior_v11.4.1) выдается сообщение: "Срок лицензии истек".
Пользователь
Сообщений: Регистрация: 12.05.2020
17.02.2025 15:59:30
При попытке подключиться (с полученным логином и паролем) к демоверсии (Quik_Junior_v11.4.1) выдается сообщение: "Срок лицензии истек". В чем причина? Почему? Я лишенец ?
Использование индикаторов из терминала
Пользователь
Сообщений: Регистрация: 12.05.2020
28.12.2024 16:34:39
Цитата
Acaw написал: Помогите, пожалуйста, разобраться, как пользоваться индикаторами, которые выложены тут.
Посмотрите тут:
как найти единый счет
Пользователь
Сообщений: Регистрация: 12.05.2020
26.12.2024 17:36:59
Так должно работать:
Код
local str, x, account
local class_code = getClassInfo('QJSIM') and 'QJSIM' or 'TQBR' -- в песочнице 'QJSIM', а в продуктиве 'TQBR'
str="trade_accounts";
for i=0, getNumberOf(str)-1 do
x=getItem(str,i)
if string.find(x.class_codes, class_code) then account=x.trdaccid; break; end
end
перекодировка индикатора с MQL5 в Lua, необходимо простой индикатор написанный в MQL5 перевести для работы в квике. Индикатор ICHI_OSC.
Пользователь
Сообщений: Регистрация: 12.05.2020
05.11.2024 14:03:19
Цитата
IkarNikolay написал: или может что-то не так настроено?
Вместо unpack надо использовать table.unpack.
Как создать глобальную константу доступную многим скриптам и индикаторам?, Как создать глобальную константу доступную многим скриптам и индикаторам?
Пользователь
Сообщений: Регистрация: 12.05.2020
05.09.2024 20:36:43
Цитата
nikolz написал: у меня библиотека в 3 раза меньше.(43кБ)
А вот тут, пожалуйста, поподробнее. Ваша библиотека функционально эквивалентна разработки swerg? Где можно увидеть ее код? Каким образом ее могут использовать пользователи?