Сергей (Все сообщения пользователя)

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

Страницы: 1
Терминал 11.4.0.54 Ошибка формата файла заявок для Кармана транзакций
 
Цитата
Karina Dmitrieva написал:
Пока можем предложить настраивать фильтры по нужным Вам условиям в таблице заявок
Благодарю, я в курсе наличия фильтров :)
Терминал 11.4.0.54 Ошибка формата файла заявок для Кармана транзакций
 
Цитата
Karina Dmitrieva написал:
Сергей,
Цитата
Если на текущей активной вкладке таблицы "Карман" не будет, то команда "Копировать в карман" будет недоступной.  
Да, команда активизируется если все на одной вкладке и табл сделок и сам карман
Но а зачем в таком случае оставили команды по сохранению в файл заявок если их потом не подгрузить?
Вообще было гораздо функциональнее. Таблиц заявок как правило несколько и на разных вкладках, например по рынкам (акции, облигации, срочный) и все это дублировать в отдельной вкладке где и карманы неудобно и лишняя нагрузка
Сделайте тогда хотя бы возможность выделять группу заявок в таблице заявок с теми чтобы можно было эту группу выгрузить в Карман-1,  др группу в Карман-2 по аналогии возможности выделения группы через CTRL в самом кармане
Терминал 11.4.0.54 Ошибка формата файла заявок для Кармана транзакций
 
Цитата
Karina Dmitrieva написал:
В таблицы заявок, стоп-заявок, внебиржевых адресных/безадресных заявок добавлена новая команда "Копировать в карман".
Команда "Копировать в карман" не активна, текущая версия 12.2.1.2
Из табл Заявок есть и активны Сохранить в файл заявки из таблицы и Сохранить в файл все заявки
Их табл Стоп-заявок активны Сохранить в файл стоп-заявки из табл и Сохранить в файл все стов-заявки  как и было в предыдущей 11
Из Кармана в 12.2 - только Загрузить транзакции из tri-файла
Терминал 11.4.0.54 Ошибка формата файла заявок для Кармана транзакций
 
Цитата
Karina Dmitrieva написал:
действительно, в версии Рабочего места QUIK 11.4.0 исчезла  возможность переносить заявки из таблицы заявок в карман транзакций
Karina,  Прошу Вас пояснить ситуацию по данной ошибке в версии 12.2 где указано что проблема устранена но во всплывающем меню из Кармана нет опции "Загрузить заявки из файла"
Терминал 11.4.0.54 Ошибка формата файла заявок для Кармана транзакций
 
Цитата
paluke написал:
Ну так решили же проблему с ошибками
Логично  :what:
Из кармана есть только "Загрузить транзакции из tri-файла" а из таблицы заявок только "Сохранить в файл заявки из таблицы"

А по моему обращению и детально описанной проблеме по работе с метками уже 4 месяца ни ответа ни привета :)
Кстати там же есть ссылки на эту проблему еще десятка участников форума#s3gt_translate_tooltip_mini { display: none !important; }
Терминал 11.4.0.54 Ошибка формата файла заявок для Кармана транзакций
 
Цитата
Karina Dmitrieva написал:
Sergey Kuznetcov, здравствуйте.

Сообщаем, что нами выпущена новая версия Рабочего места QUIK - 12.2.0 в которой данная проблема устранена.
В анонсе версии 12.2 действительно указано что "Ошибка при попытке загрузить в Карман транзакций заявки из файла" исправлена
Но в последней версии 12.2.1.2 во всплывающем меню из Кармана нет опций "Загрузить заявки из файла", "Загрузить стоп-заявки из файла", "Загрузить адресные/безадресные заявки из файла"  которые есть в версии 11.3.4
Есть только "Загрузить транзакции из tri-файла"
Как в qlua разделить на группы облигации по типу купона
 
Цитата
Станислав написал:
Увы, другой информации биржа не транслирует
Да, ММВБ параметры облигаций транслирует крайне неудовлетворительно
Нашел казалось бы косвенный признак флоатеров - нулевые данные по доходности или по дюрации Но увы и тут не все однозначно, по некоторым ммвб дает доходность Например РСЭКСМБ2Р4 указана доходность а по РСЭКСМБ2Р5 нет (ноль)

Вобщем сделал отбор по нулевой доходности а те корпоративные флоатеры где биржа дает доходность пока записал в массив Таких в портфеле всего 5, не сложно и добавить если будет новая сделка
Ну а с ММВБ что то спрашивать бессмысленно
Как в qlua разделить на группы облигации по типу купона
 
Цитата
Станислав написал:
По названию ОФЗ можно сразу понять, к какому классу бумаг относится конкретный выпуск
Спасибо, а этот код "COMPLEXPRODUCT" как можно получить в коде скрипта ОФЗ понятно а что по корпоративным, муниципальным да и остальным "бирж.обл."  как дает "SECTYPE"
Как в qlua разделить на группы облигации по типу купона
 
Набросал черновик скрипта для построения пользовательской таблицы  облигации в портфеле в соответствии с классификацией
По типу эмитента: Федеральные, Субфедеральные и муниципальные, корпоративные сделал разбивку с помощью параметров
функции getParamEx()  "SECTYPESTATIC"  и  "SECTYPE"  по их значениям "Облигации" >> "РФ"  "суб.РФ"   "мун.обл."   " корп.обл."
Отдельной группой сформировал массив Замещающих облигаций по признаку валюты номинала
А вот дальше хотелось бы разбить по типу купона - Постоянный, Фиксированный, Плавающий и Переменный, как минимум на две группы

Буду благодарен за идеи по отличительным признакам?
При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается
 
Andrey Golik,
Цитата
Andrey Golik написал:
Сергей, добрый день. Получили от Вас информацию на почте. По итогам разбора продублируем наш ответ в данной теме форума.
Добрый день Есть какие то ориентиры по времени устранения описанной проблемы
Терминал 11.4.0.54 Ошибка формата файла заявок для Кармана транзакций
 
Karina Dmitrieva, спасибо Неудобно конечно При большом количестве заявок по их количестве сделать перетаскивание а выделение всех не предусмотрено
Придется подождать и работать на предыдущей версии 11.3
Терминал 11.4.0.54 Ошибка формата файла заявок для Кармана транзакций
 
Karina Dmitrieva,  Спасибо за информацию, но во-первых, найдите где доводить ее до пользователей своевременно и с пояснениями поскольку мне сейчас непонятно с какой целью это сделано и как теперь работать с новыми форматами
Ну и главное - я писал о том что теперь Карман транзакций не загружает сохраненные заявки в файле из меню на Таблице заявок
Терминал 11.4.0.54 Ошибка формата файла заявок для Кармана транзакций
 
Здесь вообще есть админ ?

На проблему работы терминала в отношении торговых функций должна быть незамедлительная реакция разработчика, а тут неделя заканчивается и хоть трава не расти !
Терминал 11.4.0.54 Ошибка формата файла заявок для Кармана транзакций
 
Сохраняем файл - ПКМ на таблице заявок > Сохранить в файл заявки из таблицы
В окне Карман транзакций  - ПКМ Загрузить заявки из файла
Результат - Ошибка Не указан номер заявки

Смотрим формат сохраненного файла и видим следующее:
,Выставлена (время),Инструмент,Операция,Цена,Кол-во,Остаток,Объем,Состояние,
1,19:47:26,Астра ао [МБ ФР: Т+: Акции],Продажа,478,25,160,160,76 520,00,Активна,

Тот же но сохраненное в 11.3.4.3
55377299185,19:47:26,Астра ао,МБ ФР: Т+: Акции,ASTR,S,L01-00000F00,LSQP ,O,478.25,0.00,160,,160,76520.00,0.00,MU0003300971,MC0003300000,,11JJDL/,Y1,11JJDL,,
При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается
 
Цитата
Kolossi написал:
это не проблема шерифа
Похоже не все понимают о чем речь... или не посмотрели ссылки на предыдущие обращения с аналогичной тематикой :)
Причина моего обращения в техподдержку и этой темы в следующем:
1. При добавлении скрипта индикатора на график  на первом проходе OnCalculate() скрипт не видит параметры настроек.  Вызов OnChange() происходит между 1 и 2ым проходами Проблема известная но тем не менее...
2. Метки созданные на графике при смене инструмента не удаляются в связи с отсутствием вызова OnDestroy()  перед заменой актива Это приводит к образовании новых меток по количеству переходов с актива на актив

Для детального понимания процессов я прикладываю скрипт индикатора для наблюдения за порядком расчетов и лог файл
Скрипт создает единственную метку с динамически меняющимися параметрами на вновь образующемся баре Метка создается на первом тике бара с удалением предыдущей
В течении бара метку можно сдвинуть в удобное место, на новом баре она займет "свое" место  на HighestHigh(10) по оси Y и смещением на 3 бара влево по оси времени. В текстовый параметр запишем Close() посл свечи а в Hint номер посл бара
Сам тест
- добавляем скрипт индикатора и сразу же вводим идентификатор графика
- смотрим DebugView

В отладчике смотрим порядок вызова функций при добавлении индикатора:
Init() > OnCalculate() > OnChangeSettings() > OnCalculate() 2 > OnCalculate() 3
Первый вывод - первый проход до вызова OnChange входящие параметры скрипта недоступны, т.е. никакие расчеты этого цикла некорректны Поэтому делаем обход этого прохода
Понаблюдав за меткой, отображением цены закрытия и номера бара, переместив ее в удобное место - переключаем таймфрейм - предыдущая метка удаляется и создается новая так же как на поступлении нового бара
При смене таймфрейма  сразу вызывается OnCalculate()  без инита и без опроса параметров скрипта.  Все работает корректно

Теперь  переключаемся на другой инструмент (пусть из табл тек торгов)
 В логе видим инициализацию и цикл расчетов на новом активе
   Init() > OnChangeSettings() > OnCalculate() 1
Делаем выводы по порядку следования функций.
Метка создается новая, к метке от предыдущего инструмента доступа нет, OnDestroy() не вызвается, метка "теряется" и доступ к ней скрипт не имеет
Повторяем процедуру несколько раз и наблюдаем наслоение меток на графике и на одном и на втором инструментах
  см скрин   test-2_переключ-инструментов.jpg
Удаляем индикатор с графика
Одна метка при этом остается на графике и не видна из меню пкм-удалить...
Удаляется после выделения клавишей DEL    
Смотрим какие функции используются в коде для удаления меток
Детально анализируем  лог файл в DebugView
Делаем выводы

Код скрипта индикатора
Код
Settings=
{
Name = "test_Example-2",
chart_ID = ''       -- идентификатор графика
}

n_init = 0         -- переменная для подсчета заходов в функцию Init
n_OnCalcCount = 0   -- переменная для подсчета OnCalculate
n_OnChange = 0      -- счетчик OnChangeSettings
bars_prev = 0       -- номер посл бара
TF_prev = -4;      -- таймфрейм
delay = 1.0;      -- задержка в цикле рассчетов параметров для метки (параметров счета)
LastSecond = 0;      -- время последнеих рассчетов 
chart_tag = '';      -- идентификатор графика
label_params = {};   -- параметры метки
Label_ID = nil;      -- идентификатор графика
Labels = {};         -- Массив номеров установленных меток - для контроля

function Init()
   n_init = n_init + 1
PrintDbgStr("Init() = "..n_init)
   n_OnCalcCount = 0
   n_OnChange = 0
   bar_prev = 0
   TF_prev = -4      -- контроль смены таймфрейма
   sec_code_prev = ''   -- контроль перекл на др актив
   
   return 1
end

function OnChangeSettings()
--   n_OnCalcCount = 0
   n_OnChange = n_OnChange + 1
   chart_tag = Settings.chart_ID
PrintDbgStr("OnChangeSettings() = "..n_OnChange..', n_OnCalcCount = '..n_OnCalcCount)
end

function OnDestroy()
PrintDbgStr("OnDestroy() #Labels Array "..#Labels);
   if #Labels > 0 then -- Удаляет ранее установленные метки
      for i=1,#Labels,1 do
         local del = DelLabel(chart_tag, Labels[i]);   
      if del then PrintDbgStr("OnDestroy() Del id "..tostring(Labels[i]));  end;
      end;
   end;
   -- стараемся найти и удалить потерянные метки 
   PrintDbgStr("OnDestroy() LbDelete_2() "..LbDelete_2() .. ' labels were removed');
 
end


function OnCalculate(index)


    -- Пропускаем первый проход между Init() и OnChangeSettings() при первичном  добавлении индикатора
    -- для исключения ошибки чтения параметра при первом запуске индикатора
    -- Init() > OnCalculate() > OnChangeSettings() > OnCalculate() 2 > OnCalculate() 3
   if n_OnChange == 0 then 
      while index <= Size()  do
         if index == Size() then PrintDbgStr('Пропускаем цикл до вызова OnChangeSettings() после Init(), index = ' .. index); end;
         return
      end;
   end
  
    -- предпоследний бар
   if index == Size() - 1 then
PrintDbgStr('---- Begin Cycle Number '..(n_OnCalcCount+1))
       
      DSInfo   = getDataSourceInfo();
      Sec_Code = DSInfo.sec_code;
            
      if chart_tag == '' then message('OnCalculate Chart ID не указан!!!'); end;
PrintDbgStr("Seccode " .. Sec_Code ..",  chart_ID = " .. chart_tag)
            
   else
       -- последняя свеча
      if index == Size() then
          -- раз в секунду (или больше)   
         if os.time() > LastSecond  then            -- if os.time() > LastSecond + 2*delay-1 then
            LastSecond = os.time();
         
             -- потиковое обновление (с задержкой)   
            label_params['TEXT'] = tostring(C(index))
            label_params['HINT'] = tostring(index)

            -- корректируем параметры метки   
            if Label_ID  ~= nil and TF_prev == DSInfo.interval then
               -- сохраняем прежнее положение метки если переместили в теч текущ бара)
                -- при смене таймфрейма метка будет удалена и создана заново
               local ly = GetLabelParams(chart_tag, Label_ID)   --table or nil
               if ly ~= nil then   -- and ly.yvalue ~= nil 
                  label_params['YVALUE'] = ly.yvalue
                  label_params['DATE']   = ly.date
                  label_params['TIME']   = ly.time         
               end;
--PrintDbgStr('index == Size() = ' .. Size() .. ', Label_ID  ' .. Label_ID .. ', C(index) ' .. tostring(C(index))   )   
               SetLabelParams(chart_tag, Label_ID, label_params);
--   PrintDbgStr('SetLabelParams Label_ID = '..Label_ID)
            end         
                           
            -- первый тик нового бара или первый проход и метка еще не создавалась или смена таймфрейма
            -- удаляем предыдущую и создаем новую метку с новыми координатами (метку можно смещать в удобное место...)
            if bars_prev < Size() or Label_ID == nil or TF_prev ~= DSInfo.interval then
               bars_prev = Size()
               -- удаляем метку если она уже была и создаем новую
               if Label_ID ~= nil then LbDelete() end;   
               Label_ID = labeldraw(chart_tag, index)
               TF_prev = DSInfo.interval
            
            end;


         end -- every second
         -- завершение цикла
         n_OnCalcCount = n_OnCalcCount+1
   --PrintDbgStr('END Cycle index == Size() ' .. Size()..', n_OnCalcCount = '..n_OnCalcCount)
      end -- index == Size()         
         
   end -- if index > 1 
   
   return nil
end

function labeldraw(tag, index)
 
   local highest = 0.0   
   for j = 0, 14 do
      if H(index-j) > highest then highest = H(index-j) end;
   end

   local _t =    T(index-3)
   --PrintDbgStr(_t.year.._t.month.._t.day..' '.._t.hour..':'.._t.min..':'.._t.sec)
   local Y = tostring(_t.year)
   local m = tostring(_t.month)   if #m  == 1 then  m = "0"..m  end;
   local d = tostring(_t.day)      if #d  == 1 then  d = "0"..d  end;
   local hh = tostring(_t.hour)   if #hh == 1 then hh = "0"..hh end;
   local mm = tostring(_t.min)      if #mm == 1 then mm = "0"..mm end;
   local ss = '00'; -- tostring(_t.sec) if #ss == 1 then ss = "0"..ss end;

   label_params['DATE'] = tonumber(Y..m..d);
   label_params['TIME'] = tonumber(hh..mm..ss);
   label_params['YVALUE'] = highest;
   label_params['R'] = 0; -- DOUBLE Красная компонента цвета в формате RGB. Число в интервале [0;255]
   label_params['G'] = 0; -- DOUBLE Зеленая компонента цвета в формате RGB. Число в интервале [0;255]
   label_params['B'] = 255; -- DOUBLE Синяя компонента цвета в формате RGB. Число в интервале [0;255]
   label_params['TRANSPARENCY'] = 0;
   label_params['TRANSPARENT_BACKGROUND'] = 1;
   label_params['FONT_FACE_NAME'] = 'Verdana';
   label_params['FONT_HEIGHT'] = 12;

   local label_id = AddLabel(tag, label_params) -- number
   if label_id  ~= nil then
       Labels[#Labels+1] = label_id
      PrintDbgStr('Create Label_id: '..tostring(label_id)) 
   else 
      message('Don\'t create label')
   end

   return label_id  -- number

end


----  удаление меток
-- ищем и удаляем все метки независимо как и кем установленные :) 
-- функцию используем полной очистки от меток и контроля 
function LbDelete_2()
--   local _labels = {}
    local n = 0;
   for _label_id = 1, 10000, 1 do
      local L = GetLabelParams(chart_tag, _label_id )--table or nil  Табл параметров метки - все значения имеют тип – STRING
      if L ~= nil  then
         local del = DelLabel(chart_tag, _label_id)
         if del == true then 
            n = n + 1;
PrintDbgStr('LbDelete_2() Label number '..tostring(_label_id).. ' deleted ')
         end; 
      end
   end
   Label_ID = nil;
   Labels = {}
   return n;
end
-- Удаляет ранее установленные метки сохраненые в массиве
function LbDelete()
   local n = 0
   if #Labels > 0 then 
      for j=1,#Labels,1 do          
         if DelLabel(chart_tag, tonumber(Labels[j])) then 
            n = n + 1
PrintDbgStr("LbDelete() id "..tostring(Labels[j]) .. ' deleted')
          end
      end;
      Labels = {};
      Label_ID = nil;
   end;
   return n;
end;

При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается
 
При наложении индикатора или при периинициализации при смене инструмента графика терминал даже ни видит переменных объявленных в Settings

А увидит он идентификатор только на втором проходе  Как тут метки не потерять :)

Тяжелая у вас работа парни (разработчики) За 20 лет как познакомился с этим монстром ничего не изменилось Кракозябы накапливаются и наслаиваются одни на другие

Код
-- ----- Первичное добавление индикатора -----
-- Init() > OnCalculate() > OnChangeSettings() > OnCalculate() 2 > OnCalculate() 3

Код
Settings=
{
Name = "Example1",
chart_ID = ''         -- идентификатор графика
}

function Init()
   if Settings.chart_ID == '' then message('Init() Chart ID не указан!!!') end;
   return 1
end

function OnCalculate(index)
    if index == Size() then
      if Settings.chart_ID == '' then message('OnCalculate Chart ID не указан!!!'); end;
   end
   return nil
end

При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается
 
Такой вопрос - где и как происходит прерывание расчетов в текущем цикле OnCulculate() при смене инструмента на графике? Цикл доходит до конца или прерывается случайным образом

Цель выполнить кусок кода по удалению текущей метки которая после смены инструмента уже "потеряется"
При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается
 
Проблема с метками существует с древних времен - здесь и  здесь  и  здесь и с моим участием  здесь
По второй ссылке - ответ Daniil Pozdnyakov типовой "К сожалению, проблему, о которой ведётся речь, воспроизвести не удалось"н
Ну киньте индикатор что приводит пользователь по данной ссылке, переключите несколько раз между двумя инструментами график и увидите см файл - screen_1
Ну что еще нужно чтобы "воспроизвести" ошибку в работе терминала
По ссылке обсуждения с моим участием еще в 2021 еще на версии терминала 9.3 ответ того же  Daniil Pozdnyakov   "Описанная в данном обращении проблема была устранена в версии 9.4.0 терминала QUIK." а проблема как была так и переходит уже несколько лет
При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается
 
Цитата
funduk написал:
На каждом I == 1 проверяете инструмент, если он не совпадает с предыдущим, удаляете метку. Т.е. удаляете после смены инструмента, не до.
Спасибо за ответ Но после смены инструмента ситуацию я только что описал - метку в коде уже не найти и соответственно не удалить
Кроме того часто бывают ситуации когда пкм на графике не дает уже "Удалить - Все метки в диаграмме"
Да и как после смены инструмента получить тикер предыдущего? После инита все переменные уже "обнулены"  в том числе и id метка.
Ну разве что в файле хранить, и постоянно сравнивать запись в файле с текущим  :what:  
При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается
 
Никто из сообщества не откликнулся. Обращаюсь к разработчикам.
Господа. Это не пожелание а вопрос некорректной работы терминала Терминал теряет метки.
Создав метку на одном инструменте и переключившись на другой инструмент метка полностью теряется.
Ее уже невозможно удалить ни стандартными функциями:
- DelLabel(), потому что после смены инструмента  id метки после переинициализации уже не существует
- DelAllLabels() даже при том что chart_tag прежний эту метку уже не находит
ни перебором в коде типа...

Код
local n = 0;
for _label_id = 1, 1000, 1 do
   local L = GetLabelParams(chart_tag, _label_id )--table or nil
   if L~= nil  then
      n = n + 1;
      if L.hint:find("PnL")  
         then DelLabel(chart_tag, _label_id)
      end;
   end
end 

В результате переключившись пару раз на другие инструменты и вернувшись на изначальный получите вот такую картинку :)

Какое решение найдут разработчики - не знаю Но ситуация требует исправления.

Возможно подключать OnDestroy() при смене инструмента, либо увязать это с параметром диаграммы - "Оставлять трендовые линии, фигуры и метки при смене инструмента"

При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается
 
Добрый день
Вопрос поднимался еще в 2017г  и был принят поддержкой :)

При смене инструмента графика OnDestroy() по прежнему не вызывается
Вопрос - скажем скрипт-индикатор создает метку на графике Меняете инструмент и метка остается, причем скрипт полностью ее теряет
Как ее удалить в коде скрипта перед тем как инструмент будет заменен или сохранить доступ к ней?
Глобальные переменные обнулились, идентификатор метки тоже утерян
Известные баги 9 версии
 
Цитата
Karina Dmitrieva написал:
Здравствуйте, Сергей.

Для детального анализа возникновения описываемого Вами эффекта просим приложить данный скрипт. Можете здесь или направьте его нам на почту:  quiksupport@arqatech.com  со ссылкой на данную ветку форума.
Это абсурд ! Напишите сами (индикатор) скрипт в одну строчку SetLabelParams(chart_tag, Label_ID, label_params); и установите метку на график  предварительно заполнив параметр label_params['HINT'] = "TEST"
Известные баги 9 версии
 
Цитата
Karina Dmitrieva написал:
Добрый день, Сергей.

Опишите, пожалуйста, более подробно Вашу ситуацию. Что Вы подразумеваете под "программной установкой"?
Можете приложить скриншот для наглядности ?
Программно - значит скриптом
При наведении курсора мыши на текст метки появляется "всплывающая подсказка" ( HINT )
На скрине версии 9.4  В версии 9.5 эта подсказка не появляется
Известные баги 9 версии
 
Версия 9.5.0.42   не работает всплывающая подсказка при программной установки текстовой метки (hint)
Версия 9.2.3.15, Метки
 
Цитата
Anzhelika Belokur написал:
Добрый день. Описанная в данном обращении проблема будет устранена в одной из очередных версий ПО. Приносим извинения за причиненные неудобства.
Пожалуйста, сориентируйте по срокам. Пауза затянулась....
Версия 9.2.3.15, Метки
 
Цитата
Anzhelika Belokur написал:
Добрый день. Описанная в данном обращении проблема будет устранена в одной из очередных версий ПО. Приносим извинения за причиненные неудобства.
Спасибо за отклик Ждем С наступающим НГ
Версия 9.2.3.15, Метки
 
Цитата
Daniil Pozdnyakov написал:
Правильно понимаем, что данные скрипты Вы получили от сторонних разработчиков ?
Спасибо что откликнулись.
Правильно. Я привел ссылку на разработчика
Цитата
Daniil Pozdnyakov написал:
Просьба подробно описать, с какими проблемами Вы столкнулись ?
Я начал работать начиная с 8 версии  и имея опыт в программировании не смог найти где и почему терминал теряет  метки и и соответственно не контролирует их.
Установленная скриптом (индикатором) метка после каких либо действий с графиком (смена таймфрейма, инструмента) теряется. Скрипт ее уже не может найти.  Даже программное удаление DelAllLabels(chart_tag) не работает поскольку На графике пкм-Удалить-Все метки диаграммы подтверждает что метки на графике остались но найти их программно скрипт не может.  Кроме того  при установке индикатора на график с  указанием в settings  идентификатора графика  проверка при инициализации  в коде сразу выдает ошибку по идентификатору. Это говорит о том что терминал при инициализации индикатора не идентифицирует метку самого графика и метку указанную в настройках индикатора Возможно что проблема именно в этом.
В 9 версии проблема с загрузкой метки из файла
labels_params[IMAGE_PATH] = getWorkingFolder()..\\Data\\transation_Icons\\*.bmp
выдает ошибку загрузки файла и соответственно метки на графике нет
Причем ошибка только процессе инициализации индикатора, далее ошибки нет но и меток на графике нет Хотя "Удалить  Все метки..."  подтверждает их наличие на графике

Еще раз хочу подчеркнуть что код скрипта и индикатора который я предложил протестировать для меня никакой роли не играет  У меня свои наработанные годами скрипты которые я просто адаптировал под Квик
Попытка разобраться в переписке в отдельных фрагментах кода полагаю приведет только к путанице Поэтому я и предложил протестировать приложенный мною скрипт и индикатор  с тем чтобы разработчики сами могли проверить работу терминала с метками  Задача ведь не в проверке кодов а именно в проверке работы терминала
Версия 9.2.3.15, Метки
 
Цитата
Anton написал:
Цитата
Потому что теперь функция называется table.unpack. Аж с луа 5.2.
Вообще дело то не в unpak().   Терминал теряет метки, т.е. если скрипт установил метку, то через некоторое время, после смены инструмента, тайили таймфрейма он уже не может найти свою же метку и ее невозможно даже удалить программно не говоря уже о том чтобы управлять ей, а  9.3.3. просто не выводит метку на график
Я же приложил скрипт и индикатор Оба написаны очень грамотно Все кому интересно могут попробовать и суть не в функционале и его востребованности а именно как академический пример работы с метками и не только

#s3gt_translate_tooltip_mini { display: none !important; }
Версия 9.2.3.15, Метки
 
Цитата
Anton написал:
Цитата
Сергей написал:
версия 9.3 выдает ошибку на использование unpack()
Потому что теперь функция называется table.unpack. Аж с луа 5.2.
Согласен, хотя на текущий момент интерпретатор поддерживает и то  и другое
А формально  - заходим на сайт разработчика и скачиваем документацию последней  версии 9.3.3
Открываем "Использование LUA в рабочем месте Quik" и  видим код примера

function OnCalculate(idx)
   local res={}
   for i=1, Settings.N do
      res[i] = gtMA[i](idx,"C")
   end
   return unpack(res)
end

Это все и говорит об уровне отношения разработчика к поддержке своего продукта и своим клиентам
Версия 9.2.3.15, Метки
 
Цитата
Alexey Ivannikov написал:
Информация получена, проблема изучается. Постараемся в ближайшее время дать ответ.
Alexey Ivannikov,   Вы не ответили на мой пост о том что "версия 9.3 выдает ошибку на использование unpack()"

И главное, вопрос о том что терминал некорректно работает с метками идет несколько лет!  а Вы в уже ставшем традицией тоне пишите " проблема изучается"

Я не  буду публиковать здесь свои коды, а приведу как мне кажется академический пример, который можно использовать для обучения а в данном случае тестирования терминала:
Пару лет назад профессиональными программистами был написан скрипт и индикатор сохранения данных по сделкам в файл с последующим их нанесением на график
На текущий момент в публикации остался только скрипт https://quikluacsharp.ru/quik-qlua/kak-zapustit-qlua-lua-skript-v-terminale-quik/  
По этому прикладываю весь комплект с описанием  Сделки_на_Графике  который сохранился у меня в закромах

Протестируйте и Вы найдете целый ряд проблем в работе терминала с метками И кстати не только с метками
Окажите уважение трейдеру с многолетним стажем, который 20 лет спустя решил вспомнить о российском рынке и Вашем продукте под названием Quik
Версия 9.2.3.15, Метки
 
Цитата
Alexey Ivannikov написал:
Добрый день.
   
Попробуйте обновиться до актуальной версии и сообщить нам результат. Скачать обновление можно тут:  https://arqatech.com/upload/iblock/c55/quik_9.3.1_upd.zip
Метки и так работали некорректно во всех версиях а с 9 версии вообще перестали отображаться. При наложении индикатора на только что открытый график отображаются, после перезагрузки терминала уже нет

Обновление до рекомендованной версии 9.3 выдает ошибку на использование unpack()
Страницы: 1
Наверх