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

 
Alexandr Sokolov :

Göstergem MQL5 kodunu yürütmüyor

Sonuç olarak, fiyat == STO_LOWHIGH ise her şey düzgün çalışır ve fiyat == STO_CLOSECLOSE ise işlev yalnızca

... döngüyü atlayarak

ancak tam olarak aynı işlev MQL4'te doğru şekilde çalışır

 
Alexandr Sokolov :

ancak tam olarak aynı işlev MQL4'te doğru şekilde çalışır

O zaman ne tür diziler olduğunu netleştirmeniz gerekir Yüksek[] Kapat[]

Bu mql4'ten geliyorsa, mql5'te mevcut değillerdir, eğer kullanıcı tanımlıysalar... Hiçbir şey kabul edemiyorum.

 
Alexandr Sokolov :

Düşük/Yüksek ve Kapat/Kapat parametreleriyle K periyodu içinde normal maxHigh ve minLow stokastiklerini almak istiyorum

Başlatma sırasında Düşük/Yüksek iyi çalışıyor, ancak Kapat/Kapat çalışmıyor

CopyBuffer() tarafından alınan diziden fmax() veya fmin() öğesini bulmak daha kolaydır

 
Alexey Viktorov :

O zaman ne tür diziler olduğunu netleştirmeniz gerekir Yüksek[] Kapat[]

Bu mql4'ten geliyorsa, mql5'te mevcut değillerdir, eğer kullanıcı tanımlıysalar... Hiçbir şey kabul edemiyorum.

İşte MQL5'teki bu tamponların içeriği

 int count = rates_total - prev_calculated, copied = 0 ; if (count < ( int )kperiod + ( int )dperiod + ( int )slowing) {count = ( int )kperiod + ( int )dperiod + ( int )slowing;};
   if (mode == m1 && price == STO_LOWHIGH ) {copied = CopyOpen ( _Symbol , PERIOD_CURRENT , 0 ,count,Open); if (copied != count) return ( 0 );};
   if (price == STO_LOWHIGH ) {copied = CopyHigh ( _Symbol , PERIOD_CURRENT , 0 ,count,High); if (copied != count) return ( 0 );};
   if (price == STO_LOWHIGH ) {copied = CopyLow ( _Symbol , PERIOD_CURRENT , 0 ,count,Low); if (copied != count) return ( 0 );};
   copied = CopyClose ( _Symbol , PERIOD_CURRENT , 0 ,count,Close); if (copied != count) return ( 0 );
 
Alexey Viktorov :

CopyBuffer() tarafından alınan diziden fmax() veya fmin() öğesini bulmak daha kolaydır

Tüm tampondan değil, K periyodundaki değerlere ihtiyacım var
Aksi takdirde, yavaşlama süresini dikkate alarak verileri kopyalamanız gerektiği gerçeğini dikkate alarak nasıl uygulanır?

 
Alexandr Sokolov :

Tüm tampondan değil, K periyodundaki değerlere ihtiyacım var
Aksi takdirde, yavaşlama süresini dikkate alarak verileri kopyalamanız gerektiği gerçeğini dikkate alarak nasıl uygulanır?

Dün aynısını yaptım, sadece yüksek ve düşük dizilerle

   for (i = limit; i < rates_total; i++)
    {
     UpperBuf[i] = high[ ArrayMaximum (high, i-period, period)];
     LowerBuf[i] = low[ ArrayMinimum (low, i-period, period)];
     MidBuf[i] = (UpperBuf[i]+LowerBuf[i])/ 2 ;
    }

Zaman serisi çevirme yok. Peki mql5'e nasıl yerleştirildi? soldaki sıfır çubuğu.

Ayrıca, tüm gösterge arabelleğini kopyalayabilirsiniz, ancak belirtilen çubuktan yalnızca belirtilen miktarı kopyalayabilirsiniz. Ama fmax() ve fmin() yanlışlıkla tavsiye ettim. Tam olarak ArrayMaximum() demek istedim

 
Alexandr Sokolov :

Düşük/Yüksek ve Kapat/Kapat parametreleriyle K periyodu içinde normal maxHigh ve minLow stokastiklerini almak istiyorum

Başlatma sırasında Düşük/Yüksek iyi çalışıyor, ancak Kapat/Kapat çalışmıyor

zaman serileri için standart işlevler vardır

Maximum= iHigh ( _Symbol , _Period , iHighest ( _Symbol , _Period , MODE_HIGH ,num,startbar));
Minimum= iLow ( _Symbol , _Period , iLowest ( _Symbol , _Period , MODE_LOW ,num,startbar));
 
Taras Slobodyanik :

zaman serileri için standart işlevler vardır

Sadece tam teşekküllü bir tavsiye için en baştan okumaya başlamanız tavsiye edilir. Oradan ilk soru ve daha fazla tartışma neredeydi.

 
Alexey Viktorov :

Sadece tam teşekküllü bir tavsiye için en baştan okumaya başlamanız tavsiye edilir. Oradan ilk sorunun olduğu ve tüm tartışmaların devam ettiği yer.

Görünüşe göre en başından beri baktım - bir kişi min / maks arayışı içinde zaman dilimlerinden geçiyor.
Aşırıya kaçmadan yapılabilir.

 void KValues( int i)
  {
   if (price == STO_LOWHIGH )
      {
      vhigh= iHigh ( _Symbol , _Period , iHighest ( _Symbol , _Period , MODE_HIGH ,kperiod,i));
      vlow= iLow ( _Symbol , _Period , iLowest ( _Symbol , _Period , MODE_LOW ,kperiod,i));
      }
   else
      {
      vhigh= iClose ( _Symbol , _Period , iHighest ( _Symbol , _Period , MODE_CLOSE ,kperiod,i));
      vlow= iClose ( _Symbol , _Period , iLowest ( _Symbol , _Period , MODE_CLOSE ,kperiod,i));
      }
  }
(kontrol etmedi)
 
Taras Slobodyanik :

Görünüşe göre en başından beri baktım - bir kişi min / maks arayışı içinde zaman dilimlerinden geçiyor.
Aşırıya kaçmadan yapılabilir.

(kontrol etmedi)

Stokastik değerlere ihtiyacı var.

Gerçi ... Onun neye ihtiyacı olduğu konusunda kafam karıştı. Stokastik bir durum gibi görünüyor, ancak çubuklar kopyalanıyor...