Так рассчитывается процент по вертикальной шкале, шкале цены
int InpPrice1=95;//%
//--- размер массива price
int accuracy=1000;
//--- массив для хранения значений цен, которые будут использованы
//--- для установки и изменения координаты точки привязки линии
double price[];
//--- выделение памяти
ArrayResize(price,accuracy);
//--- заполним массив цен
//--- найдем максимальное и минимальное значение графика
double max_price=ChartGetDouble(0,CHART_PRICE_MAX);
double min_price=ChartGetDouble(0,CHART_PRICE_MIN);
//--- определим шаг изменения цены и заполним массив
double step=(max_price-min_price)/accuracy;
for(int i=0;i<accuracy;i++)
price[i]=min_price+i*step;
//--- определим точки для рисования линии
int p=InpPrice*(accuracy-1)/100;