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

 
Artyom Trishkin :
Göstergeyi terminalde tam olarak nerede başlatıyorsunuz?
Benimkinden bahsediyorsanız, C:\Users\Tsar\AppData\Roaming\MetaQuotes\Terminal\CE01488447B8E5332C971089AB90, BB ile ilgiliyse, dürüst olmak gerekirse, nereden başladığını bilmiyorum, ama sorunu kullandım ve yazdırdım ( BB'nin kendisinde 4'ten fazla verip vermediğini öğrendim -x işaretleri türkiye) de BB tarafından bu klasörden alınmıştır.
 
Павел Козлов :
Bu yüzden bu haberi görmek için koduna girdim.

Herkesi bilmem ama hindilerin ve uzmanların yalan söylediği iki yer var, bunlar C:\Program Files (x86)\MT4\MQL4\indicators ve C:\Users\King\AppData\Roaming\MetaQuotes\Terminal \CE01488447B8E5332C971089AB90 (bu klasör tam olarak File-Open veri dizininden açılır) her iki yerde de koda baktım ve aynı. Belki bir yerlerde yine noktayı kaçırdım, bilmeyene tekrar anlatabilirsiniz. Özel ve standart arasındaki fark nedir ve her iki seçeneği de nerede bulabilirim?

Standart olana BollingerBands denir ve özel Bantlar farklı yerlerde bulunur.


 
Artyom Trishkin :
Göstergeyi terminalde tam olarak nerede başlatıyorsunuz?

/portable moduna aşina olduğundan şüpheliyim

 
Alexey Viktorov :

Standart olana BollingerBands denir ve özel Bantlar farklı yerlerde bulunur.


Teşekkür ederim. Ve sonra cep telefonundan Majestelerine hiçbir şekilde nerede ve neyin bulunduğunu açıklayamam.
Bu nedenle, birini başlattığını söylemeye çalıştı ve kod diğerine bakıyor.
 
Alexey Viktorov :

/portable moduna aşina olduğundan şüpheliyim

Bu moda pek aşina değilim ve bu problem için ayrı ayrı oluşturduğum konu başlığımda bilgimin seviyesini ortaya koydum, aptallık ettiğim için özür dilerim ama benim için sandığınız kadar kolay olmadı. Yine de bana sorunu gösterdin, şimdi nasıl çözeceğimi anlamaya çalışacağım. Artem tavsiyen ve tavsiyen için teşekkür ederim.
 
Павел Козлов :
Bu moda pek aşina değilim ve bu problem için ayrı ayrı oluşturduğum konu başlığımda bilgimin seviyesini ortaya koydum, aptallık ettiğim için özür dilerim ama benim için sandığınız kadar kolay olmadı. Yine de bana sorunu gösterdin, şimdi nasıl çözeceğimi anlamaya çalışacağım. Tavsiyen ve tavsiyen için teşekkür ederim Artem.

Seni hiçbir şekilde cehaletle karıştırmak istemedim. Artyom ile bir diyalogdu, benim açımdan bilmediğiniz bir şeyi sorduğunun basit bir açıklamasıydı. Bilmemek ayıp değil ve gayet normal.

 
Peki, şimdi neyi yanlış yapıyorum, iCustom işlevinde ustalaştım. Kodu yaptım (Örnek olarak en üst satırı aldım). Ve hala 4 karakter veriyor. DoubleToString aracılığıyla 5 veriyor, ama saçmalık, gerçek veri değil.
 double BUp = iCustom(NULL,0,"Bantlar",20,0,2,1,1);
Yardım istiyorum, kodla ilgili yardım. Baskıda değil, Bands.ex4 göstergesinden göstergeme, örneğin en üst satıra veri değişkenine yazma. Değişkenlerle değiştirmek yerine sayısal değerlerin kullanılması tavsiye edilir.
 
Павел Козлов :
Peki, şimdi neyi yanlış yapıyorum, iCustom işlevine hakim oldum. Kodu yaptım (Örnek olarak en üst satırı aldım). Ve hala 4 karakter veriyor. DoubleToString aracılığıyla 5 veriyor, ama saçmalık, gerçek veri değil.Lütfen yardım edin, koda yardım edin. Baskıda değil, Bands.ex4 göstergesinden göstergeme, örneğin en üst satıra veri değişkenine yazma. Değişkenlerle değiştirmek yerine sayısal değerlerin kullanılması tavsiye edilir.

OnTick() bugün çalışmadığından, kod OnInit() içine yerleştirilmiştir.


Not: Bir şekilde dikkatsizce okudum. Bu cümleyi fark etmemiş.

Değişkenlerle değiştirmek yerine sayısal değerlerin kullanılması tavsiye edilir.


ancak hiçbir şey iCustom numarasına veya değişkenine ne girildiğine bağlı değildir.

Dosyalar:
 
Павел Козлов :
Peki, şimdi neyi yanlış yapıyorum, iCustom işlevinde ustalaştım. Kodu yaptım (Örnek olarak en üst satırı aldım). Ve hala 4 karakter veriyor. DoubleToString aracılığıyla 5 veriyor, ama saçmalık, gerçek veri değil.Lütfen yardım edin, koda yardım edin. Baskıda değil, Bands.ex4 göstergesinden göstergeme, örneğin en üst satıra veri değişkenine yazma. Değişkenlerle değiştirmek yerine sayısal değerlerin kullanılması tavsiye edilir.
Yanlış kontrol ediyorsun. iCustom, iBand'ler dönüş değerini yuvarlamaz.
   double   BUp = iCustom(NULL,0,"Bands",20,0,2.0,1,1);
   Print(DoubleToString(BUp,16));
 

Göstergenin neden çizilmediğini anlamama yardım et. Sonunda ZigZag gibi bir şey yaratmak istiyorum.

 //+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property link        ""
#property version    "1.00"
#property strict
#property indicator_chart_window
//--------------------------------
#property indicator_buffers 1        // Количество буферов
#property indicator_color1 Blue     // Цвет линии 0 буфера
double Buf_0[];
double Max_B= 0 ,
Min_B= 10000 ;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
   SetIndexBuffer ( 0 ,Buf_0);                   //Назначение массива буфера
   SetIndexStyle ( 0 , DRAW_LINE , STYLE_SOLID , 1 ); //стильлинии
   return ( 0 );
  }
//------------------------------
int start()
  {
   int i;
   int n,
   step= 10 ;
   int Counted_bars;
   double Max_A,
   Min_A;
   Counted_bars= IndicatorCounted ();
   i= Bars -Counted_bars- 1 ;
//--------------------------------------------------------------------------------------------------------------+
   while (i>= 0 ) //цикл, который считает просчитывает значение на i-ом баре               
     {
      Max_A= High [i];                         //присвоили максимальное значение i-ого бара переменной Max_A            
      Min_A= Low [i];                           //присвоили минимальное значение i-ого бара переменной Min_A
       if (Max_A>Max_B)
         Max_B=Max_A;
       if (Min_A<Min_B)
         Min_B=Min_A;
       //------------------------------------------------------------------------------------------------------------- 
       if (i>=step)
        {
         for (n= 0 ;n<step;n++) //цикл, который будет сравнивать значения баров на определённом интервале        
           {
             if ( High [i+n]>Max_A)
              {
               Max_A= High [i+n];
              }
             else
              {
               if ( High [i+n]<Min_A)
                  Min_A= High [i+n];
              }
           }
        }
       if (i<step)
        {
         for (n=step;n> 0 ;n--) //цикл, который будет сравнивать значения баров на определённом интервале        
           {
             if ( High [i-n]>Max_A)
              {
               Max_A= High [i-n];
              }
             else
              {
               if ( High [i-n]<Min_A)
                  Min_A= High [i-n];
              }
           }
        }
       if (Max_A>Max_B)
        {
         Buf_0[i]=Max_A;
        }
       else
        {
         if (Min_A<Min_B)
            Buf_0[i]=Min_A;
        }
      i--;
     }
   return ( 0 );
  }
//+------------------------------------------------------------------+