MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 978

 
pvba:

ありがとうございました。

をお願いします。

 

皆さん、こんばんは。そこで、どなたか助けていただけませんか?

前の投稿で、問題 説明しました。

 
Iurii Tokman:

+

ありがとうございました。
 
valeriikopp:
ありがとうございました。

をお願いします。

 
私は私の視力と一緒に60歳未満の指標自身と時間を書くことはできませんが、私は全体の預金の負荷を決定したり、例としてmt4として開かれるかもしれないどのように多くのロットを示すために指標を必要とする、コードはそこに小さいです誰かが私はmt5にそれを書き換えることができますまたはそれが行うことはできません助けることができます。mt4では以下のようなコードになっています。
#property indicator_chart_window
extern カラー Color = Red;
extern int Size = 14;
extern string Font = "Verdana";
int init() {
を返します(0)。
}

int deinit() {
ObjectDelete("lab")。
を返します(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); //左右にシフトする
ObjectSet("lab", OBJPROP_YDISTANCE, 27); //下に傾けるか上に傾けるか
ObjectSetText("lab", DoubleToStr(ld_20, 2), Size, Font, Color);
を返します(0)。

}


 
こんにちは、アドバイスをお願いします。
for(int no1=0; no1<ObjectsTotal(OBJ_TEXT); no1++)
  {
   if(ObjectName(0)=="Profit1"+iBarShift(NULL,1440,0))
     {
      double name;
      name = ObjectDescription(0);;
      Comment(name);
     }
  }
最後のテキストが表示されないのはなぜですか?どうしたんですか?どうすれば直るのか、教えてください
 
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);
  }
//----
//+------------------------------------------------------------------+

は動作しない場合があります。

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

の場合、動作しないことがあります。

言われた通り、最後の行にゼロを含まないコードをファイルに入れると、やはりエラーになります。しかし、上記のコードをチャートに入れると、最大化データはなく、すべてゼロ、0.00で表示されます。mt5には何か足りないものがあるようですが、どなたか詳しく教えていただけると幸いです。


 
こんにちは、アドバイスをお願いします
for(int no1=0; no1<=ObjectsTotal(OBJ_TEXT); no1++)
  {
   if(ObjectName(0)=="Profit1"+iBarShift(NULL,1440,0))
     {
      double name;
      name = ObjectDescription(0);;
      Comment(name);
     }
  }
最後のテキストが表示されないのはなぜですか?どうしたんですか?どうすれば直るのか、教えてください
理由: