Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 978

 
pvba:

¡Muchas gracias!

por favor.

 

Buenas noches a todos. Entonces, ¿alguien puede ayudarme?

En el post anterior describí el problema

 
Iurii Tokman:

+

Gracias
 
valeriikopp:
Gracias

por favor.

 
No puedo escribir indicadores por mi mismo y el tiempo por debajo de los 60 años junto con mi vista no me dejan aprender más, pero necesito un indicador que determine la carga de todo el depósito o que indique cuantos lotes se pueden abrir como en el ejemplo de mt4, el código es pequeño ahí puede alguien ayudarme a reescribirlo para mt5 o es imposible de implementar. El código es el siguiente en mt4:
#propiedad ventana_del_gráfica_del_indicador
extern Color Color = Rojo;
extern int Tamaño = 14;
cadena externa Font = "Verdana";
int init() {
retorno (0);
}

int deinit() {
ObjectDelete("lab");
{ retorno (0);
}

int inicio() {
int l_ind_counted_0 = indicadorContado();
double l_free_magrin_4 = 0;
double l_marginrequired_12 = 0;
doble ld_20 = 0;
l_free_magrin_4 = AccountFreeMargin();
l_marginrequired_12 = MarketInfo(Symbol(), MODE_MARGINREQUIRED);
ld_20 = l_free_magrin_4 / l_marginrequired_12;
ObjectCreate("lab", OBJ_LABEL, 0, 0, 0);
ObjectSet("lab", OBJPROP_XDISTANCE, 3); //desplazamiento a la izquierda o a la derecha
ObjectSet("lab", OBJPROP_YDISTANCE, 27); //inclinar hacia abajo o hacia arriba
ObjectSetText("lab", DoubleToStr(ld_20, 2), Size, Font, Color);
retorno (0);

}


 
Hola, necesito un consejo.
for(int no1=0; no1<ObjectsTotal(OBJ_TEXT); no1++)
  {
   if(ObjectName(0)=="Profit1"+iBarShift(NULL,1440,0))
     {
      double name;
      name = ObjectDescription(0);;
      Comment(name);
     }
  }
¿Por qué no aparece mi último texto? ¿Qué pasa aquí? Por favor, díganme cómo solucionarlo.
 
Rustam Bikbulatov:

no1<=ObjectsTotal(OBJ_TEXT);
 
Konstantin Lebedev:
//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                                               Yuriy Tokman (YTG) |
//|                       https://www.mql5.com/ru/users/satop/seller |
//+------------------------------------------------------------------+
#property copyright "Yuriy Tokman (YTG)"
#property link      "https://www.mql5.com/ru/users/satop/seller"
#property version   "1.00"
#property indicator_chart_window

#property  indicator_plots 0

input color Color = Red;
input int Size = 14;
input string Font = "Verdana";
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping

//---
   return(INIT_SUCCEEDED);
  }
//----
void OnDeinit(const int reason)
  {
//---
   ObjectDelete(0,"lab");
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   double l_free_magrin_4 = 0;
   double l_marginrequired_12 = 0;
   double ld_20 = 0;
   l_free_magrin_4 = AccountInfoDouble(ACCOUNT_MARGIN_FREE);
   l_marginrequired_12 = SymbolInfoDouble(Symbol(),SYMBOL_MARGIN_INITIAL);//Начальная (инициирующая) маржа обозначает размер необходимых залоговых средств в маржинальной валюте для открытия позиции объемом в один лот. Используется при проверке средств клиента при входе в рынок.
   if(l_marginrequired_12!=0)
      ld_20 = l_free_magrin_4 / l_marginrequired_12;

   LabelCreate(0,"lab",0,

               3,//отодвинуть влево или направо
               27,//отодвинуть вниз или вверх

               CORNER_LEFT_UPPER,
               DoubleToString(ld_20, 2)
               ,Font,Size,Color);

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Создает текстовую метку                                          |
//+------------------------------------------------------------------+
bool LabelCreate(const long              chart_ID=0,               // ID графика
                 const string            name="Label",             // имя метки
                 const int               sub_window=0,             // номер подокна
                 const int               x=0,                      // координата по оси X
                 const int               y=0,                      // координата по оси Y
                 const ENUM_BASE_CORNER  corner=CORNER_LEFT_UPPER, // угол графика для привязки
                 const string            text="Label",             // текст
                 const string            font="Arial",             // шрифт
                 const int               font_size=10,             // размер шрифта
                 const color             clr=clrRed,               // цвет
                 const double            angle=0.0,                // наклон текста
                 const ENUM_ANCHOR_POINT anchor=ANCHOR_LEFT_UPPER, // способ привязки
                 const bool              back=false,               // на заднем плане
                 const bool              selection=false,          // выделить для перемещений
                 const bool              hidden=true,              // скрыт в списке объектов
                 const long              z_order=0)                // приоритет на нажатие мышью
  {
//--- сбросим значение ошибки
   if(ObjectFind(chart_ID,name)!=0)
      ObjectDelete(chart_ID,name);
//--- создадим текстовую метку
   if(!ObjectCreate(chart_ID,name,OBJ_LABEL,sub_window,0,0))
     {
      Print(__FUNCTION__,
            ": не удалось создать текстовую метку! Код ошибки = ",GetLastError());
      return(false);
     }
//--- установим координаты метки
   ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
//--- установим угол графика, относительно которого будут определяться координаты точки
   ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
//--- установим текст
   ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
//--- установим шрифт текста
   ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
//--- установим размер шрифта
   ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
//--- установим угол наклона текста
   ObjectSetDouble(chart_ID,name,OBJPROP_ANGLE,angle);
//--- установим способ привязки
   ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
//--- установим цвет
   ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- отобразим на переднем (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);
//--- успешное выполнение
   return(true);
  }
//----
//+------------------------------------------------------------------+

puede no funcionar si

SymbolInfoDouble(Symbol(),SYMBOL_MARGIN_INITIAL) = 0
 
Iurii Tokman:

puede no funcionar si

Hice lo que me dijiste, cuando pongo el código en el archivo sin la última línea que contiene el cero, sigue dando error, pero cuando pongo el código de arriba en el gráfico no hay datos de maximización, y muestra todo con ceros, 0,00. Parece que falta algo más para mt5, pero gracias si alguien me dice más.


 
Hola, necesito un consejo.
for(int no1=0; no1<=ObjectsTotal(OBJ_TEXT); no1++)
  {
   if(ObjectName(0)=="Profit1"+iBarShift(NULL,1440,0))
     {
      double name;
      name = ObjectDescription(0);;
      Comment(name);
     }
  }
¿Por qué no aparece mi último texto? ¿Qué pasa aquí? Por favor, díganme cómo solucionarlo.
Razón de la queja: