Какой получить размер сетки графика? - страница 3

 

Вот, написал скрипт, который рассчитывает расстояние между соседними барами в пикселях:

//+------------------------------------------------------------------+
//|                          The distance between bars in pixels.mq5 |
//|                              Copyright © 2013, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2013, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
//--- описание
#property description "Расстояние между барами в пикселях."
datetime              time1;           // время первой точки
double                price1;          // цена первой точки
datetime              time2;           // время второй точки
double                price2;          // цена второй точки
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- массив для приема времени открытия 2 последних баров
   datetime    tempTime[];
   double      tempClose[];
//--- установим индексацию для буфера как в таймсерии
   ArraySetAsSeries(tempTime,true);
   ArraySetAsSeries(tempClose,true);
   CopyTime(Symbol(),Period(),0,2,tempTime);
   CopyClose(Symbol(),Period(),0,2,tempClose);
//--- время первой точки будет на текущем баре
   time1=tempTime[0];
//--- цена первой точки будет иметь значение "Close" бара "0"
   price1=tempClose[0];
//--- время второй точки лежит на 1 баров левее второй
   time2=tempTime[1];
//--- цена второй точки будет иметь значение "Close" бара "1"
   price2=tempClose[1];
   int x1,y1;
   int x2,y2;
   if(ChartTimePriceToXY(0,0,time1,price1,x1,y1))
      PrintFormat("Time=%s  Price=%G  =>  X=%d  Y=%d",TimeToString(time1),price1,x1,y1);
   else
      Print("ChartTimePriceToXY return error code: ",GetLastError());
   if(ChartTimePriceToXY(0,0,time2,price2,x2,y2))
      PrintFormat("Time=%s  Price=%G  =>  X=%d  Y=%d",TimeToString(time2),price2,x2,y2);
   else
      Print("ChartTimePriceToXY return error code: ",GetLastError());
   Print("Расстояние между барами в пикселях = ",x1-x2);
//--- успешное выполнение
   return;
  }
//+------------------------------------------------------------------+
 
barabashkakvn:

Вот, написал скрипт, который рассчитывает расстояние между соседними барами в пикселях:

Привет изобретателям велосипедного колеса :)

Print(1<<ChartGetInteger(0,CHART_SCALE));

ЗЫ Я понимаю обидно, весь вечер провозился, такой монументальный труд, иногда полезно мозги расшевелить (в качестве зарядки), не стесняйся спрашивать, может это уже кто то знает.

Тут важен баланс между "по любому вопросу трезвонить" и "я до всего додумываюсь сам". Этот баланс определяет эффективность программиста.

 
Urain:

Привет изобретателям велосипедного колеса :)

 Зато какой велосипед получился :)
Шучу. Спасибо за такое простое решение. Просто всю неделю ждал и сегодня дорвался до компьютера - вот и не смог оторваться :)
 
Подскажите, как задать фиксированный размер сетке, к примеру 100 пунктов фьючерса на индекс РТС. На данный момент приходится в ручную подгонять маштаб. Если задать необходимый маштаб в свойствах графика, то пропадает с графика обьем.
 

Из справки к клиентскому терминалу:

Клиентский терминал / Работа с графиками / Настройка графика:

Показывать тиковые объемы — показать/скрыть график объема в нижней части окна, рассчитанному по количеству тиков. При фиксированном масштабе эта опция не работает.

 
n0ten:
Подскажите, как задать фиксированный размер сетке, к примеру 100 пунктов фьючерса на индекс РТС. На данный момент приходится в ручную подгонять маштаб. Если задать необходимый маштаб в свойствах графика, то пропадает с графика обьем.
Вроде никак. Индикатором нарисуйте.
 
Silent:
Вроде никак. Индикатором нарисуйте.

++ отключить стандартную и нарисовать свою.

От себя добавлю используйте буфера индикаторов а не графические объекты, а то тормоза будут.

 

Спасибо за индикатор, но он удаляет нарисованные линии при смене тайм-фрейма. Не нашел как изменить цвет линий сетки, и как сделать квадратными ячейки сетки.

 

Подскажите, как написать в саппорт MT5, что бы добавили такую возможность? 

 
n0ten:

Спасибо за индикатор, но он удаляет нарисованные линии при смене тайм-фрейма. Не нашел как изменить цвет линий сетки, и как сделать квадратными ячейки сетки.

 

Подскажите, как написать в саппорт MT5, что бы добавили такую возможность? 

В профиле есть раздел СервисДеск, войдите в него, выберите тип заявки Sugestions (предложение) и составляйте заявку (после составления нажмите сохранить).

Внимание в СД-постах править ничего нельзя, что написано пером не вырубишь топором. Поэтому перепроверяйте заявку до отправки.