Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1044

 
Konstantin Nikitin:

In generale, è possibile impostare Excel per mettere un punto completo al posto della virgola.

È possibile regolare le impostazioni regionali nel sistema operativo stesso.

 
Eduard Shpigelman:
Due ordini sono aperti ma la funzione OrdersTotal() restituisce 0. Quale può essere la ragione? Grazie.

MQL5: Esempi:

 
Konstantin Nikitin:

Infatti, è possibile impostare Excel per mettere un punto completo al posto della virgola.

È possibile. Non in Excell, ma nel sistema operativo.


 
Alexey Viktorov:

È possibile. Solo non in Excell, ma nel sistema operativo.

Ricordo che qualcosa può essere impostato. Era da molto tempo che non mi veniva in mente. Ma la cosa principale è che...

 

Quello che ho ottenuto è stato il seguente:

Per comodità, ho dovuto rielaborare il foglio Excel in modo che tutti i dati necessari fossero raccolti in una prima colonna (A), in una colonna. Si è rivelato più conveniente leggere dalla colonna più a sinistra e convertire tutto in doppio piuttosto che raccoglierli da tutte le righe. Il codice alla fine ha assunto la seguente forma:

//+------------------------------------------------------------------+
//дата 
   datetime t=D'2019.05.17';
//+------------------------------------------------------------------+
   string FileName="Книга1 EURUSD.csv";
//+------------------------------------------------------------------+
   string sy[80];//количество необходимых данных
   double dy[80];//
   ArrayFill(dy,0,80,0);//явно обнуляем
   int c=0;

   int hf=FileOpen(FileName,FILE_READ|FILE_WRITE|FILE_CSV|FILE_ANSI);
   if(hf!=INVALID_HANDLE)
     {
      while(!FileIsEnding(hf))
        {
         sy[c]=FileReadString(hf);//записываем в массив string
         StringSetLength(sy[c],20);//укорачиваем строку, т.к. явно будет меньше 20 значащих цифр
         StringReplace(sy[c],";","                    "); //меняем первый(;) на 20 пробелов
         StringSetLength(sy[c],20);//ещё раз укорачиваем строку
         StringTrimRight(sy[c]);//Удаляем ненужные пробелы справа, т.о. укорачиваем строку до значащих символов
         StringReplace(sy[c],",",".");//меняем (,) на (.)
         dy[c]=StringToDouble(sy[c]);//переводим string в double и записываем в массив double

         c++;//считаем, сколько записать данных в массив
         if(c>=80)break;//выходим из цикла по окончании массива
        }
/*
      //сверяем с таблицей в Excel, если нужно
      for(int i=0;i<80;i++)
        {
         Alert("8   i=",i,"   dy[i]=",dy[i]);
        }
*/
     }
   else
     {
      Alert("Не удалось открыть h_f. Код ошибки = ",GetLastError());
      return;
     }
//+------------------------------------------------------------------+
 
Roman Sharanov:

LA DECOMPILAZIONE È VIETATA!

Cosa c'entra la decompilazione, non lo capisco?

 
Roman Sharanov:

Cosa c'entra la decompilazione, non capisco?

Forse hai postato il codice decompilato? Forse hai chiesto qualcos'altro per decompilare l'eseguibile?

 
No, solo l'incompetenza di chi ha emesso il giudizio.
 
Non pretendo di essere stato un moderatore.
 

Confuso sull'ortografia corretta della condizione, aiuto:

   if ((ma_slow[0]-ma_slow[9]) > (5*Point()))
Motivazione: