[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 333

 
drknn :

Göstergelerden birinin çok keskin olduğunu ve D1 zaman çerçevesinin onun için korkutucu bir yer olduğunu hayal edin. :) Kısacası, koda bakmanız gerekiyor - büyük olasılıkla nedeni orada.
Diğer terminallerde her şeyin çalıştığı için utandım.Sadece yanlış bir şey buldum - 14000 GBP alanında 1970 için bir alıntı.Şablonda sahip olduğum çok çeşitli nesne çizgilerini çizebildim. onları kaldırmak için tekno.
 

Yine, muhtemelen, tamponlarla bir şeyler karıştırdı. Bak lütfen.

Görev şu:

1) LSMA hesaplanır. [i]>[i+1] ise - renk yeşil, [i]<[i+1] ise - renk kırmızıdır. Bununla, her şey açıktır.

2) Yeşil ve kırmızı değerler dizisinin uzunluğunu bulup bir dizide saklamanız gerekiyor. Henüz kendi başımıza başa çıkamadığımız sorun burada ortaya çıkıyor.

 //+------------------------------------------------------------------+
//|                                                   LSMA_Stat2.mq4 |
//|                                                       silhouette |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "silhouette"
#property link       "http://www.metaquotes.net"

#property copyright "silhouette"
#property link       "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Yellow
#property indicator_color2 Green
#property indicator_color3 Red
//+------------------------------------------------------------------+
double BufferYellow[],BufferGreen[], BufferRed[];
int GreenSeries[], RedSeries[], g= 0 , r= 0 , gc= 0 , rc= 0 ;
string Symb;

int init()
  {
   Symb= Symbol ();
   
   SetIndexBuffer ( 0 ,BufferYellow);
   SetIndexBuffer ( 1 ,BufferGreen);
   SetIndexBuffer ( 2 ,BufferRed);
   
   SetIndexStyle ( 0 , DRAW_LINE ,EMPTY, 2 );
   SetIndexStyle ( 1 , DRAW_LINE ,EMPTY, 2 );
   SetIndexStyle ( 2 , DRAW_LINE ,EMPTY, 2 );  
   return ( 0 );
  }

int deinit()
  {

   return ( 0 );
  }

int start()
  {
   double tmp1, tmp2, LSMA;
   
   int counted_bars= IndicatorCounted ();
   int limit= Bars -counted_bars- 1 ;
   if (limit> 1 ) 
      limit= Bars - 1 ;
      
   for ( int i=limit; i> 0 ; i--)
    {
     tmp1= iMA (Symb, Period (), 34 , 0 , MODE_SMA , 0 ,i);
     tmp2= iMA (Symb, Period (), 34 , 0 , MODE_LWMA , 0 ,i);
     LSMA= 3.0 *tmp2- 2.0 *tmp1;
      
     BufferYellow[i]=LSMA;
     BufferGreen[i]=LSMA;
     BufferRed[i]=LSMA;

     if (BufferYellow[i]>BufferYellow[i+ 1 ])
      {
       BufferRed[i]= EMPTY_VALUE ;
      }
     else if (BufferYellow[i]<BufferYellow[i+ 1 ])
      {
       BufferGreen[i]= EMPTY_VALUE ;
      }
     else
      {
       BufferRed[i]= EMPTY_VALUE ;
       BufferGreen[i]= EMPTY_VALUE ;
      }                        
      
     if (BufferGreen[i]!= EMPTY_VALUE && BufferRed[i]== EMPTY_VALUE )
      {
       g++;
      }
     if (BufferGreen[i]== EMPTY_VALUE && BufferRed[i]!= EMPTY_VALUE )
      {
       r++;
      }
     if (BufferGreen[i]== EMPTY_VALUE && BufferRed[i]== EMPTY_VALUE )
      {
       if (BufferGreen[i+ 1 ]!= EMPTY_VALUE )
        {
         GreenSeries[gc]=g;
         gc++;
         g= 0 ;
        }
       if (BufferRed[i+ 1 ]!= EMPTY_VALUE )
        {
         RedSeries[rc]=r;
         rc++;
         r= 0 ;
        }
      }              
    }
   return ( 0 );
  }
 
silhouette :

Yine, muhtemelen, tamponlarla bir şeyler karıştırdı. Bak lütfen.

Görev şu:

1) LSMA hesaplanır. [i]>[i+1] ise - renk yeşil, [i]<[i+1] ise - renk kırmızıdır. Bununla, her şey açıktır.

2) Yeşil ve kırmızı değerler dizisinin uzunluğunu bulup bir dizide saklamanız gerekiyor. Henüz kendi başımıza başa çıkamadığımız sorun burada ortaya çıkıyor.


Bu göstergeyi neden beğenmediniz?
 
Vinin :

Bu göstergeyi neden beğenmediniz?

Vinin, aslında senin modele göre yaptım ama mesele farklı: Benim için önemli olan hesaplama yönteminin kendisi değil (en basit MA olup olmadığı), 2. paragraftaki sorunun çözümü.

Daha fazla analiz için yeşil veya kırmızı serilerin uzunluğunu saklayan bir dizi almanız gerekir.

 
Lütfen bana söyle. Gerçek hayatta büyük ölçüde ayrılabilecekleri 2 sanal denge tablosu (satış ve satın alma emirleri için) vardır. Bu grafiklerin kesişme anını tespit edebilmek için bunları nasıl herhangi bir göreli birime çevirebilirsiniz.
 
silhouette :

Vinin, aslında senin modele göre yaptım ama mesele farklı: Benim için önemli olan hesaplama yönteminin kendisi değil (en basit MA olup olmadığı), 2. paragraftaki sorunun çözümü.

Daha fazla analiz için yeşil veya kırmızı serilerin uzunluğunu saklayan bir dizi almanız gerekir.


Neden bir diziye ihtiyacınız var?
 
Vinin :

Neden bir diziye ihtiyacınız var?
Sonraki istatistiksel analiz için. Örneğin, Excel'de.
 

Fare ticareti için bir kütüphane var https://www.mql5.com/ru/code/9671

Bağlantı kuramıyorum, lütfen bana yardım edin.

Gerekli tüm dosyaları uzman klasörüne indirip derliyorum, ancak yine de göstergelerde veri içermeyen siyah pencereler var.

Bir çeşit çocukça hata bariz ama bir gün bulamıyorum


 
TheXpert :

Hiçbir şeyi klasörlemenize gerek yok. Arşivde, tüm dosyalar zaten aralıklıdır, tek yapmanız gereken arşivi terminal klasörüne açmak ve derlemek.

Yalnızca gösterge dosyaları derlenir, kitaplıkların (mqh) derlenmesi gerekmez. Yeni bir terminal kurmayı deneyin ve üzerinde pratik yapın.

 

Lütfen bana söyle! Terminalde, "MQL4.community" düğmesine tıklayarak, Word'ü ilgili sayfa ile açar, ancak herhangi bir bağlantıya tıklamaya çalıştığınızda, bilgisayardaki sınırlama hakkında yazan bir pencere açılır! ???

Nasıl başa çıkılır bununla? Teşekkür ederim.