Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1484

 
Novichokkk #:

14 ikilidir. 1110.

Bir bit sola 0111'e kaydırın,

farklı "sollarımız" var :-)

1110<<1 := 11100

 
Maxim Kuznetsov #:

sen ve ben farklı "sollara" sahibiz :-)

1110<<1 := 11100

İnternette okudum. Bu anladığım kadarıyla 32 bit için, 16 için de aynı, hiçbir şey bir bit atlamadı. Ama yeni öğreniyorum, muhtemelen haklısın.

Konu bu değil, sadece bir yan not. Terminaldeki böyle bir yapı beni şaşırttı. Bu gösterge kod tabanından bile değil, Examples klasöründeki terminalden.

Dosyalar:
8888.jpg  49 kb
 

Eski bir tasarımı nasıl değiştirirsiniz?

ObjectSetText("Maximum",DoubleToString(ChartGetDouble(0,CHART_PRICE_MAX,0),5),8,"Arial",Red);

Burada her şey açık: filanca nesne, filanca açıklama, filanca yazı boyutu, yazı tipi, renk.

Ama bunlar eskisinden.

Neyin değiştirildiğini okudum

ObjectSetText

için

ObjectGetInteger,ObjectSetString,ObjectSetIntegerStringLen.

Ancak tüm bu fonksiyonlarda ObjectSetText'teki gibi parametreler yoktur.

Документация по MQL5: Графические объекты / ObjectGetInteger
Документация по MQL5: Графические объекты / ObjectGetInteger
  • www.mql5.com
ObjectGetInteger - Графические объекты - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Bu kodu µl4'te kullanmıştım

int OnInit()
  {
   SetIndexBuffer(0,H);
   SetIndexStyle(0,2);
   SetIndexBuffer(1,L);
   SetIndexStyle(1,2);

   if(ObjectCreate("Maximum",OBJ_LABEL,0,0,0))
     {
      ObjectSet("Maximum",OBJPROP_XDISTANCE,1);
      ObjectSet("Maximum",OBJPROP_YDISTANCE,1);
      ObjectSet("Maximum",OBJPROP_CORNER,1);
     }
   ObjectSetText("Maximum",DoubleToStr(WindowPriceMax(),4),8,"Arial",Red);

   if(ObjectCreate("Minimum",OBJ_LABEL,0,0,0))
     {
      ObjectSet("Minimum",OBJPROP_XDISTANCE,1);
      ObjectSet("Minimum",OBJPROP_YDISTANCE,1);
      ObjectSet("Minimum",OBJPROP_CORNER,3);
     }
   ObjectSetText("Minimum",DoubleToStr(WindowPriceMin(),4),8,"Arial",Blue);

   return(0);
  }



Bunu µl5 olarak değiştirdim, sadece ObjectSetText'i nasıl değiştireceğimi anlamadım.


int OnInit()
  {
   SetIndexBuffer(0, H, INDICATOR_DATA);
   PlotIndexSetInteger(1,5,0);
   SetIndexBuffer(1, L, INDICATOR_DATA);
   PlotIndexSetInteger(2,5,0);

   if(ObjectCreate(0,"Maximum",OBJ_LABEL,0,0,0))
     {
      ObjectSetInteger(0,"Maximum",OBJPROP_XDISTANCE,1);
      ObjectSetInteger(0,"Maximum",OBJPROP_YDISTANCE,1);
      ObjectSetInteger(0,"Maximum",OBJPROP_CORNER,1);
     }
   ObjectSetText("Maximum",DoubleToString(ChartGetDouble(0,CHART_PRICE_MAX,0),5),8,"Arial",Red);

   if(ObjectCreate(0,"Minimum",OBJ_LABEL,0,0,0))
     {
      ObjectSetInteger(0,"Minimum",OBJPROP_XDISTANCE,1);
      ObjectSetInteger(0,"Minimum",OBJPROP_YDISTANCE,1);
      ObjectSetInteger(0,"Minimum",OBJPROP_CORNER,3);
     }
   ObjectSetText("Minimum",DoubleToString(ChartGetDouble(0,CHART_PRICE_MIN,0),5),8,"Arial",Blue);

   return(0);
  }
 
Novichokkk #:

Eski bir tasarımı nasıl değiştirirsiniz?

Burada her şey açık; filanca nesneyi filanca puntoda, filanca yazı tipinde, filanca renkte tarif ediyoruz.

Ama bu eskisinden.

Neyin değiştirildiğini okudum

için

ObjectGetInteger,ObjectSetString, ObjectSetIntegerStringLen

Ancak tüm bu fonksiyonlarda ObjectSetText'teki gibi parametreler yoktur.

Yazı tipi, boyutu, rengi, arka plan rengi vb. https://www. mql5.com/ru/docs/constants/objectconstants/enum_object_property adresinin ayrı çağrıları ile ayarlanır.

 
JRandomTrader #:

Yazı tipi, boyutu, rengi, arka plan rengi vb. https://www. mql5.com/ru/docs/constants/objectconstants/enum_object_property adresine yapılan ayrı çağrılarla ayarlanır.

Bunun yerine

ObjectSetText("Maximum",DoubleToStr(WindowPriceMax(),4),8,"Arial",Red);

Böyle mi yapmalıyım?

    ObjectSetString(0,"Maximum",OBJPROP_TEXT,DoubleToString(ChartGetDouble(0,CHART_PRICE_MAX,0),5)); // описание-что вставляем в объект "Maximum"
    ObjectSetString(0,"Maximum",OBJPROP_FONTSIZE,8);    // размер шрифта описания                                      
    ObjectSetString(0,"Maximum",OBJPROP_FONT,"Arial");  // какой шрифт
    ObjectSetString(0,"Maximum",OBJPROP_COLOR,Red);     // цвет шрифта
 
Novichokkk #:

Yani yerine

Bunu yapmak zorunda mısın?

OBJPROP_FONTSIZE ve OBJPROP_COLOR - ObjectSetInteger() aracılığıyla

DoubleToString() yerine StringFormat() kullanmak bazen daha uygundur, formatı daha esnek bir şekilde kontrol edebilirsiniz.

 

Bu betiğin çıktısı neden 196

//+------------------------------------------------------------------+
//|                                                         0000.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()

  {
//---
   Alert((int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR));
   
  }
//+------------------------------------------------------------------+

ve bu 104.

//+------------------------------------------------------------------+
//|                                                         0000.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()

  {
//---
   Alert(CHART_FIRST_VISIBLE_BAR);
   
  }
//+------------------------------------------------------------------+

Sonuç aynı olmalıdır.

 
Novichokkk #:

Böyle bir komut dosyası neden 196

Ve bu da 104.

Sonuç aynı olmalıdır.

Neden aynı olmalıdır?

İlk durum, geçerli grafiğin CHART_FIRST_VISIBLE_BAR özellik numarasının değerini almaktır.

İkinci durum ise bu özelliğin kendisinin numarasını almaktır.

Kabaca, bir dizi hücresinin değeri ile bu hücrenin indeksi arasındaki fark aynıdır.

 


#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 OrangeRed

extern int Ratio=2;
int limit;
int limitBars=0;

double H[];
double L[];
//+------------------------------------------------------------------+ 
int init()
{
   SetIndexBuffer(0,H); SetIndexStyle(0,2);
   SetIndexBuffer(1,L); SetIndexStyle(1,2);

   if(ObjectCreate("Maximum",OBJ_LABEL,0,0,0))  {
      ObjectSet("Maximum",OBJPROP_XDISTANCE,1);
      ObjectSet("Maximum",OBJPROP_YDISTANCE,1);
      ObjectSet("Maximum",OBJPROP_CORNER,1);  }
   ObjectSetText("Maximum",DoubleToStr(WindowPriceMax(),4),8,"Arial",Red);

   if(ObjectCreate("Minimum",OBJ_LABEL,0,0,0))  {
      ObjectSet("Minimum",OBJPROP_XDISTANCE,1);
      ObjectSet("Minimum",OBJPROP_YDISTANCE,1);
      ObjectSet("Minimum",OBJPROP_CORNER,3);  }
   ObjectSetText("Minimum",DoubleToStr(WindowPriceMin(),4),8,"Arial",Blue);

   return(0);
}
//+------------------------------------------------------------------+ 
int start()
{
   double max[256];
   double min[256];

   if(limitBars<Bars) limit=WindowFirstVisibleBar();

   for(int i=0; i<limit; i++)
   {
      for(int shift=0; shift<Ratio; shift++) {
         max[shift]=High[i*Ratio+shift];
         min[shift]=Low[i*Ratio+shift];   }

      H[i]=max[ArrayMaximum(max,Ratio,0)];
      L[i]=min[ArrayMinimum(min,Ratio,0)];
   }

   if(limit>1)
   {
      max[0]=H[ArrayMaximum(H,limit,0)];
      min[0]=L[ArrayMinimum(L,limit,0)];
      ObjectSetText("Maximum",DoubleToStr(max[0],4));
      ObjectSetText("Minimum",DoubleToStr(min[0],4));
   }

   limitBars=Bars;
   limit=1;
   return(0);
}

Eski MQL4'te böyle bir gösterge vardı.