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

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

Страницы: 1
Обращение к данным таблицы из индюка, Что-то наподобие БД через AllocTable
 
Цитата
Sergey Gorokhov написал:
Цитата
AndyJOKER написал:
Весело.
Я правильно понимаю, что фактически в индикаторах можно использовать только данные   O, H, L, C, V, T   ,   Size  ?

Нет, категорически не верно, можно и другие данные, зависит от того что Вам нужно.
Если Вам нужно получить данные в индикаторе из другого скрипта, то почему бы не воспользоваться обменом через файлы? Один сприпт пишет в файл, другой читает.
Эммм, несколько странно слышать это от Вас, как от разработчика.  :wink:  Разумеется, у меня большая часть подобного "обмена" реализована. Не не через файлы, а через mysql. Но это же костыль... Некошерно такое делать. Согласитесь, что намного быстрее и удобнее обращаться к таблицам внутри памяти квика (не важно "стандартные" или созданные юзером) через getcell или getitem, чем вешать индикатор ожидая обращения к файлу или запроса от БД?
Интересно, в чем проблема в реализации? Много обработчиков писать?
Обращение к данным таблицы из индюка, Что-то наподобие БД через AllocTable
 
Весело.
Я правильно понимаю, что фактически в индикаторах можно использовать только данные O, H, L, C, V, T , Size?
Обращение к данным таблицы из индюка, Что-то наподобие БД через AllocTable
 
Всем доброго!
Суть: скрипт создает и постоянно обновляет произвольную таблицу с данными. Индикатор обращается по t_id к таблице и забирает оттуда данные.
Например, пусть заполняется так:
Код
t_id = AllocTable()
   AddColumn(t_id, 1, "1", true, QTABLE_DATE_TYPE, 15)
   AddColumn(t_id, 2, "2", true, QTABLE_TIME_TYPE, 15)
   AddColumn(t_id, 3, "3", true, QTABLE_INT_TYPE, 15)
   AddColumn(t_id, 4, "4", true, QTABLE_INT_TYPE, 15)
   t = CreateWindow(t_id)
   for f = 0, 99 do
      InsertRow(t_id, -1)
      a = math.random(1000, 3000)
      SetCell(t_id, f, 3, tostring(a), a)
      a = math.random(1000, 3000)
      SetCell(t_id, f, 4, tostring(a), a)
   end 
Индикатор, например, пусть будет так:
Код
Settings={
Name="TEST",
t_id=14,
    line=                                     
                {                                     
                    {  
                        Name = "Val",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(255,0,0)
                    }
                }
}

function Init()
  return 3
end

function OnCalculate(index)
   local val

   if index == 1 then
      val = GetCell(Settings.t_id, 1, 3).value
   end
   return nil
end
Валится с ошибкой "attempt to call global 'GetCell' (a nil value)".
Я что-то страшное делаю или просто руки кривые?
Глюк. Перестает обновляться график и не срабатывает OnAllTrade.
 
Цитата
Александр Копяткевич написал:
Графики строятся по данным таблицы "Обезличенные сделки", поэтому не стоит сравнивать данные графика с данными из стакана котировок.
Тогда могу лишь предположить, что завис какой-то из индюков...
Глюк. Перестает обновляться график и не срабатывает OnAllTrade.
 
В стакане она уже 123240, а на графике все еще 122930 и не изменяется аж никак.
Глюк. Перестает обновляться график и не срабатывает OnAllTrade.
 
Цитата
По приложенному Вами видео не видно, что есть какая-то проблема. Так как график у Вас с интервалом 5 минут, и на последней свечке время 10:40, то, следующая свечка должна появиться только в 10:45.
Внимательно еще раз посмотрите видео. Цена в стакане меняется, а на графике нет. Причем тут М5 или М1?
Глюк. Перестает обновляться график и не срабатывает OnAllTrade.
 
Здравствуйте!
QUIK 7.19.3.1
Брокер Сбер.
На ровном месте просто перестал обновляться график инструмента, в то время как в стакане котировок и таблице торгов всё вполне себе работало. Что самое фиговое - перестал срабатывать OnAllTrade в скрипте. Т.е. по сути состояние OnConnected, но как будто сделок то и нет. Это ладно я был за терминалом.
И как теперь с этим вот всем жить...
https://youtu.be/ENYyBdm19Xs
Фильтр обезличенных сделок слетает после истечения срока инструмента и его замены., Баг или фича?
 
Приветствую!
QUIK 7.14.1.7
В фильтре инструментов в получении данных потока обезличенных сделок были: RIM8, SiM8, BRM8. BRM8 сменился на BRN8. Подтвердил замену в системе. Он взял и нафиг повыкидывал из фильтра RIM и SiM, оставивив лишь BRN.
Это прикол такой чтоли?
Спасибо.
Тип данных при выгрузке в MySQL через ODBC. Баг?, Поле "инструмент"
 
Вторая проблема также решена. Пример для таблицы обезличенных сделок:
Код
CRE ATE   TABLE `temp` (
  `id` int(10) UNSIGNED NOT NULL,
  `t_date` char(10) NOT NULL,
  `t_time` time NOT NULL,
  `t_price` decimal(6,2) UNSIGNED NOT NULL,
  `t_val` int(11) NOT NULL,
  `t_op` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

CRE ATE   TABLE `tick` (
  `id` int(10) UNSIGNED NOT NULL,
  `t_d` date NOT NULL,
  `t_t` time NOT NULL,
  `t_p` decimal(6,2) UNSIGNED NOT NULL,
  `t_v` int(10) UNSIGNED NOT NULL,
  `t_op` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Триггер:
Код
CREATE TRIGGER `temp` BEFORE INSERT ON `temp`
 FOR EACH ROW BEGIN
INS ERT IN TO tick VALUES(NEW.id, STR_TO_DATE(NEW.t_date,'%d.%m.%Y'), NEW.t_time, NEW.t_price, NEW.t_val, NEW.t_op);
END
Тип данных при выгрузке в MySQL через ODBC. Баг?, Поле "инструмент"
 
Проблема сопоставления полей решилась заменой с Unicode на ANSI драйвер в ODBC:



Т.е. проблема проявляется только на Unicode драйвере. Буду признателен, если кто подскажет по триггеру с подменой формата даты при INSERT.
Тип данных при выгрузке в MySQL через ODBC. Баг?, Поле "инструмент"
 
Триггерами это пофиксить не удается. Ни так:
Код
CREATE TRIGGER `trig` BEFORE INSERT ON `temp`
 FOR EACH ROW BEGIN
INS ERT IN TO ticks (`tick_date`,`tick_time`,`tick_price`,`tick_val`) VALUES (NEW.dat, NEW.tim, NEW.price, NEW.val);
END
Ни так:
Код
CREATE TRIGGER `trig` BEFORE INSERT ON `temp`
 FOR EACH ROW BEGIN
INS ERT IN TO ticks (`tick_date`,`tick_time`,`tick_price`,`tick_val`) VALUES (STR_TO_DATE(NEW.dat,'%d.%m.%Y'), NEW.tim, NEW.price, NEW.val);
END
Ни так:
Код
CREATE TRIGGER `trig` BEFORE INSERT ON `temp`
 FOR EACH ROW BEGIN
INS ERT IN TO ticks (`tick_date`,`tick_time`,`tick_price`,`tick_val`) VALUES (DATE_FORMAT(NEW.dat,'%d.%m.%Y'), NEW.tim, NEW.price, NEW.val);
END
Ни так:
Код
CREATE TRIGGER `trig` BEFORE INSERT ON `temp`
 FOR EACH ROW BEGIN
INS ERT IN TO ticks (`tick_date`,`tick_time`,`tick_price`,`tick_val`) VALUES (CONVERT(NEW.dat,DATE), NEW.tim, NEW.price, NEW.val);
END
Неужели я первый, кто выбрал связку QUIK -> ODBC -> MySQL...
Тип данных при выгрузке в MySQL через ODBC. Баг?, Поле "инструмент"
 
Еще одна проблема. Формат даты в MySQL по-умолчанию имеет вид 'YYYY-DD-MM', и, насколько мне известно изменить его нельзя. Т.е. работать приходится через:
Код
INS ERT IN TO `table` (`dat`) VALUES (STR_TO_DATE('13.12.2017','%d.%m.%Y'))
и
Код
SEL ECT DATE_FORMAT(dat,'%d.%m.%Y') FR OM `table`
Судя по quik_odbc попытка записи идет через
Цитата
12/14/17 11:35:23.132 [TID=4552] Poke Data, table = tick8, henv = 02A0FCA8, hdbc = 02A0F648, insert_into_table = 02A0FE58, update_table = 02A10180, delete_from_table = 02A104A8, hstmt = 02A0FE58, SQL statement = "INS ERT IN TO table.tick (dat, tim, price, val) VALUES ('13.12.2017', '19:00:00', 63.1500, 1.00000000)"
Поэтому в итоге получаем:

В обмене данными через ODBC не специалист, поэтому вопрос: самостоятельно руками в QUIK можно где-нибудь добавить для всех INSERT STR_TO_DATE или это всё hard-coded?
Попутно просьба ткнуть носом где удалось подружить QLUA и MySQL - пока в качеств временного решения проблемы.
Благодарю.
Тип данных при выгрузке в MySQL через ODBC. Баг?, Поле "инструмент"
 
Аналогичная проблема с текстовым типом данным и в таблице обезличенных сделок:


ODBC драйверы:


Ошибка проявляется одинаково вне зависимости от разрядности ОСи и драйверов. Пробовал на Win7 x86 и Win7 x64.
Тип данных при выгрузке в MySQL через ODBC. Баг?, Поле "инструмент"
 
В ODBC используется MySQL ODBC 5.3 Unicode Driver.
Тип данных при выгрузке в MySQL через ODBC. Баг?, Поле "инструмент"
 
QUIK 7.14.1.7

Тип данных при выгрузке в MySQL через ODBC. Баг?, Поле "инструмент"
 
Забыл указать:
MySQL server version: 5.7.15
Protocol version: 10
Server charset:                    UTF-8 Unicode           (utf8
Тип данных при выгрузке в MySQL через ODBC. Баг?, Поле "инструмент"
 
Здравствуйте!
При выборе сопоставляемого поля MySQL таблицы для параметра "Инструмент" доступны почему-то только типы: DATE, TIME, DATETIME. Все остальные доступные типы (TEXT, CHAR, VARCHAR) в выпадающем списке просто отсутствуют, хотя это самый что ни на есть TEXT. ЧЯДНТ?
Stochastic Oscillator, Алгоритм построения.
 
Приветствую!
Пытаюсь разобраться почему разъезжаются мои расчетные данные %K от QUIKовских на стохастике.
Беру дефолтные значения:
%K периодов: 5.
Сглаживание: 3
Тип сглаживания как я понимаю simple moving average.
Далее шаги на примере экселя:
1. Начиная с 5го отсчета считаем минимумы (MIN) и максимумы (MAX) значений LOW и HIGH за предыдущие 4 периода и 1 текущий.
2. Начиная с 5го отсчета считаем %K=(CLOSE-MIN)/(MAX-MIN)*100. На данном шаге значение %K полностью соответствует квиковскому со сглаживанием %K равным 1.
3. Начиная с 7го отсчета считаем SMA %K со сглаживанием 3 как среднее значение %K предыдущих 2 периодов и 1 теукщего.
На этом шаге, собственно, данные и разнятся.


Собственно сам xlsx файл: XLSX
ЧЯДНТ?
Страницы: 1
Наверх