Шёл рыцарь и нашёл себе 2 проблемы

Страницы: 1
RSS
Шёл рыцарь и нашёл себе 2 проблемы
 
1)
Открываем график цены и объёма например Сбера ... у графика Сбера в пункте 'Идентификатор' выставляем abcdДобавляем в новой области индикатор AAA2 ... смысл которого просто повторить график цены.

Код
Settings=
{
 Name = "AAA2",
 Name1 = "abcd",
 val_r = 0,
 line = 
 {
 {
 Name = "MA",
 Color = #ff0000,
 Type = TYPE_LINE,
 Width = 2
 }
 }
}


 function Init()
   return 1
 end

function OnCalculate(index)
   local q1 = 0
   
   t1, n1, l1 = getCandlesByIndex(Settings.Name1, 0, index-1, 1)
    
   q1 = Settings.val_r
   if t1[0].close > 0 then
      q1 = t1[0].close
      Settings.val_r = q1
   end
 
   return q1
end




Получаем картинку:




Видим что индикатор пишет посл. значение с дробной частью(например 306.70). В тоже время 'перекрестие' что на всплывающей легенде, что на шкале даёт значения без дробной части то бишь 302. Как сию оказию решить?

2) можно ли получить список идентификаторов графиков и индикаторов в системе? Если нет то можно пожелание зарегистрировать.
 
dimka,  По пробуйте, выводить значения индикатора, используя этот подход. [CODE][local function round(num, idp)
   
   -- Если num некорректное, вернуть как есть
   if not num or type(num) ~= "number" then return num end
 
   -- Если idp не указан, использовать 0 (округление до целого числа)
   idp = idp or 0
   local mult = 10^idp

   -- Универсальное Округление для любого числа
   local rounded = num >= 0 and math.floor(num * mult + 0.5) / mult or num < 0 and math.ceil(num * mult - 0.5) / mult or 0
   
   -- Если число целое, убрать .0
   if rounded == math.floor(rounded) then
       return math.floor(rounded)
   end

   return rounded
end/CODE]
 
Извините, странно работает сегодня сайт у меня. Возможно так понятней:

local function round(num, idp)
 
  -- Если num некорректное, вернуть как есть
  if not num or type(num) ~= "number" then return num end

  -- Если idp не указан, использовать 0 (округление до целого числа)
  idp = idp or 0
  local mult = 10^idp

  -- Универсальное Округление для любого числа
  local rounded = num >= 0 and math.floor(num * mult + 0.5) / mult or num < 0 and math.ceil(num * mult - 0.5) / mult or 0
 
  -- Если число целое, убрать .0
  if rounded == math.floor(rounded) then
      return math.floor(rounded)
  end

  return rounded
end
 
Цитата
2) можно ли получить список идентификаторов графиков и индикаторов в системе? Если нет то можно пожелание зарегистрировать.
Здравствуйте. Примеры расчета идентификаторов можно получить по ссылке: https://arqatech.com/upload/iblock/398/INDICATORS.zip
 
Цитата
Oleg Kuzembaev написал:
Цитата
2) можно ли получить список идентификаторов графиков и индикаторов в системе? Если нет то можно пожелание зарегистрировать.
Здравствуйте. Примеры расчета идентификаторов можно получить по ссылке:  https://arqatech.com/upload/iblock/398/INDICATORS.zip
Сразу в Quik 12.8.3.4 не заработало. Нашел решение MA.lua:240: attempt to call a nil value (global 'unpack'). Исправил unpack() на table.unpack и все заработало.
НО! 1-ая проблема "В тоже время 'перекрестие' что на всплывающей легенде, что на шкале даёт значения без дробной части ...." так и остается ...
 
Здравствуйте.

Попробуйте добавить переменную для хранения последней известной цены закрытия источника и при отсутствии новых цены вернуть эту переменную или 0.
Страницы: 1
Читают тему
Наверх