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

 

EA'dan daha yüksek zaman diliminden gösterge verilerini almak mümkün değildir.

 2019.07 . 22 07 : 23 : 02.556 Core 1    2017.10 . 05 07 : 00 : 00    Не удалось скопировать значения индикатора. Error = 4806 ,  copied =- 1

Ve optimizasyon ile çalışır. Bu hatayı görselleştiricide çalıştırmaya başlarsınız.

Göstergenin nesi var?

Dosyalar:
ind.mq5  11 kb
 
EgorKim :

EA'dan daha yüksek zaman diliminden gösterge verilerini almak mümkün değildir.

Ve optimizasyon ile çalışır. Bu hatayı görselleştiricide çalıştırmaya başlarsınız.

Göstergenin nesi var?

Danışman kodu nerede?

Muhtemel sebep, göstergenin bulunduğu yoldadır (iCustom aracılığıyla EA'da göstergeye giden belirtilen yol). Ayrıca mq5 ve ex5 gösterge dosyaları aynı klasörde olmalıdır.

 
EgorKim :

EA'dan daha yüksek zaman diliminden gösterge verilerini almak mümkün değildir.

Ve optimizasyon ile çalışır. Görselleştiricide çalışmaya başlarsınız, bu hata düşer.

Göstergenin nesi var?

Bu nedenle, göstergeniz [tarih klasörü]\MQL5\Indicators\ind.mq5 klasöründe bulunur ve derlenen dosya da orada bulunur.

"0" - "Means" gösterge arabelleğine erişen bir Uzman Danışman örneği:

 //+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                              Copyright © 2019, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2019, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.00"
//--- input parameters
input int       Input1= 9 ;
//---
int     handle_iCustom;               // variable for storing the handle of the iCustom indicator /*
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- create handle of the indicator iCustom
   handle_iCustom= iCustom ( Symbol (), Period (), "ind" );
//--- if the handle is not created 
   if (handle_iCustom== INVALID_HANDLE )
     {
       //--- tell about the failure and output the error code 
       PrintFormat ( "Failed to create handle of the iCustom indicator for the symbol %s/%s, error code %d" ,
                   Symbol (),
                   EnumToString ( Period ()),
                   GetLastError ());
       //--- the indicator is stopped early 
       return ( INIT_FAILED );
     }
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   double means[];
   ArraySetAsSeries (means, true );
   int start_pos= 0 ,count= 3 ;
   if (!iGetArray(handle_iCustom, 0 ,start_pos,count,means))
       return ;

   string text= "Means:" + "\n" ;
   for ( int i=count- 1 ;i>= 0 ;i--)
     {
      text=text+ "#" + IntegerToString (i)+ ": " + DoubleToString (means[i], Digits ())+ "\n" ;
     }
   Comment (text);
  }
//+------------------------------------------------------------------+
//| Get value of buffers                                             |
//+------------------------------------------------------------------+
double iGetArray( const int handle, const int buffer, const int start_pos, const int count, double &arr_buffer[])
  {
   bool result= true ;
   if (! ArrayIsDynamic (arr_buffer))
     {
       Print ( "This a no dynamic array!" );
       return ( false );
     }
   ArrayFree (arr_buffer);
//--- reset error code 
   ResetLastError ();
//--- fill a part of the iBands array with values from the indicator buffer
   int copied= CopyBuffer (handle,buffer,start_pos,count,arr_buffer);
   if (copied!=count)
     {
       //--- if the copying fails, tell the error code 
       PrintFormat ( "Failed to copy data from the indicator, error code %d" , GetLastError ());
       //--- quit with zero result - it means that the indicator is considered as not calculated 
       return ( false );
     }
   return (result);
  }
//+------------------------------------------------------------------+

Ve test cihazındaki sonuç:


ve çevrimiçi:


Dosyalar:
Test.mq5  7 kb
 
Vladimir Karputov :

Bu nedenle, göstergeniz [tarih klasörü]\MQL5\Indicators\ind.mq5 klasöründe bulunur ve derlenen dosya da orada bulunur.

"0" - "Means" gösterge arabelleğine erişen bir Uzman Danışman örneği:

Ve test cihazındaki sonuç:


ve çevrimiçi:


Şu anki zaman diliminde herhangi bir hatam yok.

Sorun, daha yüksek bir zaman diliminden veri alırsanız ortaya çıkar.

Açıkçası sorun göstergede, danışmanımda değil)

Ve optimizasyon modunda hata yok. Tek bir geçiş ve görselleştirme eklersiniz - bir hata vardır. Durka...

İşte aynı operadan bir tema, anladığım kadarıyla

https://www.mql5.com/ru/forum/190003

Не получается брать данные индикатора со старшего ТФ
Не получается брать данные индикатора со старшего ТФ
  • 2017.04.14
  • www.mql5.com
Уже четвёртый день в индикаторе пытаюсь получить данные стандартного индикатора АО со старшего таймфрейма, и всё никак...
 
EgorKim :

Şu anki zaman diliminde herhangi bir hatam yok.

Sorun, daha yüksek bir zaman diliminden veri alırsanız ortaya çıkar.

Açıkçası sorun göstergede, danışmanımda değil)

Ve optimizasyon modunda hata yok. Tek bir geçiş ve görselleştirme eklersiniz - bir hata vardır. Durka...

İşte aynı operadan bir tema, anladığım kadarıyla

https://www.mql5.com/ru/forum/190003

Daha yüksek zaman dilimine erişiminiz yok - verileri güncel tutulmuyor:
Проблема перевода с МТ4 на МТ5. Или, точнее, невозможность без'ошибочного исполнения некоторых алгоритмов в МТ5.
Проблема перевода с МТ4 на МТ5. Или, точнее, невозможность без'ошибочного исполнения некоторых алгоритмов в МТ5.
  • 2019.07.21
  • www.mql5.com
Сначала цитата из справочника языка MQL5. Рубрика Организация доступа к данным...
 

Bu formda, varsayılan parametrelerle H1 grafiğindeki göstergeyi atın.

Bir hata var

Artyom Trishkin

Bu yüzden göstergede neyin düzeltileceği konusunda yardım istiyorum

Dosyalar:
ind2.mq5  22 kb
 
EgorKim :

Şu anki zaman diliminde herhangi bir hatam yok.

Sorun, daha yüksek bir zaman diliminden veri alırsanız ortaya çıkar.

Açıkçası sorun göstergede, danışmanımda değil)

Ve optimizasyon modunda hata yok. Tek bir geçiş ve görselleştirme eklersiniz - bir hata vardır. Durka...

İşte aynı operadan bir tema, anladığım kadarıyla

https://www.mql5.com/ru/forum/190003

İşte DANIŞMANIN modifikasyonu - parametrelerde , göstergenin zaman çerçevesini ayarlayabilirsiniz . Hem test cihazında hem de çevrimiçi olarak çalışır.

 //--- create handle of the indicator iCustom
   handle_iCustom= iCustom ( Symbol (), Inp_period , "ind" ,
                          bars_IN,
                          SP,
                          N_Shift1,
                          Forecast,
                          kstd,
                          Oscilator,
                          N_Buff,
                          Ka,
                          La,
                          Za,
                          Oe,
                          Me,
                          DIGf);
Dosyalar:
Test.mq5  10 kb
 
Vladimir Karputov :

İşte DANIŞMANIN modifikasyonu - parametrelerde , göstergenin zaman çerçevesini ayarlayabilirsiniz . Hem test cihazında hem de çevrimiçi olarak çalışır.

O halde danışmanın optimizasyon sırasında işlem yaptığını nasıl açıklayabilirsiniz? Ve görselleştirirken, tek bir işlem yok mu?

 
EgorKim :

O halde danışmanın optimizasyon sırasında işlem yaptığını nasıl açıklayabilirsiniz? Ve görselleştirirken, tek bir işlem yok mu?

Bir pozisyon açma koşulu nedir (gösterge tampon numarası ve çubuk numarası)?

 
Vladimir Karputov :

Bir pozisyon açma koşulu nedir (gösterge tampon numarası ve çubuk numarası)?

Bunun gibi bir şey.

Ayrıca, bazı optimize edici geçişleri görselleştiricide çakışmaktadır.

Ve bazı paslar - anlaşma yok

 double price1= 0.0 ;
price1=iCustomGet(handle_ind, 1 , 0 )
double price2= 0.0 ;
price2=iCustomGet(handle_ind, 2 , 0 )
double open= 0.0 ;   
double open          = iOpen ( Symbol (), Period (), 0 );

   if (price1!= 0.0 && price2!= 0.0 && open!= 0.0 )
     {
       if (open<price1)
        {
         buy
        }
       if (open>price2)
        {
         sell
        }
      }
//+------------------------------------------------------------------+
//| Get value of buffers for the iCustom                             |
//|  the buffer numbers are the following:                           |
//+------------------------------------------------------------------+
double iCustomGet( int handle, const int buffer, const int index)
  {
   double Custom[ 1 ];
//--- reset error code 
   ResetLastError ();
//--- fill a part of the iCustom array with values from the indicator buffer that has 0 index 
   if ( CopyBuffer (handle,buffer,index, 1 ,Custom)< 0 )
     {
       //--- if the copying fails, tell the error code 
       PrintFormat ( "Failed to copy data from the iCustom indicator, error code %d" , GetLastError ());
       //--- quit with zero result - it means that the indicator is considered as not calculated 
       return ( 0.0 );
     }
   return (Custom[ 0 ]);
  }
//+------------------------------------------------------------------+

Bence sorun göstergede.

Artem'in haklı olarak belirttiği gibi, sorun mevcut verilerde.

Sadece nasıl yapılacağını bilmek istemiyorum