MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 978

 
pvba :

Çok teşekkürler!

lütfen

 

Herkese iyi akşamlar. Peki, biri bana yardım edebilir mi?

Önceki bir gönderide, sorunu tanımlamıştım.

 
Iurii Tokman :

+

teşekkürler
 
valeriikopp :
teşekkürler

lütfen

 
Göstergeleri kendim nasıl yazacağımı bilmiyorum ve vizyonla birlikte 60 yaşın altındaki zaman artık öğrenmeme izin vermeyecek, ancak tüm mevduat üzerindeki yükü belirlemek veya ne kadar izin verildiğini belirtmek için bir göstergeye ihtiyacım var. MT4 örneğindeki gibi lot açmak için orada küçük bir kod var, belki birisi onu MT5'e yeniden yazmama yardımcı olur veya bu yapılamaz. MT4'te kod şudur:
#özellik göstergesi_chart_window
dış renk Renk = Kırmızı;
harici int Boyut = 14;
extern string Yazı Tipi = "Verdana";
int() {
dönüş(0);
}

int tanım() {
ObjectDelete("lab");
dönüş(0);
}

int start() {
int l_ind_counted_0 = IndicatorCounted();
çift l_free_magrin_4 = 0;
çift l_marginrequired_12 = 0;
çift 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); // sola veya sağa hareket et
ObjectSet("lab", OBJPROP_YDISTANCE, 27); // aşağı veya yukarı hareket ettir
ObjectSetText("lab", DoubleToStr(ld_20, 2), Boyut, Yazı Tipi, Renk);
dönüş(0);

}


 
Merhaba, tavsiyeye ihtiyacım var.
 for ( int no1= 0 ; no1< ObjectsTotal ( OBJ_TEXT ); no1++)
  {
   if ( ObjectName ( 0 )== "Profit1" + iBarShift ( NULL , 1440 , 0 ))
     {
       double name;
      name = ObjectDescription( 0 );;
       Comment (name);
     }
  }
Son metnim neden gösterilmiyor? Burada sorun ne? Lütfen bana nasıl düzelteceğimi söyle!
 
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 );
  }
//----
//+------------------------------------------------------------------+

eğer çalışmayabilir

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

eğer çalışmayabilir

Son satır sıfır olmadan kodu dosyaya girerek dedikleri gibi yaptım yani hata veriyor ama yukarda anlatılan koda göre indikatörü grafiğe çizerken maksimum veri yok ama her şeyi ve her yeri sıfırlarla gösterir - 0.00, görünüşe göre MT5 için başka bir şey eksik, bunun için teşekkürler, belki başka biri yardımcı olabilir.


 
Merhaba, tavsiyeye ihtiyacım var.
 for ( int no1= 0 ; no1<= ObjectsTotal ( OBJ_TEXT ); no1++)
  {
   if ( ObjectName ( 0 )== "Profit1" + iBarShift ( NULL , 1440 , 0 ))
     {
       double name;
      name = ObjectDescription( 0 );;
       Comment (name);
     }
  }
Son metnim neden gösterilmiyor? Burada sorun ne? Lütfen bana nasıl düzelteceğimi söyle!
Neden: