Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1606

 
Alexey Viktorov #:

Leggi le regole. L'EA dovrebbe funzionare senza restrizioni sia sugli strumenti che sui TF.

Grazie! Ci sono stati molti altri errori nel processo)

 
La domanda è se è possibile inizializzare gli array multidimensionali con la funzione

ArrayInitialize(array,EMPTY_VALUE);
Come questo double msArr[10][4][500];
Oppure può essere fatto solo in loop in MKL4
.

 
Valeriy Yastremskiy gli array multidimensionali possono essere inizializzati con la funzione

ArrayInitialize(array,EMPTY_VALUE);
Come questo double msArr[10][4][500];
Oppure può essere fatto solo in loop in MKL4
.

Ci sono anche ArrayFill e ZeroMemory

L'array multidimensionale quando viene elaborato con ArrayFill() appare come monodimensionale, per esempio, array[2][4] viene elaborato come array[8], quindi quando si lavora con questo array è accettabile specificare l'indice dell'elemento iniziale uguale a 5. Quindi, chiamare ArrayFill(array, 5, 2, 3.14) per array[2][4] riempirà array[1][1] e array[1][2] con il valore 3.14.

 
Taras Slobodyanik #:

c'è anche ArrayFill e ZeroMemory

Grazie
 
MakarFX #:

Da questa parte!

E tu sei un burlone. E il problema in realtà è, e ci sono argomenti su che il comando Print stampa due volte nella scheda Experts e anche Allert viene due volte, solo che non c'è una risposta ahimè come risolvere il problema. E per il futuro, se non si sa, si può solo mantenere il silenzio e passare, ma per guadagnare rating se stessi risposte non professionali è stupido. Sì, a proposito, le sue risposte sono davvero molto deboli.

 
Manter84 #:

Sei un burlone. Ma il problema è reale, e ci sono argomenti sul fatto che il comando Print stampa due volte nella scheda Experts e anche Allert viene due volte, solo che non c'è una risposta ahimè come risolvere il problema. E per il futuro, se non si sa, si può solo mantenere il silenzio e passare, ma per guadagnare rating se stessi risposte non professionali è stupido. Sì, a proposito, le sue risposte sono davvero molto deboli.

Non hai capito il mio link...

Print non stampa più di una volta, se lo fa, c'è un errore nel codice...ecco perché ti ho mandato dai telepati, visto che non hai postato il codice)

 

Buona notte!

Cari utenti del forum, ho bisogno di aiuto. Ho scritto uno script in MQL4 che disegna una linea con una formula da tre punti dati su un grafico. Ci vogliono 130 linee, compresi i rientri e gli spazi. Ho recentemente deciso di portarlo a MQL5 e mi sono reso conto che la mia scarsa conoscenza della programmazione non mi aiuterà, ho bisogno di studiare di nuovo.

Sarò grato se qualcuno è pronto a portare lo script a MQL5. Sarei felice se qualcuno volesse portare questo script su MQL5.

 
Андрей non esitate a mandarmi un messaggio di persona.

Sarei felice se qualcuno lo facesse gratis (con).

 
 #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 #:

Butta il codice qui, forse qualcuno lo farà gratis (c), succede

Se qualcuno mi aiuta, ti devo comunque un whisky)!
Motivazione: