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

 
DCodec :

Dürüst olmak gerekirse, hiçbir şey anlamadım. Kapat[2], Kapat[1] üzerindeki göstergenin üst satırının değerlerine ihtiyacım var ve bu kadar.

Gösterge koduna "uymamak" için HERHANGİ bir göstergeden bu değerler nasıl çıkarılır.


Herhangi bir gösterge arabelleğinin değerlerini Kapat'ta değil, herhangi bir BARS'ta alabilirsiniz... iCustom yardımına bakın:

iÖzel

Belirtilen özel göstergenin tutamağını döndürür.

Prosedür:

  • OnInit() içinde gösterge tanıtıcısını oluşturun
  • OnTick() veya OnTime() içinde, gerekli GÖSTERGE tamponundan verilen BARK numarasındaki gösterge verilerini alırız.

 
Vladimir Karputov :

Herhangi bir gösterge arabelleğinin değerlerini Kapat'ta değil, herhangi bir BARS'ta alabilirsiniz... iCustom yardımına bakın:

iÖzel

Belirtilen özel göstergenin tutamağını döndürür.

Prosedür:

  • OnInit() içinde gösterge tanıtıcısını oluşturun
  • OnTick() veya OnTime() içinde, gerekli GÖSTERGE tamponundan verilen BARK numarasındaki gösterge verilerini alırız.

Evet, yanlış ifade ettim. Birinci ve ikinci çubuklardaki gösterge değerlerine ihtiyacım var. Ama diyelim ki Bollinger Bantlarının üç çizgisi var. Bana hangi satırın değerini döndürüyor??? Aptalca sorular için özür dilerim, ama gerçekten STUPOR.
 
DCodec :
Evet, yanlış ifade ettim. Birinci ve ikinci çubuklardaki gösterge değerlerine ihtiyacım var. Ama diyelim ki Bollinger Bantlarının üç çizgisi var. Bana hangi satırın değerini döndürüyor??? Aptalca sorular için özür dilerim, ama gerçekten STUPOR.

Bir dakika bekle...

İşte iBands'den değer alma işlevi:

 //+------------------------------------------------------------------+
//| Get value of buffers for the iBands                              |
//|  the buffer numbers are the following:                           |
//|   0 - BASE_LINE, 1 - UPPER_BAND, 2 - LOWER_BAND                  |
//+------------------------------------------------------------------+
double iBandsGet( const int buffer, const int index)
  {
   double Bands[ 1 ];
//ArraySetAsSeries(Bands,true);
//--- reset error code 
   ResetLastError ();
//--- fill a part of the iBands array with values from the indicator buffer that has 0 index 
   if ( CopyBuffer (handle_iBands,buffer,index, 1 ,Bands)< 0 )
     {
       //--- if the copying fails, tell the error code 
       PrintFormat ( "Failed to copy data from the iBands indicator, error code %d" , GetLastError ());
       //--- quit with zero result - it means that the indicator is considered as not calculated 
       return ( 0.0 );
     }
   return (Bands[ 0 ]);
  }

işlev kesildi - amacı her zaman "indeks" çubuk numarasındaki "arabellek" gösterge arabelleğinden YALNIZCA BİR değer almaktır.

Üç iBand satırının da kendi sabitleri vardır:

 //|   0 - BASE_LINE, 1 - UPPER_BAND, 2 - LOWER_BAND                  |
 
Vladimir Karputov :

Bir dakika bekle...

İşte iBands'den değer alma işlevi:

işlev kesildi - amacı her zaman "indeks" çubuk numarasındaki "arabellek" gösterge arabelleğinden YALNIZCA BİR değer almaktır.

Üç iBand satırının da kendi sabitleri vardır:

Evet evet. sadece nasıl başvuracağımı anlamadım

 //|   0 - BASE_LINE, 1 - UPPER_BAND, 2 - LOWER_BAND  

Bu muhtemelen düşüncenin darlığından kaynaklanmaktadır. Hala MQL4'teki gibi düşünüyorum.

 
DCodec :

Evet evet. sadece nasıl başvuracağımı anlamadım

Bu muhtemelen düşüncenin darlığından kaynaklanmaktadır. Hala MQL4'teki gibi düşünüyorum.


Codebase'den iBands kullanma örneği: Bollinger Bands RSI

 
DCodec :

...


Nasıl gidiyor? Veya bir göstergeden veri almanın adım adım yazıldığı bir konu mu oluşturacaksınız?

 
Vladimir Karputov :

Nasıl gidiyor? Veya bir göstergeden veri almanın adım adım yazıldığı bir konu mu oluşturacaksınız?

Senin için komik. Ve o tampon aklıma geldi

 CopyBuffer

ihtiyacım olan şey bu

 CopyBuffer (handle_iBands,buffer,index, 1 ,Bands)

Teşekkür ederim.

 

Sana bir soru daha sorayım. İhtiyacım olmayan göstergedeki çizgi nasıl devre dışı bırakılır?

iEnvelopes'ta UPPER_LINE'ı devre dışı bırakalım.

 
DCodec :

Senin için komik. Ve o tampon aklıma geldi

ihtiyacım olan şey bu

Teşekkür ederim.


Sana öyle geliyordu. Gülmedim, ciddi bir şekilde sordum. Örneğin benim şöyle bir temam var: Basit Uzman Danışman. Çubuk boyutunu kontrol etme. Alış-satış


DCodec :

Sana bir soru daha sorayım. İhtiyacım olmayan göstergedeki satırı nasıl devre dışı bırakabilirim?

iEnvelopes'ta UPPER_LINE'ı devre dışı bırakalım.


Soru net değil. NEREDE ve NE yapmak istediğinizi daha kesin olarak açıklayın.

 
Vladimir Karputov :

Sana öyle geliyordu. Gülmedim, ciddi sordum. Örneğin benim şöyle bir temam var: Basit Uzman Danışman. Çubuk boyutunu kontrol etme. Alış-satış



Soru net değil. NEREDE ve NE yapmak istediğinizi daha kesin olarak açıklayın.

Expert Advisor'da OnInit() içindeki gösterge tutamağını alırken ...

 int OnInit ()
  {
//--- Получить хэндл индикатора Envelopes_upper для отрисовки верхней линии
   EnvHandle_upper= iEnvelopes ( NULL , 0 ,Period_upper, 0 , MODE_SMA , PRICE_MEDIAN ,Deviation_upper);

....terminal her iki çizgiyi de çiziyor ama benim sadece en üstteki çizgiye ihtiyacım var.

Bu çizginin çizimini nasıl kapatabilirim? Onlar. rengini CLR_NONE olarak veya çizgi stilini DRAW_DONE olarak değiştirmek ister misiniz?