Индикация текущей цены на экране

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Olegs Kucerenko
10956
Olegs Kucerenko  

Господа,помогите пожалуйста с таким вопросом как вывод цены большими символами на экран.Не программист к сожалению.Спасибо.

http://i056.radikal.ru/1008/ef/5317791a504a.jpg

Dimitry
1144
Dimitry  
karlson2007:

Господа,помогите пожалуйста с таким вопросом как вывод цены большими символами на экран.Не программист к сожалению.Спасибо.

http://i056.radikal.ru/1008/ef/5317791a504a.jpg

https://docs.mql4.com/ru/objects/ObjectCreate

https://docs.mql4.com/ru/constants/objects

OBJ_LABEL23Текстовая метка. Не использует координат. Для установки координат, задаваемых в пикселях относительно угла привязки (свойства OBJPROP_CORNER, OBJPROP_XDISTANCE, OBJPROP_YDISTANCE) используется функция ObjectSet(). Для изменения текста используется функция ObjectSetText()
Olegs Kucerenko
10956
Olegs Kucerenko  
Necron:

https://docs.mql4.com/ru/objects/ObjectCreate

https://docs.mql4.com/ru/constants/objects



Написал :

//+------------------------------------------------------------------+
//| price1.mq4 |
//| Copyright © 2010, MetaQuotes Software Corp. |
//| https://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, MetaQuotes Software Corp."
#property link "https://www.metaquotes.net/"

#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators


// новый объект TextLabel
ObjectSetText("label_object", "Oleg", 72, "Times New Roman", Black);
if(!ObjectCreate("label_object", OBJ_LABEL, 0, 0, 0))
{
Print("error: can't create label_object! code #",GetLastError());
return(0);
}
ObjectSet("label_object", OBJPROP_XDISTANCE, 100);
ObjectSet("label_object", OBJPROP_YDISTANCE, 100);

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//----

//----
return(0);
}
//+------------------------------------------------------------------+
Вот результат.Вопрос такой,какая переменная у цены,чтобы поставить вместо слова Oleg?
http://s42.radikal.ru/i097/1008/b1/6c063c68ee47.jpg

---
22807
---  
karlson2007:


Вопрос такой,какая переменная у цены,чтобы поставить вместо слова Oleg?

Bid.

А почему в init ?

Olegs Kucerenko
10956
Olegs Kucerenko  
sergeev:

Bid.

А почему в init ?


Дк по тому как не программист..В школе бейсик учил.Ставил Ask.. не работало..

Я конечно мог бы попросить просто кого-нибудь написать такой индюк,но пока жду пытаюсь сам :-)

Sceptic Philozoff
17690
Sceptic Philozoff  
В init() помещают вычисления, которые делаются однократно, при запуске индюкатора. А Вам-то нужно ее обновлять с каждым тиком. Это надо в start() вставить - причем с удалением предыдущего объекта.
Igor Makanu
9578
Igor Makanu  
#property copyright "IgorM"
#property link      "http://www.metaquotes.net"

#property indicator_chart_window

extern int     X     = 50;
extern int     Y     = 300;
extern color   col   = Red;
extern int     fon   = 36;
extern string  sym   ="";

string name;

int init()
  {
   if (sym == "") sym = Symbol();
   name = "label_object"+TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS);
   if(!ObjectCreate(name, OBJ_LABEL, 0, 0, 0))
    {Print("error: can't create label_object! code #",GetLastError());
     return(0);
    }
  ObjectSet(name, OBJPROP_XDISTANCE, X);
  ObjectSet(name, OBJPROP_YDISTANCE, Y);
  ObjectSet(name, OBJPROP_COLOR, col);
  ObjectSet(name, OBJPROP_FONTSIZE, fon);
  
   return(0);
  }
int deinit()
  {
   string vName;
   for(int i=ObjectsTotal()-1; i>=0;i--)
    {
     vName = ObjectName(i);
     if (vName ==name) ObjectDelete(vName);
    }
   return(0);
  }

int start()
  {

   ObjectSetText(name,DoubleToStr(MarketInfo(sym,MODE_BID),Digits));
   return(0);
  }
//+------------------------------------------------------------------+
если в настройках задать sym то будет отображаться текущая цена любой валютной пары на любом графике, при условии, что заданная валютная пара доступна в окне инструменты
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий