Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 978

 
pvba:

Merci beaucoup !

s'il vous plaît.

 

Bonsoir à tous. Alors, quelqu'un peut-il m'aider ?

Dans le post précédent j'ai décrit le problème

 
Iurii Tokman:

+

Merci.
 
valeriikopp:
Merci.

s'il vous plaît.

 
Je ne peux pas écrire des indicateurs moi-même et le temps de moins de 60 ans ainsi que ma vue ne me permettront plus d'apprendre, mais j'ai besoin d'un indicateur pour déterminer la charge de l'ensemble du dépôt ou indiquer combien de lots peuvent être ouverts comme dans l'exemple de mt4, le code est petit là peut quelqu'un m'aider à le réécrire pour mt5 ou il est impossible à mettre en œuvre. Le code est le suivant sur mt4 :
#property indicator_chart_window
extern Color Color = Rouge ;
extern int Size = 14 ;
chaîne externe Font = "Verdana" ;
int init() {
retour (0) ;
}

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

int start() {
int l_ind_counted_0 = indicatorCounted() ;
double l_free_magrin_4 = 0 ;
double 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("lab", OBJ_LABEL, 0, 0, 0) ;
ObjectSet("lab", OBJPROP_XDISTANCE, 3) ; //déplacer à gauche ou à droite
ObjectSet("lab", OBJPROP_YDISTANCE, 27) ; //basculer vers le bas ou vers le haut
ObjectSetText("lab", DoubleToStr(ld_20, 2), Size, Font, Color) ;
retour (0) ;

}


 
Bonjour, j'ai besoin de conseils.
for(int no1=0; no1<ObjectsTotal(OBJ_TEXT); no1++)
  {
   if(ObjectName(0)=="Profit1"+iBarShift(NULL,1440,0))
     {
      double name;
      name = ObjectDescription(0);;
      Comment(name);
     }
  }
Pourquoi mon dernier texte ne s'affiche-t-il pas ? Qu'est-ce qui ne va pas ici ? S'il vous plaît, dites-moi comment le réparer !
 
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);
  }
//----
//+------------------------------------------------------------------+

peut ne pas fonctionner si

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

cela peut ne pas fonctionner si

J'ai fait comme vous l'avez dit, quand je mets le code dans le fichier sans la dernière ligne contenant des zéros, il donne toujours une erreur, mais quand je mets le code ci-dessus sur le graphique, il n'y a pas de données de maximisation, et il montre tout avec des zéros, 0.00. Il semble qu'il y ait quelque chose d'autre qui manque pour mt5, mais je vous remercie si quelqu'un m'en dit plus.


 
Bonjour, j'ai besoin de conseils.
for(int no1=0; no1<=ObjectsTotal(OBJ_TEXT); no1++)
  {
   if(ObjectName(0)=="Profit1"+iBarShift(NULL,1440,0))
     {
      double name;
      name = ObjectDescription(0);;
      Comment(name);
     }
  }
Pourquoi mon dernier texte ne s'affiche-t-il pas ? Qu'est-ce qui ne va pas ici ? S'il vous plaît, dites-moi comment le réparer !