Как сделать чтобы в левом верхнем углу на графике не отрисовывалось название инструмента?

 

Как убрать?

Как убрать название инструмента и время?

Спасибо.

 
Стандартными средствами - никак. Только отображать содержимое графика собственными силами (через Canvas и пр.)
 
Ihor Herasko:
Стандартными средствами - никак. Только отображать содержимое графика собственными силами (через Canvas и пр.)

Может какие есть недокументированные функции? Должны же быть. Хотя бы поменять на свою надпись.

 
Роман:

Может какие есть недокументированные функции? Должны же быть. Хотя бы поменять на свою надпись.

Фотошоп можно предлагать?

 
Evgeniy Zhdan:

Фотошоп можно предлагать?

Хорошо. Мне бы ещё программно на mql4.

 
Ihor Herasko:
Стандартными средствами - никак. Только отображать содержимое графика собственными силами (через Canvas и пр.)

можно зарисовать текстовыми метками, примерно так:


property strict
#include <ChartObjects\ChartObjectsTxtControls.mqh>

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   char c[] = {110,110,110,110,110,110,110,110};
   CChartObjectLabel *Label = new CChartObjectLabel;
   Label.Create(0,_Symbol+IntegerToString(rand()),0,0,0);
   Label.Color(clrRed);
   Label.Font("Wingdings");
   Label.FontSize(14);
   Label.Description(CharArrayToString(c));
  }
//+------------------------------------------------------------------+

нужно шрифт подобрать, чтобы сплошные были квадратики и чуть повыше

ну или вообще картинку в угол чарта вставить, ничего готового нет под рукой, нужно в СБ поискать как картинку приатачить на чарт

 
Роман:

Хорошо. Мне бы ещё программно на mql4.

Вот я когда-то делал советник (МТ4) с картинкой. Торговый алгоритм убрал, а все что касается картинки оставил. Причешите под себя:

//+------------------------------------------------------------------+
#property copyright   ""
#property link        ""
#property version     ""



#property strict
#resource "\\Images\\magic.bmp"          // имя ресурса - Images\magic.bmp
           


//--- входные параметры картинки
string          InpFile="::Images\\magic.bmp"; // Имя файла с картинкой
int             InpWidth=280;                    // X-координата области видимости
int             InpHeight=117;                   // Y-координата области видимости
int             InpXOffset=4;                   // Смещение области видимости по X
int             InpYOffset=4;                   // Смещение области видимости по Y
color           InpColor=clrRed;                // Цвет рамки при выделении
ENUM_LINE_STYLE InpStyle=STYLE_SOLID;           // Стиль линии при выделении
int             InpPointWidth=1;                // Размер точки для перемещений
bool            InpBack=false;                  // Объект на заднем плане
bool            InpSelection=true;             // Выделить для перемещений
bool            InpHidden=false;                 // Скрыт в списке объектов
long            InpZOrder=0;                    // Приоритет на нажатие мышью
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {

   BitmapDelete(0,// ID графика
                "Bitmap"); // имя рисунка


   Comment("");
   return(INIT_SUCCEEDED);


  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {


   BitmapDelete(0,// ID графика
                "Bitmap"); // имя рисунка
   Comment("");
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   int barsOnChart=ChartVisibleBars(0)-1;

   if(logo)
     {
      if(IsVisualMode() || (!IsTesting() ))
        {
         BitmapCreate(0,// ID графика
                      "Bitmap",// имя рисунка
                      0,// номер подокна
                      0,// время точки привязки
                      0,// цена точки привязки
                      InpFile,           // имя файла с картинкой
                      InpWidth,          // X-координата области видимости
                      InpHeight,         // Y-координата области видимости
                      InpXOffset,        // смещение области видимости по X
                      InpYOffset,        // смещение области видимости по Y
                      InpColor,// цвет рамки при выделении
                      InpStyle,// стиль линии при выделении
                      InpPointWidth,// размер точки перемещения
                      InpBack,        // на заднем плане
                      InpSelection,   // выделить для перемещений
                      InpHidden,// скрыт в списке объектов
                      InpZOrder);        // приоритет на нажатие мышью

         BitmapMove(0,// ID графика
                    "Bitmap",// имя рисунка
                    Time[barsOnChart],// время точки привязки
                    ChartPriceMin(0,0));       // цена точки привязки                
        }
     }


   

  }


//+------------------------------------------------------------------+
bool BitmapCreate(const long            chart_ID=0,        // ID графика
                  const string          name="Bitmap",     // имя рисунка
                  const int             sub_window=0,      // номер подокна
                  datetime              time=0,            // время точки привязки
                  double                price=0,           // цена точки привязки
                  const string          file="",           // имя файла с картинкой
                  const int             width=10,          // X-координата области видимости
                  const int             height=10,         // Y-координата области видимости
                  const int             x_offset=0,        // смещение области видимости по X
                  const int             y_offset=0,        // смещение области видимости по Y
                  const color           clr=clrRed,        // цвет рамки при выделении
                  const ENUM_LINE_STYLE style=STYLE_SOLID, // стиль линии при выделении
                  const int             point_width=1,     // размер точки перемещения
                  const bool            back=false,        // на заднем плане
                  const bool            selection=false,   // выделить для перемещений
                  const bool            hidden=true,       // скрыт в списке объектов
                  const long            z_order=0)         // приоритет на нажатие мышью
  {
//--- установим координаты точки привязки, если они не заданы
   ChangeBitmapEmptyPoint(time,price);
//--- сбросим значение ошибки
   ResetLastError();
//--- создадим рисунок
   if(!ObjectCreate(chart_ID,name,OBJ_BITMAP,sub_window,time,price))
     {
      Print(__FUNCTION__,
            ": не удалось создать рисунок в окне графика! Код ошибки = ",GetLastError());
      return(false);
     }
//--- установим путь к файлу с картинкой
   if(!ObjectSetString(chart_ID,name,OBJPROP_BMPFILE,file))
     {
      Print(__FUNCTION__,
            ": не удалось загрузить картинку! Код ошибки = ",GetLastError());
      return(false);
     }
//--- установим область видимости изображения; если значения ширины или высоты
//--- больше значений ширины и высоты (соответственно) исходного изображения, то
//--- оно не рисуется; если значения ширины и высоты меньше размеров изображения,
//--- то рисуется та его часть, которая соответствует этим размерам
   ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
   ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
//--- установим, какая часть изображения должна показываться в области видимости
//--- по умолчанию это левая верхняя область изображения; значения позволяют
//--- произвести сдвиг от этого угла и отобразить другую часть изображения
   ObjectSetInteger(chart_ID,name,OBJPROP_XOFFSET,x_offset);
   ObjectSetInteger(chart_ID,name,OBJPROP_YOFFSET,y_offset);
//--- установим цвет рамки при включенном режиме выделения объекта
   ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- установим стиль линии рамки при включенном режиме выделения объекта
   ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
//--- установим размер точки привязки, с помощью которой можно перемещать объект
   ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,point_width);
//--- отобразим на переднем (false) или заднем (true) плане
   ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
//--- включим (true) или отключим (false) режим перемещения метки мышью
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
   ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
//--- установим приоритет на получение события нажатия мыши на графике
   ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
// установим угол привязки
   ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,2);
//--- успешное выполнение
   return(true);
  }
//+------------------------------------------------------------------+
//| Проверяет значения точки привязки и для пустых значений          |
//| устанавливает значения по умолчанию                              |
//+------------------------------------------------------------------+
void ChangeBitmapEmptyPoint(datetime &time,double &price)
  {
//--- если время точки не задано, то она будет на текущем баре
   if(!time)
      time=TimeCurrent();
//--- если цена точки не задана, то она будет иметь значение Bid
   if(!price)
      price=SymbolInfoDouble(Symbol(),SYMBOL_BID);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool BitmapMove(const long   chart_ID=0,// ID графика
                const string name="Bitmap", // имя рисунка
                datetime     time=0,        // время точки привязки
                double       price=0)       // цена точки привязки
  {
//--- если координаты точки не заданы, то перемещаем ее на текущий бар с ценой Bid
   if(!time)
      time=TimeCurrent();
   if(!price)
      price=SymbolInfoDouble(Symbol(),SYMBOL_BID);
//--- сбросим значение ошибки
   ResetLastError();
//--- переместим точку привязки
   if(!ObjectMove(chart_ID,name,0,time,price))
     {
      Print(__FUNCTION__,
            ": не удалось переместить точку привязки! Код ошибки = ",GetLastError());
      return(false);
     }
//--- успешное выполнение
   return(true);
  }
//+------------------------------------------------------------------+
// CHART_WIDTH_IN_BARS – возвращает ширину графика в барах.
//+------------------------------------------------------------------+ 
//| Функция получает значение ширины графика в барах.                | 
//+------------------------------------------------------------------+ 
int ChartWidthInBars(const long chart_ID=0)
  {
//--- подготовим переменную для получения значения свойства 
   long result=-1;
//--- сбросим значение ошибки 
   ResetLastError();
//--- получим значение свойства 
   if(!ChartGetInteger(chart_ID,CHART_WIDTH_IN_BARS,0,result))
     {
      //--- выведем сообщение об ошибке в журнал "Эксперты" 
      Print(__FUNCTION__+", Error Code = ",GetLastError());
     }
//--- вернем значение свойства графика 
   return((int)result);
  }
//+------------------------------------------------------------------+
//CHART_VISIBLE_BARS – определяет количество баров на графике, доступных для отображения.
//+------------------------------------------------------------------+ 
//| Функция получает количество баров, которые отображаются (видимы )| 
//| в окне графика.                                                  | 
//+------------------------------------------------------------------+ 
int ChartVisibleBars(const long chart_ID=0)
  {
//--- подготовим переменную для получения значения свойства 
   long result=-1;
//--- сбросим значение ошибки 
   ResetLastError();
//--- получим значение свойства 
   if(!ChartGetInteger(chart_ID,CHART_VISIBLE_BARS,0,result))
     {
      //--- выведем сообщение об ошибке в журнал "Эксперты" 
      Print(__FUNCTION__+", Error Code = ",GetLastError());
     }
//--- вернем значение свойства графика 
   return((int)result);
  }
//+------------------------------------------------------------------+ 
//| Функция получает значение минимума графика в главном окне или    | 
//| подокне.                                                         | 
//+------------------------------------------------------------------+ 
double ChartPriceMin(const long chart_ID=0,const int sub_window=0)
  {
//--- подготовим переменную для получения результата 
   double result=EMPTY_VALUE;
//--- сбросим значение ошибки 
   ResetLastError();
//--- получим значение свойства 
   if(!ChartGetDouble(chart_ID,CHART_PRICE_MIN,sub_window,result))
     {
      //--- выведем сообщение об ошибке в журнал "Эксперты" 
      Print(__FUNCTION__+", Error Code = ",GetLastError());
     }
//--- вернем значение свойства графика 
   return(result);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool BitmapDelete(const long   chart_ID=0,// ID графика
                  const string name="Bitmap") // имя рисунка
  {
//--- сбросим значение ошибки
   ResetLastError();
//--- удалим метку
   if(!ObjectDelete(chart_ID,name))
     {
      Print(__FUNCTION__,
            ": не удалось удалить рисунок! Код ошибки = ",GetLastError());
      return(false);
     }
//--- успешное выполнение
   return(true);
  }
//+------------------------------------------------------------------+
 
Evgeniy Zhdan:

Вот я когда-то делал советник (МТ4) с картинкой. Торговый алгоритм убрал, а все что касается картинки оставил. Причешите под себя:

Вот это ВСЁ ради того чтобы закрыть уголок графика??? Яподстолом...

 
Evgeniy Zhdan:

Вот я когда-то делал советник (МТ4) с картинкой. Торговый алгоритм убрал, а все что касается картинки оставил. Причешите под себя:

Как я понимаю, Вы картинку туда лепили? Верно?

Картинку лепить хорошая идея. Но сам Метак, если есть сетка на графике очень непристойно выглядит в этом месте. А потом несколько сложновато. 

Есть же вот простые функции типа:

         ChartSetInteger(id,CHART_SHOW_ONE_CLICK,false);

         ChartSetInteger(id,CHART_SHOW_OHLC,false);

Ещё бы такую, но чтобы не было названия инструмента???

 
Evgeniy Zhdan:

... Причешите под себя:

Если чесать начнём, причешем. И побреем. Спасибо.

Кстати, там по-моему BitmapLabel объект где-то затесался. Он поинтересней здесь смотреться будет.

Есть ещё один вариант. Увеличить размер окна графика. Получается то что нужно, но полосочка пропадает. То же как-то не так.

Увеличение

Тут у нас такая функция есть как 

#import "user32.dll"

bool MoveWindow(int hWnd,int x,int y,int nWidth,int nHeight,bool bRepaint);

#import

И потом.

      int hWnd=ChartGetInteger(currChart,CHART_WINDOW_HANDLE);

       MoveWindow(hWnd,-50,0,X,Y,true);


Если немного сдвинуть график не меняя размер окна в котором этот график, то названия инструмента не будет. Хотя тогда как мне помнится полосочка скроется. Тоже не Айс.

Да и зачем огород лепить если можно в одну строчку.


 ChartSetInteger(id,??????,false);

Чтобы сюда такое влепить чтобы инструмента не было видно.

 
Alexey Viktorov:

Вот это ВСЁ ради того чтобы закрыть уголок графика??? Яподстолом...

Ну да, все взято из справки МетаЭдитора.