Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 978

 
pvba:

Muito obrigado!

por favor.

 

Boa noite a todos. Então, alguém pode me ajudar?

No post anterior eu descrevi o problema

 
Iurii Tokman:

+

Obrigado
 
valeriikopp:
Obrigado

por favor.

 
Eu mesmo não posso escrever indicadores e o tempo com menos de 60 anos junto com minha visão não me deixa estudar, mas preciso de um indicador para determinar a carga de todo o depósito ou indicar quantos lotes podem ser abertos como exemplo mt4, o código é pequeno lá pode alguém me ajudar a reescrevê-lo para mt5 ou não pode ser feito. O código é o seguinte no mt4:
#janela_do_cartão_indicador de propriedade
Cor exterior Cor = Vermelho;
Tamanho int externo = 14;
fio externo Font = "Verdana";
int init() {
retorno (0);
}

int deinit() {
ObjectDelete("laboratório");
{ retornar (0);
}

int start() {
int l_ind_counted_0 = indicatorCounted();
duplo l_free_magrin_4 = 0;
duplo l_marginrequired_12 = 0;
double 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("laboratório", OBJ_LABEL, 0, 0, 0, 0);
ObjectSet("laboratório", OBJPROP_XDISTÂNCIA, 3); //troca à esquerda ou à direita
ObjectSet("laboratório", OBJPROP_YDISTANCE, 27); //tilt para baixo ou para cima
ObjectSetText("laboratório", DoubleToStr(ld_20, 2), Tamanho, Fonte, Cor);
retorno (0);

}


 
Olá, eu preciso de alguns conselhos.
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 que meu último texto não está aparecendo? O que há de errado aqui? Por favor, me diga como consertá-lo!
 
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);
  }
//----
//+------------------------------------------------------------------+

pode não funcionar se

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

pode não funcionar se

Fiz como você disse, quando coloquei o código no arquivo sem a última linha contendo zero, ele ainda dá um erro, mas quando coloquei o código acima no gráfico não há dados de maximização, e ele mostra tudo com zeros, 0,00. Parece que falta algo mais para o mt5, mas obrigado se alguém me disser mais.


 
Olá, eu preciso de alguns conselhos.
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 que meu último texto não está aparecendo? O que há de errado aqui? Por favor, me diga como consertá-lo!
Razão: