Задача: Числовые значения по 5 переменным в отдельном окне. Ламер просит помощи)

 
Всем доброго времени суток. Сам студент, инженер, решил освоить ООП MQL5, но плавание по справке не приносит толкового результата. Поставил себе первичную задачу: написать индкатор. Но он должен выводить в отдельном окне не движение линии по графу, а числовые значения . Понимаю, что вопрос может звучать глупо, однако пока трудно понимается, но очень уж хочется. Возможна ли реализация поставленной самому себе задачи? Какие советы от сильных языка сего можете дать?
 

Переменные простые:
Max - максимум цены
Mid - средняя
Min - минимум
Open - открытие

Close - закрытие

Все переменные считывают!(без сохранения в БД) показатели в определенный период по паре и будут выдавать мне числовое значение. В силу сложности (по какой то причине) для меня в восприятии языка, пока имею только алгоритмическое представление, как и что делать. Help, comrades!)
 
Глобальная цель: из этих переменных в определенное время брать значения и подставлять под отдельные формулы, которые будут так же выдавать значения, анализироваться и выдавать аутпут влияющий на графическое отображение. В терминологии экономической (трейдинга) не силён, у меня скорее математический и проэктный интерес создать это. Если мною описанное ТЗ не ясно, могу описать подробнее. В голове все очень просто, а на деле заблудился в трёх соснах)
 

Не очень понял, проблема в выводе текста на экран, что ли? Так это как два пальца ))

input int       FontSize            = 10;
input color     FontColor           = clrYellow;
input string    FontName            = "Tahoma";
input int       XOffset             = 10;
input int       YOffset             = 15;
input int       SpreadSmoothTicks   = 20;

string lNames[]={"Margin4lot= ", "PointPrice= ", "Leverage= 1:","SpreadSmooth= ","SpreadPrice= ","StopLevel= ","MarginCall= ", "StopOut= "};

void OnInit()
{
   ObjectsDeleteAll(0,"SIP");
   Sleep(200);
   ChartRedraw();
   Sleep(200);
   for(int n=ArraySize(lNames)-1; n>=0; n--) //создаем 8 лейблов
   {
      if(!CreateLabel("SIP_"+lNames[ArraySize(lNames)-1-n],XOffset,YOffset*n+YOffset))
         Print("CreateLabel returns false, n = ",IntegerToString(n));
   }
   Sleep(200);
   ChartRedraw();
}


//Создание лейбла, значения Font*** берутся из настроек индикатора
bool CreateLabel(string name,int x,int y=10)
{
   if(!ObjectCreate(0,name,OBJ_LABEL,0,0,0))
      return false;;
   ObjectSetInteger(0,name,OBJPROP_ANCHOR,ANCHOR_LEFT_LOWER);
   ObjectSetInteger(0,name,OBJPROP_CORNER,CORNER_LEFT_LOWER);
   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,FontSize);
   ObjectSetInteger(0,name,OBJPROP_COLOR,FontColor);
   ObjectSetInteger(0,name,OBJPROP_SELECTABLE,true);
   ObjectSetString(0,name,OBJPROP_FONT,FontName);
   ChartRedraw();
   return true;
}

где-то выводим текст в лейблы

   ObjectSetString(0,"SIP_"+lNames[0],OBJPROP_TEXT,lNames[0]+DoubleToString(margin,2) + "  MarginHedjed4lot= " + DoubleToString(marginHedged/m_accountInfo.Leverage(),2));
   ObjectSetString(0,"SIP_"+lNames[1],OBJPROP_TEXT,lNames[1]+DoubleToString(m_symbolInfo.TickValue(),2));
   ObjectSetString(0,"SIP_"+lNames[2],OBJPROP_TEXT,lNames[2]+IntegerToString(m_accountInfo.Leverage()));
   ObjectSetString(0,"SIP_"+lNames[3],OBJPROP_TEXT,lNames[3]+DoubleToString(sprd,_Digits) + ",  RealSpread= " + DoubleToString(m_symbolInfo.Ask() - m_symbolInfo.Bid(),_Digits));
   ObjectSetString(0,"SIP_"+lNames[4],OBJPROP_TEXT,lNames[4]+DoubleToString(price4lot,2));
   ObjectSetString(0,"SIP_"+lNames[5],OBJPROP_TEXT,lNames[5]+DoubleToString(m_symbolInfo.StopsLevel(),0));