Индикатор с метками

Страницы: 1
RSS
Индикатор с метками
 
По просьбе трудящихся, написал Пример ПРАВИЛЬНОГО индикатора, который  через секунду удаляет ранее выставленную метку и выводит новую.
--------------------------------
Пользуйтесь на здоровье.
----------------------------

Код
Settings={ Name = "*nk_test", tag ="Metka"  }

params={R = 255, G = 255, B = 255, TRANSPARENCY = 0,FONT_HEIGHT = 10,TRANSPARENT_BACKGROUND = 1, FONT_FACE_NAME = 'Verdana' }

function OnCalculate(i)
  if i==1 then
  OnChangeSettings()  
  elseif i== Size() then    -- последняя свеча
     if os.time() > LastSecond  then          -- раз в секунду (или больше)  
          LastSecond = os.time();    -- потиковое обновление (с задержкой)  
        if Label then DelLabel(Settings.tag,Label) end
           params.TEXT =tostring(C(i))
           params.HINT = tostring(i)
        local h=0   local  m=i;  
        while 14>i-m  do if H(m) > h then h=H(m) end;m=m-1;   end
        local Ti=T(i-3)
        params.DATE=100*(100*Ti.year+Ti.month)+Ti.day;
        params.TIME=100*(100*Ti.hour+Ti.min)+Ti.sec;  
        params.YVALUE =h;
        Label= AddLabel(Settings.tag, params)
       end -- every second
   end
end

function OnChangeSettings()
sec = getDataSourceInfo().sec_code; DelAllLabels(Settings.tag);
LastSecond=0  end
function OnDestroy() OnChangeSettings() end
function Init()  return 1 end




 
Код
Settings={ Name = "*nk_test", tag ="Metka"  }

params={R = 255, G = 255, B = 255, TRANSPARENCY = 0,FONT_HEIGHT = 10,TRANSPARENT_BACKGROUND = 1, FONT_FACE_NAME = 'Verdana' }

function OnCalculate(i)
   if i==1 then
   OnChangeSettings()
   elseif i== Size() then    -- последняя свеча
      if os.time() > LastSecond  then          -- раз в секунду (или больше)
           LastSecond = os.time();    -- потиковое обновление (с задержкой)
          DelAllLabels(Settings.tag);
            params.TEXT =tostring(C(i))
            params.HINT = tostring(i)
         local h=0   local  m=i;
         while 14>i-m  do if H(m) > h then h=H(m) end;m=m-1;   end
         local Ti=T(i-3)
         params.DATE=100*(100*Ti.year+Ti.month)+Ti.day;
         params.TIME=100*(100*Ti.hour+Ti.min)+Ti.sec;
         params.YVALUE =h;
         Label= AddLabel(Settings.tag, params)
        end -- every second
    end
end

function OnChangeSettings()
sec = getDataSourceInfo().sec_code; 
DelAllLabels(Settings.tag);
LastSecond=0  end
function OnDestroy() OnChangeSettings() end
function Init()  return 1 end
Страницы: 1
Читают тему
Наверх