Как в текстовой метке сделать стрелку вверх? - страница 3

 
Ihor Herasko #:

Стрелка уезжает


Конечно будет уезжать, поскольку время меняется.

 
Petros Shatakhtsyan #:

Конечно будет уезжать, поскольку время меняется.

А нельзя, чтобы уезжала. Читайте топик сначала.

 

вот простая функция для 4ки.

//+ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ+
//|              Функция установки текстовой метки                             |
//+----------------------------------------------------------------------------+
//|              2015: ULAD                                                    |
//+----------------------------------------------------------------------------+
void F_Text_Draw(string nameObj,string tT,int Winda,int Ygl,int xd,int yd,string rRsch,int Ri,color Clra)
  {
   if(ObjectFind(nameObj)!=0)
      ObjectCreate(nameObj,OBJ_LABEL,Winda,0,0);
      ObjectSetText(nameObj,tT,Ri,rRsch,Clra);
      ObjectSet(nameObj,OBJPROP_CORNER,Ygl);
      ObjectSet(nameObj,OBJPROP_XDISTANCE,xd);
      ObjectSet(nameObj,OBJPROP_YDISTANCE,yd);
   return;
  }

вызов функции

F_Text_Draw("StrRos","ц" ,0,2,30,6,"Wingdings",20,clrRed);
Это старая версия. Надо править. Лень)
 
Petros Shatakhtsyan #:

Такие вещи на разных компьютерах будет работать по разному.

И поэтому надо использовать мой пример!

А если использовать функцию CharToString()?

 
Ihor Herasko #:

А нельзя, чтобы уезжала. Читайте топик сначала.

Я показал как нарисовать стрелку. А местоположение, это уже дело техники.



 
Petros Shatakhtsyan #:

Я показал как нарисовать стрелку. А местоположение, это уже дело техники.

В данном случае техника - OnChartEvent(). То есть намного сложнее. Вариант с Label проще.

 
Ihor Herasko #:

В данном случае техника - OnChartEvent(). То есть намного сложнее. Вариант с Label проще.

Вариант Label проще, но не знаю как будет выглядеть стрелка, если увеличить.

А на счет местоположения, я использовал TimeCurrent , и текущую цену, чтобы показать с какого места надо открыть/закрыть ордер.

 
Ihor Herasko #:

В данном случае техника - OnChartEvent(). То есть намного сложнее. Вариант с Label проще.

А в чем сложность.

Вот другой пример, только при перемещении графика, стрелка чуть-чуть дергается.


    datetime dt;
    double price;
    int x=50, y=100;
    int window=0; 
    string obj="UP";
int OnInit()
  {
       return(INIT_SUCCEEDED);
  }
void OnChartEvent(const int id,  const long &lparam,  const double &dparam,  const string &sparam)
{
  ARROW();
}
  void ARROW()
  {
     ChartXYToTimePrice(0,x,y,window,dt,price);    
     ObjectCreate(0,obj,OBJ_ARROW_UP,0,dt,price);
     ObjectSetInteger(0,obj,OBJPROP_XDISTANCE,x);  ObjectSetInteger(0,obj,OBJPROP_YDISTANCE,y);
     ObjectSetInteger(0,obj,OBJPROP_BACK,false); 
     ObjectSetInteger(0,obj,OBJPROP_COLOR,clrGold); 
     ObjectSetInteger(0,obj,OBJPROP_WIDTH,6);
     ObjectSetInteger(0,obj,OBJPROP_ANCHOR,ANCHOR_UPPER);
   ChartRedraw();
  }
  
 
Petros Shatakhtsyan #:

А в чем сложность.

Вот другой пример, только при перемещении графика, стрелка чуть-чуть дергается.

в МТ5, функция ChartXYToTimePrice не быстрая, а если ее будут использовать 2 и более индикаторов, то совсем тормознутая)
лучше свою писать.

 
Petros Shatakhtsyan #:

А в чем сложность.

Вот другой пример, только при перемещении графика, стрелка чуть-чуть дергается.


Об этом я Вам говорил еще на первой сторанице. Вот Вы самостоятельно к этому и пришли. Жаль, что путь оказался таким длинным ))

Как в текстовой метке сделать стрелку вверх?
Как в текстовой метке сделать стрелку вверх?
  • 2021.08.30
  • www.mql5.com
Нужно сделать такую текстовую метку ( OBJ_LABEL ): Но как сделать изображение самой стрелки...