[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 438

 

Buona sera a tutti.

Potete dirmi per favore come trovare il prezzo massimo e minimo dell'ultima ora, il libro di testo dice solo delle ultime barre.

 
Domanda molto banale: metto un ordine pendente, controllo la scadenza per tempo, imposto il tempo corretto, ma quando il tempo scade e l'ordine non viene aperto non viene cancellato.
 
L'ho trovato... Non c'è niente di scritto nel diario di bordo
 
Elektronik:

Buona sera a tutti.

Potete dirmi per favore come trovare il prezzo massimo e minimo dell'ultima ora, il libro di testo dice solo delle ultime barre.


Si prega di fare riferimento alla documentazione per una spiegazione:

double valHigh = iHigh(Symbol(),PERIOD_H1,1);
double valLow  = iLow(Symbol(),PERIOD_H1,1);
 

Ciao a tutti!

Ho appena iniziato a imparare MQL (per favore non giudicate troppo severamente).

Ho una domanda dal tutorial MQL4.

//--------------------------------------------------------------------
// stringarray.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
extern double Level=1.3200;                     // Заданный уровень 
string Text[101];                               // Объявление массива
//--------------------------------------------------------------------
int init()                                      // Спец. ф-ия init()
  {                                             // Присвоение значений
   Text[1]="один ";            Text[15]="пятнадцать ";
   Text[2]="два ";             Text[16]="шестнадцать ";
   Text[3]="три ";             Text[17]="семнадцать ";
   Text[4]="четыре ";          Text[18]="восемнадцать ";
   Text[5]="пять ";            Text[19]="девятнадцать ";
   Text[6]="шесть ";           Text[20]="двадцать ";
   Text[7]="семь ";            Text[30]="тридцать ";
   Text[8]="восемь ";          Text[40]="сорок ";
   Text[9]="девять ";          Text[50]="пятьдесят ";
   Text[10]="десять ";         Text[60]="шестьдесят";
   Text[11]="одиннадцать ";    Text[70]="семьдесят ";
   Text[12]="двенадцать ";     Text[80]="восемьдесят ";
   Text[13]="тринадцать ";     Text[90]="девяносто";
   Text[14]="четырнадцать ";   Text[100]= "сто";
   // Вычисление значений
   for(int i=20; i<=90; i=i+10)                // Цикл по десяткам
     {
      for(int j=1; j<=9; j++)                  // Цикл по единицам
         Text[i+j]=Text[i] + Text[j];          // Вычисление значения   
     }
   return;                                     // Выход из init()
  }
//--------------------------------------------------------------------
int start()                                     // Спец. ф-ия start()
  {
   int Delta=NormalizeDouble((Bid-Level)/Point,0);// Превышение 
//--------------------------------------------------------------------
   if (Delta>=0)                                // Цена не выше уровня
     {
      Alert("Цена ниже уровня");                // Сообщение
      return;                                   // Выход из start()
     }
//--------------------------------------------------------------------
   if (Delta<100)                               // Цена более 100
     {
      Alert("Более ста пунктов");               // Сообщение
      return;                                   // Выход из start()
     }
//--------------------------------------------------------------------
   Alert("Плюс ",Text[Delta],"pt.");            // Вывод на экран
   return;                                      // Выход из start()
  }
//--------------------------------------------------------------------

Ho iniziato il programma e funziona.

Non so come possa contare da 10 a 19, se l'operatore di loop "for(int i=20; i<=90; i=i+10)" conta da 20 e "for(int j=1; j<=9; j++)" da 1 a 9.

Si prega di spiegare.

 
borilunad:

Questo chiuderà 1/2 del lotto. Se OrderLots() = 0.03, allora 0.02 si chiuderà e 0.01 rimarrà. E metti il lotto risultante in OrderClose() al suo posto dopo OrderTicket(). È chiaro ora?
comprensibile - grazie, tranne ........ come farlo :) ?
 
kostural:
comprensibile - grazie, ma qui ........ come fare :) ♪


Dove è chiaro che non si può mettere il lotto ricevuto in OrderClose() al suo posto dopo OrderTicket()? Non posso spiegarlo in altro modo.

Vedere la funzione OrderClose() in Doc o l'aiuto di MetaEditor!

 
Pacman:

Ciao a tutti!

Ho appena iniziato a imparare MQL (per favore non giudicate troppo severamente).

Ho una domanda dal tutorial MQL4.

Ho iniziato il programma e funziona.

Non so come possa contare da 10 a 19, se l'operatore di loop "for(int i=20; i<=90; i=i+10)" conta da 20 e "for(int j=1; j<=9; j++)" da 1 a 9.

Si prega di spiegare.


Text[i+j]=Text[i] + Text[j]; // Calcolo del valore

Cosa non è chiaro? decine+unità= decine+unità (per esempio: 20+5= 20+5 su una macchina primitiva significa 25)

Inizia con l'aritmetica!

 
borilunad:


Text[i+j]=Text[i] + Text[j]; // Calcolo

Cosa c'è da non capire: decine+unità = decine+unità (per esempio: 20+5 = 20+5 per una macchina primitiva significa 25)

Inizia con l'aritmetica!

Non capisco come si ottiene esattamente il numero 10, 11, 12, ...,19.

Nel programma, l'istruzione del ciclo inizia con 20, e da 1 a 9?

 
krutishc:
Domanda molto banale. inserisco un ordine in sospeso, controllo il tempo di scadenza, imposto il tempo richiesto, ma quando il tempo scade e l'ordine non viene aperto non viene cancellato. cosa sto sbagliando?


Se non ci sono condizioni per aprire un ordine, non si aprirà. E al momento giusto, sarà semplicemente cancellato... C'è qualcosa che non va nel tuo expirationTime....

expiration time - tempo di scadenza dell'ordine pendente. In secondi dopo le 00:00 del 1° gennaio 1970.