Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 637

 
RostZ :

Herkese merhaba!

Hatayı gidermeye yardımcı olun: "Yeterli haklar yok" veya "Yeterli haklar yok" kodu #7

Aşağıdakiler olur: EURCHFХ M1 çiftindeki danışman pozisyon açamaz, bu hata verilir (günlükte bulunur) ve şu anda diğer çiftlerde ve EURCHF M5'te sorunsuz açılır. Elle açılıyor sıkıntısız. Başka bir komisyoncu için çalışıyor. Sorun ne olabilir?

Yardımınız için şimdiden teşekkür ederim.

Danışmanınızın içinde ne yazdığını bilmeden sorunun ne olduğunu söylemek mümkün değil. Danışman EUR CHFХ M 5 ve EUR CHF M 1 üzerinde nasıl davranır?
 
Top2n :


Bu işlev, sayının kendisini değil, terimdeki konum numarasını döndürür.

Diyelim ki pozisyon numarasını aldım, bu pozisyonu nasıl geri çekebilirim?

Ayrıca size bir yardım bağlantısı verdim, orada, 6 satır sonra, StringSubstr üzerinde , belirtilen bir konumdan başlayarak bir metin dizesinden bir alt dize çıkaran bir yardım var.
 
AlexeyVik :
Ayrıca size bir yardım bağlantısı verdim, orada, 6 satır sonra, StringSubstr üzerinde , belirtilen bir konumdan başlayarak bir metin dizesinden bir alt dize çıkaran bir yardım var.


sc= ObjectsTotal ( OBJ_LABEL );
for ( int i= 0 ;i<sc;i++) 
 {
 Neme= ObjectName (i);
 
 if (Neme= "lTrend_Power" ) //Если имя объекта OBJ_LABEL то самое,
{
  NemeText= "Trend Power: " ; // часть описания из строки текст
   for ( int il= 0 ;il<= 99 ;il++) // перебираем 1-99
  {
NemeTextPol = StringFind (NemeText+il+ "%" ,il, 0 ); //Полное имя строки текст "Trend Power: 99%". (99% меняется от 1 до 99)

Kon = StringSubstr (NemeText+il+ "%" , 13 , 3 );
  }
}
Neyi yanlış yapıyorum? Görev, bir dizeden 99 (sayı) çıkarmaktır.
 
Top2n :

Neyi yanlış yapıyorum? Görev, bir dizeden 99 (sayı) çıkarmaktır.

sc= ObjectsTotal ( OBJ_LABEL );

Bu, etiket nesnelerinin sayısıdır, ancak mevcut başka bir nesne varsa, nesne döngüsünde bir hata olacaktır.

Ayrıca, benzer ada sahip başka etiketleriniz yoksa, tüm nesneleri gözden geçirmenize gerek yoktur. Sadece OBJPROP_TEXT'i çıkarın ve onunla çalışın.


string NameText = ObjectGetString(0, "lTrend_Power", OBJPROP_TEXT);

string Kon = StringSubstr( NameText, 13, 2);

ve sonra dize biçimindeki sayıyı içeren dizeyi istediğiniz türe çevirirsiniz.

Genel olarak, bu örneğe bakılırsa, tüm programlama sürecini anlamaktan hala çok uzaktasınız.

NemeText= "Trend Power: " ; // часть описания из строки текст

Bu , nesnenin açıklamasının bir parçası değil, NemeText değişkeni "Trend Power:" olarak ayarlandı.

TÜM yardımı okumak için çok tembel olmayın, o zaman çözümü bir yerde bulduğunuzu hatırlayacaksınız ... ve ihtiyacınız olan her şeyi belgelerde bulmanız daha kolay olacaktır.

 
paladin80 :
Danışmanınızın içinde ne yazdığını bilmeden sorunun ne olduğunu söylemek mümkün değil. Danışman EUR CHFХ M 5 ve EUR CHF M 1 üzerinde nasıl davranır?

EURCHFX M1 dışında her yerde çalışır. "Yetersiz İzin" in ne olduğunu anlamıyorum ve bu mesajın hangi durumlarda göründüğüne dair daha ayrıntılı bir açıklama bulamadım; neye tepki olarak... Metaalıntıların bunun ne anlama geldiğini bilmesi gerekir.
 
AlexeyVik :

Bu, etiket nesnelerinin sayısıdır, ancak mevcut başka bir nesne varsa, nesne döngüsünde bir hata olacaktır.

Ayrıca, benzer ada sahip başka etiketleriniz yoksa, tüm nesneleri sıralamanıza gerek yoktur. Sadece OBJPROP_TEXT'i çıkarın ve onunla çalışın.


string NameText = ObjectGetString(0, "lTrend_Power", OBJPROP_TEXT);

string Kon = StringSubstr( NameText, 13, 2);

ve sonra dize biçimindeki sayıyı içeren dizeyi istediğiniz türe çevirirsiniz.

Genel olarak, bu örneğe bakılırsa, tüm programlama sürecini anlamaktan hala çok uzaktasınız.

Bu, nesne açıklamasının bir parçası değil, NemeText değişkeninin "Trend Gücü: " olarak ayarlanmış olması.

TÜM yardımı okumak için çok tembel olmayın, o zaman çözümü bir yerde bulduğunuzu hatırlayacaksınız ... ve ihtiyacınız olan her şeyi belgelerde bulmanız daha kolay olacaktır.


Teşekkür ederim, evet haklısın, hafta sonu okuyacağım, sadece Arkaim'e git)))
 

Söyleyin bana, bir gösterge arabelleğini farklı renklerle renklendirmek için INDICATOR_COLOR_INDEX tanımlayıcısını deneyen var mı? Yoksa henüz MT4'te çalışmıyor mu?

Örnek >>>

MT5'te bu kod şu şekilde çalışır:

 //+------------------------------------------------------------------+
//|                                                        #Test.mq5 |
//|                        Copyright 2010, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2010, MetaQuotes Software Corp."
#property link       "https://www.mql5.com"
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_plots   1
#property indicator_color1  clrRoyalBlue,clrRed
//--- Индикаторные буферы
double indicator_buffer[];
double color_indicator_buffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- Установка буферов
   SetIndexBuffer ( 0 ,indicator_buffer, INDICATOR_DATA );
   SetIndexBuffer ( 1 ,color_indicator_buffer, INDICATOR_COLOR_INDEX );
//--- Свойства
   PlotIndexSetInteger ( 0 , PLOT_LINE_WIDTH , 5 );
   PlotIndexSetInteger ( 0 , PLOT_ARROW , 159 );
   PlotIndexSetInteger ( 0 , PLOT_DRAW_TYPE , DRAW_COLOR_ARROW );
   PlotIndexSetDouble ( 0 , PLOT_EMPTY_VALUE , 0 );
//--- Инициализация буфера
   ArrayInitialize (indicator_buffer, 0 );
//---
   return (INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| 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[])
  {
   int limit= 0 ;
//--- Если первый вызов
   if (prev_calculated== 0 )
     {
      limit= 0 ;
       ArrayInitialize (indicator_buffer, 0 );
     }
   else
      limit=prev_calculated- 1 ;
//--- Основной цикл
   for ( int i=limit; i<rates_total && ! IsStopped (); i++)
     {
      indicator_buffer[i]= rand ()% 3 ;
      color_indicator_buffer[i]=(indicator_buffer[i]== 1 ) ? 0 : 1 ;
     }
//---
   return (rates_total);
  }
//+------------------------------------------------------------------+

//---

Ve MT4'te benzer, ancak MQL4 için küçük ayarlamalarla aşağıdaki sonucu gösterir:

 //+------------------------------------------------------------------+
//|                                                        #Test.mq4 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link       "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1  clrRoyalBlue,clrRed
//--- Индикаторные буферы
double indicator_buffer[];
double color_indicator_buffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- Установка буферов
   SetIndexBuffer ( 0 ,indicator_buffer, INDICATOR_DATA );
   SetIndexBuffer ( 1 ,color_indicator_buffer, INDICATOR_COLOR_INDEX );
//--- Свойства
   SetIndexStyle( 0 , DRAW_ARROW ,EMPTY, 5 );
   SetIndexArrow( 0 , 159 );
   SetIndexEmptyValue( 0 , 0 );
//--- Инициализация буфера
   ArrayInitialize (indicator_buffer, 0 );
//---
   return (INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| 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[])
  {
   int limit= 0 ;
//--- Если первый вызов
   if (prev_calculated== 0 )
     {
      limit= 0 ;
       ArrayInitialize (indicator_buffer, 0 );
     }
   else
      limit=prev_calculated- 1 ;
//--- Основной цикл
   for ( int i=limit; i<rates_total && ! IsStopped (); i++)
     {
      indicator_buffer[i]= rand ()% 3 ;
      color_indicator_buffer[i]=(indicator_buffer[i]== 1 ) ? 0 : 1 ;
     }
//---
   return (rates_total);
  }
//+------------------------------------------------------------------+
 

Evet, birçok sorunun aptalca olduğunu anlıyorum. Dürüstçe deniyorum, bütün günü geçirdim ama sonuç alamadım.

Diziye, mevcut çubuktaki birkaç trend çizgisinin fiyatlarının değerini yazıyorum.

Nesne yoksa diziden bir değer nasıl kaldırılır?

 
Top2n :

Evet, birçok sorunun aptalca olduğunu anlıyorum. Dürüstçe deniyorum, bütün günü geçirdim ama sonuç alamadım.

Diziye, mevcut çubuktaki birkaç trend çizgisinin fiyatlarının değerini yazıyorum.

Nesne yoksa diziden bir değer nasıl kaldırılır?

Her tıklamada trend fiyatlarının değerlerini gözden geçirirseniz, diziyi başlatırsanız ve istenen trend çizgisinin bir sonraki istenen fiyatını bulduğunuzda boyutunu artırırsanız, önceden çalışılmış değerleri kaldırmanıza gerek kalmayacaktır. diziden kaldırılan trend çizgileri. Dizi dinamik olacak ve her seferinde her tikte yalnızca mevcut nesnelerin değerlerini içerecektir.
 
Top2n :

Nesne yoksa diziden bir değer nasıl kaldırılır?


Sıfır fiyat belirtmek.
Neden: