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

 
Alexey Viktorov # :

Kuralları oku. EA, hem araçlar hem de zaman dilimleri üzerinde herhangi bir kısıtlama olmaksızın çalışmalıdır.

Teşekkür ederim! Bu süreçte, bir sürü başka hata ortaya çıktı)

 
Çok boyutlu dizileri işlevle başlatmanın mümkün olup olmadığı sorusu ortaya çıktı.

ArrayInitialize (dizi, EMPTY_VALUE );
Örneğin, bu tür double msArr[10][4][500];
Veya sadece MKL4'teki döngüde yapılabilir.

 
Valeriy Yastremskiy boyutlu dizileri işlevle başlatmanın mümkün olup olmadığı sorusu ortaya çıktı.

ArrayInitialize (dizi, EMPTY_VALUE );
Örneğin, bu tür double msArr[10][4][500];
Veya sadece MKL4'teki döngüde yapılabilir.

ayrıca ArrayFill ve ZeroMemory var

Çok boyutlu bir dizi, ArrayFill() tarafından işlendiğinde tek boyutlu olarak kabul edilir, örneğin dizi[2][4], dizi[8] olarak değerlendirilir, bu nedenle bu diziyle çalışırken, dizini belirtmeye izin verilir. Böylece, dizi[2][4] için ArrayFill(array, 5, 2, 3.14) çağrılması, dizi[1][1] ve dizi[1][2] değerini 3.14 ile dolduracaktır.

 
Taras Slobodyanik # :

ayrıca ArrayFill ve ZeroMemory var

teşekkürler
 
MakarFX # :

Buradasın !

Ve sen bir jokersin. Ancak gerçekten bir sorun var ve Uzmanlar sekmesinde Yazdır komutunun iki kez yazdırılması ve Uyarının da iki kez gelmesi ile ilgili konular var, sadece bunun bir cevabı yok, ne yazık ki, nasıl düzeltileceği. Ve gelecek için, eğer bilmiyorsanız, sadece sessiz kalabilir ve geçebilirsiniz ve profesyonel olmayan cevaplarla kendinize bir puan kazandırmak aptalcadır. Evet, bu arada, cevaplarınız gerçekten çok zayıf.

 
Manter84 # :

Ve sen bir jokersin. Ancak gerçekten bir sorun var ve Uzmanlar sekmesinde Yazdır komutunun iki kez yazdırılması ve Uyarının da iki kez gelmesi ile ilgili konular var, sadece bunun bir cevabı yok, ne yazık ki, nasıl düzeltileceği. Ve gelecek için, eğer bilmiyorsanız, sadece sessiz kalabilir ve geçebilirsiniz ve profesyonel olmayan cevaplarla kendinize bir puan kazandırmak aptalcadır. Evet, bu arada, cevaplarınız gerçekten çok zayıf.

Bağlantımı yanlış anladın...

Print bir kereden fazla yazdırmıyor, bu olursa, hata koddadır ... bu yüzden sizi telepatlara gönderdim, çünkü kodu göndermedin

 

İyi geceler!

Sevgili forum kullanıcıları, yardıma ihtiyacım var. Sakallı bir yılda, MQL4'te bir çizelge üzerinde verilen üç noktayı temel alan bir formül kullanarak bir çizgi çizen bir senaryo yazdım. Girintiler ve boşluklar dahil 130 satır kaplar. Geçenlerde MQL5'e geçmek istedim ve zaten zayıf olan programlama bilgimin burada yardımcı olmayacağını fark ettim, tekrar öğrenmem gerekiyor.

Birisi senaryoyu MQL5'e aktarmayı taahhüt ederse minnettar olurum. Bir fiyatta anlaşacağız, kişisel olarak yazacağız .

 
Андрей kişisel olarak yazacağız .

Kodu buraya atın belki biri bedavaya yapar(lar) olur

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

 #property indicator_chart_window
 #property indicator_buffers 1
 #property  indicator_color1 Blue
 #property  indicator_width1 2
 #property  indicator_style1 0
 double      Buffer1[];
 //+------------------------------------------------------------------+
 //| Объявляем внешние переменные                                     |
 //+------------------------------------------------------------------+
 datetime point_1;
 datetime point_2;
 datetime point_3;
 datetime LastBarTime;
 string line_name[ 10 ];
 int gg= 1 ;
 int x1;
 int x2;
 int x3;
 int xx1; // В эту переменную сохраняется значение номера бара вершины перед прогоном при появлении нового бара.
 int xx2; // Если линии стоят, значит при поялвении нового бара номер бара вершины должен увеличиться на 1.
 int xx3; // Если этого не произошло и xx1=x1 после прогона, значит увеличиваем вручную.
 int max;
 int maxx;
 double y1;
 double y2;
 double y3;
 double y11;
 double y22;
 double y33;
 double x11;
 double x22;
 double x33;
 double y;
 double a1;
 double a2;
 double a3;

 //+------------------------------------------------------------------+
 //| Custom indicator initialization function                         |
 //+------------------------------------------------------------------+
 int init()
   { SetIndexBuffer ( 0 ,Buffer1);
   SetIndexStyle( 0 , DRAW_LINE );
 //---- indicators
 //----
    return ( 0 );
   }
  
 int start()
   {
   // Пересчитываем инликатор только при появлении нового бара
   if (LastBarTime == iTime ( Symbol (), 0 , 0 ))
      return ( 0 );
    LastBarTime = iTime ( Symbol (), 0 , 0 );
   
   
 // Присваиваем значения переменных времени


 int obj_total= ObjectsTotal ();

   for ( int ii= 0 ;ii< 100 ;ii++)
     { string name = ObjectName (ii);
       if (ObjectType(name)!= OBJ_VLINE )
       continue ;
       line_name[gg] = ObjectName (ii);
       gg=gg+ 1 ;
     
     }
    
   
    point_1=ObjectGet(line_name[ 1 ], OBJPROP_TIME1);
    point_2=ObjectGet(line_name[ 2 ], OBJPROP_TIME1);
    point_3=ObjectGet(line_name[ 3 ], OBJPROP_TIME1);
   
 // Запоминаем текущий номер бара вершины

 xx1=x1; 
    
 //Определяем номера баров ключевых точек
   for ( int j= 0 ;j< Bars ; j++)
   { if (Time[j]==point_1) x1=j;}
  
  
   // Если после прогона сдвиг по вершине не произошел, значит линий нет, добавляем +1 вручную.
 if (x1==xx1) x1=x1+ 1 ;
  
  
 xx2=x2;
  
   for ( int k= 0 ;k< Bars ; k++)
   { if (Time[k]==point_2) x2=k;  }
  
 if (x2==xx2) x2=x2+ 1 ;
  
 xx3=x3;

   for ( int l= 0 ;l< Bars ; l++)
   { if (Time[l]==point_3) x3=l; }
  
 if (x3==xx3) x3=x3+ 1 ;

 // Comment ("n1=", j," n2=", k, " n3=", l);
 //Находим "высоту" вершин
   {
   y1=High[x1];
   y2=High[x2];
   y3=High[x3];
   //Comment ("y1=", y1," x1=", x1, " y2=", y2, "x2=", x2," y3=", y3, " x3=", x3);
   //Принимаем первую из них за начало координат
  
 a1=(y3-(x3*(y2-y1)+x2*y1-x1*y2)/(x2-x1))/(x3*(x3-x1-x2)+x1*x2);
 a2=((y2-y1)/(x2-x1))-a1*(x1+x2);
 a3=((x2*y1-x1*y2)/(x2-x1))+a1*x1*x2;

 max= MathMax (x1,x2);
 maxx= MathMax (max,x3);
  
  
   for ( int i=maxx; i>= 0 ; i--)
  
   { y=a1*i*i+a2*i+a3;
   Buffer1[i]=y;}
  

    return ( 0 );
   }} 

MetaQuotes — разработчик торговых платформ для брокеров, банков, бирж и хедж-фондов
MetaQuotes — разработчик торговых платформ для брокеров, банков, бирж и хедж-фондов
  • www.metaquotes.net
Торговая платформа MetaTrader 5 - это бесплатный инструмент трейдера, позволяющий торговать на форексе и фондовых биржах
 
Vitaly Muzichenko # :

Kodu buraya atın belki biri bedavaya yapar(lar), olur

Yardım edebilecek biri varsa, yine de viskiyle uğraşıyorum!))
Neden: