VPM (Автор тем)

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

Страницы: 1
Без ЦЕНЫЕ сделки, Кто то не верно предоставляет котировки, или перерисовка в QUIK
 
Уважаемые разработчики, обратите внимание на ситуацию:
Не первый раз случается такая ситуация, на примере сделок от 20.03.24г. тикер GOLD - 6.24, открыл позицию в шорт цена 2233, терминал загружен 21.03.24г, отражает цену  которая не превышает 2185.
детально можно посмотреть в скринах.

1. Что это такое?
2. Как сделать так чтоб терминал отражал реальные котировки?
з. Как сделать так чтоб история котировок хранящаяся в QUIK не пропадала, пропадают исторические данные между двух дат в интервале котором котировки должны быть?

Версия QUIK 11.1.1.11, В общем вся информация есть в скрине.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Система принятия решений и/или Нечеткая логика(FuzzyLogic)
==================================================

"Системы поддержки принятия решения (СППР) (Decision Support System, DSS) - это интерактивные автоматизированные системы, помогающие лицу, принимающему решения, использовать данные и модели для решения слабо структурированных проблем".

В этой ветке предлагаю обсудить область применения Fuzzy Logic в задачах трейдинга.
реализации систем правил в задачах принятии управленческих решений, управление риском (риск менеджмент), управление позицией (мани менеджмент), построение торговых стратегий.

В общем случае, область применения нечеткой логики не знает границ.
В любом алгоритме, в любой системе правил, где используются четкие выводы (истина и ложь, 1 или 0), можно пробовать заменить их на степень истинности (степень принадлежности), для более точного отражения реальности.
Нечеткая логика - равно расширенная логика, полностью совместимая с классической логикой в предельных случаях, обладающая невероятной мощью и простотой.
Наш мир, фундаментально нечеток.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Всем Добрый день!

Уж коль тема называется Программирование на языке Lua, обращусь к профи за пояснениями.

Взят Пример из книги Р.Е.

------ Очереди и двойные очереди

"Простейшим способом реализации очередей в Lua является использование функций ins ert и remove из библиотеки table.
Эти функции вставляют и удаляют элементы из произвольной позиции массива, сдвигая остальные элементы для согласования действий.
Однако, подобные перемещения могут быть дорогими для больших структур.

Более эффективная реализация использует две индекса, один для первого элемента и один для последнего:

function ListNew () return {first = 0, last = -1} end

Во избежание загрязнения глобального пространства имен мы
определим все операции со списком внутри таблицы, которую мы соответственно назовем List
(таким образом, мы создадим модуль)."

Код
   local List = {};
function List.new()
    return {first = 0, last = -1}
end
--Теперь мы можем вставлять и удалять элементы с обоих концов за постоянное время:
function List.pushfirst (list, value)
   local first = list.first - 1
   list.first = first
   list[first] = value
end
function List.pushlast (list, value)
   local last = list.last + 1;
   list.last = last;
   list[last] = value;
   --message('List.pushlast: ' ..'; '..tostring(last)..'; '.. tostring(value.price)..'; '.. tostring(value.qty))
end
function List.popfirst (list)
   local first = list.first;
   if first > list.last then 
   --error("list is empty") 
   return nil
   end
   local value = list[first]
   list[first] = nil -- чтобы разрешить сборку мусора
   list.first = first + 1
   return value
end
function List.poplast (list)
   local last = list.last
   if list.first > last then error("list is empty") end
   local value = list[last]
   list[last] = nil -- чтобы разрешить сборку мусора
   list.last = last - 1
   return val ue
end
 
Если вы будете использовать эту структуру для обслуживания в порядке поступления, вызывая только pushlast и popfirst,
то и first, и last будут постоянно расти.

Однако, так как мы представляем массивы в Lua при помощи таблиц,
вы можете индексировать их как с 1 до 20, так и с 16 777 216 до 16 777 236.

Поскольку Lua использует для представления чисел двойную точность, ваша программа можем
выполняться на протяжении двухсот лет, делая по миллиону вставок в секунду,
прежде чем возникнет проблема с переполнением.

-----------------------------------------------------------------------

Реализовал у себя для обработки  OnAllTrade:

Создаем т.  list
local list=List.new()

Получаю, сохраняю list и уматываю.
function OnAllTrade(at)
   if is_run and at and at.sec_code==symbol and at.class_code==class then
   List.pushlast(list, at);
end

Получаю из  list строку для обработки.
function AllTrade()
   at = List.popfirst(list);
end

Все инструмента нормально для обработки одного инструмента,  но в процессе работы скрипт накапливает память.

Вопрос к Профи, как нужно сделать чтоб максимально быстро обрабатывалась и очищалась очередь?
Кто то может пример показать.
Новые проблемы на все тоже quik, После обновления quik до версии 10. и выше перестал работать торговый сервис в таблице котировок (стакан)
 
Добрый день!

После обновления терминала quik до версии 10. и выше,
перестал работать торговый сервис в таблице котировок (стакан),
а именно не реагирует на на выделение строк в столбце Продажа,
не выставляет заявки лимитированные на продажу,
На покупку выставляет на продажу нет.

Вид стакана 3 в терминале (американский стакан) по строчное расположение котировок.

Подчеркиваю до версии 10 все работало отлично именно с 10 перестало, ошибка не устраняется.

Прошу Вас, устранить данную ошибку.
Страницы: 1
Наверх