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

 
Nikita Bushuev :

Vladimir, kodu MQL5 sihirbazını kullanarak oluşturdum. EA'nız denedi, GBPUSD para biriminde çalıştırıldığında da benim için çalışmıyor.

Günlük şunları söylüyor:

Dergide yazılanları okuyun. SİZİN hatanızın bir açıklaması var. (eğer bir test cihazı ise, o zaman bir günlük vardır; bir terminal ise, İKİ günlük vardır).


Ayrıca şunu da belirtin: hangi sembolde ve hangi zaman diliminde başlattığınızı. Bugün telepatlar tatilde ve düşünceleri okuyacak kimse yok.

 
Vladimir Karputov :

Dergide yazılanları okuyun. SİZİN hatanızın bir açıklaması var. (eğer bir test cihazı ise, o zaman bir günlük vardır; bir terminal ise, İKİ günlük vardır).

Gösterge tutamacı oluşturulurken test cihazı bu yerde çöküyor, yani. o = INVALID_HANDLE. "EURUSD" değişkeninde de periyot ayarlanmıştır. Bu nasıl olabilir ve 4804 hatası ne anlama geliyor?

ERR_INDICATOR_CANNOT_APPLY

4804

Gösterge başka bir göstergeye uygulanamaz

m_handle= iAC (symbol,period);
 bool CiAC::Create( const string symbol, const ENUM_TIMEFRAMES period)
  {
//--- check history
   if (!SetSymbolPeriod(symbol,period))
       return ( false );
//--- create
   m_handle= iAC (symbol,period);
//--- check result
   if (m_handle== INVALID_HANDLE )
       return ( false );
//--- idicator successfully created
   if (!Initialize(symbol,period))
     {
       //--- initialization failed
       IndicatorRelease (m_handle);
      m_handle= INVALID_HANDLE ;
       return ( false );
     }
//--- ok
   return ( true );
  }
Документация по MQL5: Предопределенные переменные / _Symbol
Документация по MQL5: Предопределенные переменные / _Symbol
  • www.mql5.com
Предопределенные переменные / _Symbol - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Nikita Bushuev :

Gösterge tutamacı oluşturulurken test cihazı bu yerde çöküyor, yani. o = INVALID_HANDLE. "EURUSD" değişken sembolünde periyot da ayarlanır. Bu nasıl olabilir ve 4804 hatası ne anlama geliyor?

ERR_INDICATOR_CANNOT_APPLY

4804

Gösterge başka bir göstergeye uygulanamaz

Günlüğü okuyun - SİZİN hatanızın bir açıklaması var. Ne kadar hızlı okursanız, o kadar hızlı anlarsınız.

Ayrıca şunu da belirtin: hangi sembolde ve hangi zaman diliminde başlattığınızı. Bugün telepatlar tatilde ve düşünceleri okuyacak kimse yok.
 
Vladimir Karputov :

Günlüğü okuyun - SİZİN hatanızın bir açıklaması var. Ne kadar erken okursan o kadar çabuk anlarsın.

Ayrıca şunu da belirtin: hangi sembolde ve hangi zaman diliminde başlattığınızı. Bugün telepatlar tatilde ve düşünceleri okuyacak kimse yok.

Sorun, platformu yeniden yükleyerek çözüldü.

 
Vladimir Pastushak :

Sevgili geliştiriciler, piyasadaki ürünler doğrulanamıyor

Ekli kod

CopyRates bir donmaya neden oluyor, sonuç olarak piyasa yazıyor

EURUSD,H1 üzerinde test (netleştirme)

test cihazı çok uzun sürüyor

strateji test kullanıcısı raporu bulunamadı

Ve doğru bir şekilde, doğrulayıcı kesintiyi verdi: HER TICK'ta terminalin TÜM SEMBOLLERİ İÇİN 1440 eleman talep etmek istediğinizde muhtemelen gerçekten düşünmediniz, değil mi? Aynı zamanda, bunu düşünmediler bile: sunucu kolayca beş binden fazla simgeye sahip olabilir, bir simge 1440 çubuk OLAMAZ ...


Genel olarak, yeni başlayanlar için bir konu. Kesinlikle.

 
Merhaba! Grafiklerin neden yüklenmediğini söyler misiniz? MT5 ticaret platformunda 08/14 kayıtlı 7 çizelgeden 4'ü hala bir güncelleme beklentisiyle asılı duruyor. Önceden kayıtlı bir demo hesabı olmasına rağmen, tüm grafikler zamanında güncellenir.
 
Vladimir Karputov :

Misal

Sonuç:


teşekkür ederim Vladimir Örneğinizin mantığını kesinlikle anlıyorum. İnanıyor musun?

 
Сергей Таболин :

teşekkür ederim Vladimir Örneğinizin mantığını kesinlikle anlıyorum. İnanıyor musun?

Ben Vladimir değilim ama yine de soracağım: Ne işe yaramaz? Her şey uzun zamandır akıp gitti ve örneğinize bakma arzusu yok. Lütfen tekrar çoğaltın.

 
Artyom Trishkin :

Ben Vladimir değilim ama yine de soracağım: Ne işe yaramaz? Her şey uzun zamandır akıp gitti ve örneğinize bakma arzusu yok. Lütfen tekrar çoğaltın.

İşte benim örneğim:

 //+------------------------------------------------------------------+
//|                                                        cTest.mq5 |
//|                                     Copyright 2020, Tabolin S.N. |
//|                           https://www.mql5.com/ru/users/vip.avos |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, Tabolin S.N."
#property link        "https://www.mql5.com/ru/users/vip.avos"
#property version    "1.00"
//#property indicator_separate_window
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_plots    1
//--- plot bars
#property indicator_label1    "bars"
#property indicator_type1    DRAW_CANDLES
#property indicator_color1    clrGold
#property indicator_style1    STYLE_SOLID
#property indicator_width1    1
//--- indicator buffers
double    barsBuffer1[];
double    barsBuffer2[];
double    barsBuffer3[];
double    barsBuffer4[];
//+------------------------------------------------------------------+
double    newCandles_Open[ 5 ]   = { 106.785 , 106.724 , 106.760 , 106.767 , 106.769 };
double    newCandles_High[ 5 ]   = { 106.792 , 106.765 , 106.780 , 106.781 , 106.769 };
double    newCandles_Low[ 5 ]    = { 106.716 , 106.719 , 106.746 , 106.758 , 106.715 };
double    newCandles_Close[ 5 ]  = { 106.724 , 106.760 , 106.766 , 106.769 , 106.725 };

int       tick_count           = 0 ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
{
//--- indicator buffers mapping
   SetIndexBuffer ( 0 , barsBuffer1, INDICATOR_DATA );
   SetIndexBuffer ( 1 , barsBuffer2, INDICATOR_DATA );
   SetIndexBuffer ( 2 , barsBuffer3, INDICATOR_DATA );
   SetIndexBuffer ( 3 , barsBuffer4, INDICATOR_DATA );
   
   ArraySetAsSeries (barsBuffer1  , true );
   ArraySetAsSeries (barsBuffer2  , true );
   ArraySetAsSeries (barsBuffer3  , true );
   ArraySetAsSeries (barsBuffer4  , true );
   
   PlotIndexSetDouble ( 0 , PLOT_EMPTY_VALUE , 0 );
   PlotIndexSetDouble ( 1 , PLOT_EMPTY_VALUE , 0 );
   PlotIndexSetDouble ( 2 , PLOT_EMPTY_VALUE , 0 );
   PlotIndexSetDouble ( 3 , PLOT_EMPTY_VALUE , 0 );
   
   ArrayInitialize (barsBuffer1   , 0 );
   ArrayInitialize (barsBuffer2   , 0 );
   ArrayInitialize (barsBuffer3   , 0 );
   ArrayInitialize (barsBuffer4   , 0 );
//---
   return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int    OnCalculate (
   const int         rates_total,       // размер входных таймсерий
   const int         prev_calculated,   // количество обработанных баров на предыдущем вызове
   const datetime &  time[],             // массив Time
   const double &    open[],             // массив Open
   const double &    high[],             // массив High
   const double &    low[],             // массив Low
   const double &    close[],           // массив Close
   const long &      tick_volume[],     // массив Tick Volume
   const long &      volume[],           // массив Real Volume
   const int &       spread[]           // массив Spread
   )
{
   if (rates_total - prev_calculated > 1 )
   {
       if (prev_calculated == 0 )
      {
         Print ( "~~~~ Предварительный расчёт индикатора." );
         for ( int i = 0 ; i < 5 ; i++)
         {
            barsBuffer1[ 0 ] = newCandles_Open[i];
            barsBuffer2[ 0 ] = newCandles_High[i];
            barsBuffer3[ 0 ] = newCandles_Low[i];
            barsBuffer4[ 0 ] = newCandles_Close[i];
         }
         Print ( "~~~~ Предварительный расчёт индикатора закончен." );
      }
       else return ( 0 );
   }
   else Print ( "tick_count = " ,++tick_count);
//--- return value of prev_calculated for next call
   return (rates_total);
}
//+------------------------------------------------------------------+
barsBuffer1[0] öğesini barBuffer1[i] olarak değiştirirseniz, çizilir. Ama o zaman yeni bir mum nasıl eklenir?
 
Сергей Таболин :

İşte benim örneğim:

barsBuffer1[0] olarak barBuffer1[i] olarak değiştirirsek, çizilir. Ama o zaman yeni bir mum nasıl eklenir?

Tüm diziler aynı yönlülüğe sahip değildir.