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

 
Nikolay Gaylis:
Salve, potreste dirmi come mostrare/rimuovere programmaticamente un certo simbolo nella finestra "panoramica del mercato"?

Vedere la funzione SymbolSelect.

 

Buon pomeriggio, potreste dirmi dove potrebbe esserci un errore in questo frammento di codice?

 if (TotalMax_1<1)Step_1max=TotalMax_0;                                                  // Если расчетов еще небыло Step_1max=TotalMax_0
 else Step_1max=TotalMax_0-TotalMax_1;                                                   // Если расчеты уже были Step_1max=TotalMax_0-TotalMax_1
 
 for (i_1max=Step_1max;TotalMax_0>TotalMax_1;i_1max--)                                   // Главный цикл для заполнения массива Max_1
  {
   if (Max_0[i_1max]>Min_0[i_1max] && Stop_1max==0)                                      // Если максимум больше минимума и Stop_1max равен 0 нужно произвести расчет Максимального Индекса
    {
     Mmax_1=Max_0[i_1max];                                                               // Задается значение параметру Mmax_1
     MIndex_1max=i_1max;                                                                 // Задается значение параметру MIndex_1max
       
     for (i_1maxH=i_1max;Max_0[i_1maxH]>=Min_0[i_1maxH];i_1maxH--)                       // Цикл для расчета Максимального Индекса
       {
        if (Max_0[i_1maxH]>Mmax_1)                                                       // Если встречается максимум и он выше предыдущего
         {
          Mmax_1=Max_0[i_1maxH];                                                         // ... то меняется значение параметра Mmax_1
          MIndex_1max=i_1maxH;                                                           // ... и параметра MIndex_1max
         }
       }
       
     Stop_1max=1;                                                                        // Задается значение пераметру Stop_1max
    }
                                                                             
   if (i_1max==MIndex_1max)                                                              // Условие для вычисления максимума
    {
     Max_1[i_1max]=Mmax_1;                                                               // Присвоение значения массиву Max_1
     TotalMax_1=ArraySize(Max_1);                                                        // Всего баров в массиве Max_1
     }
        
   else                                                                                  // Если нет
      { 
       Max_1[i_1max]=0;                                                                  // Присвоение 0 значения массиву Max_1
       TotalMax_1=ArraySize(Max_1);                                                      // Всего баров в массиве Max_1
       }

   if (Min_0[i_1max]>Max_0[i_1max]) Stop_1max=0;                                         // Если минимум больше максимума задается значение пераметру Stop_1max
       
  }
 

Ciao a tutti, sto affrontando il seguente problema:

Apro un trade senza stoploss e takeprofit:

OrderSend("EURUSD",OP_BUY,0.1,Ask,0,0,0,"",Magic,0,Red);

Voglio chiudere questo ordine

OrderClose(Magic,OrderOpenPrice(),Ask,0,Red);

Ottengo questo errore: OrderClose error 131

Se invece diOrderOpenPrice() punto 0,1 o OrderLots() c'è un errore: OrderClose error 138

Qual è il problema?

 
labvic:

Ciao a tutti, sto affrontando il seguente problema:

Apro un trade senza stoploss e takeprofit:

Voglio chiudere questo ordine

Ottengo questo errore: OrderClose error 131

Se invece diOrderOpenPrice() punto 0,1 o OrderLots() c'è un errore: OrderClose error 138

Qual è il problema?

Chiudi al prezzo sbagliato
 
Artyom Trishkin:
Stai chiudendo al prezzo sbagliato

Puoi essere più specifico su cosa dovrebbe essere? Grazie

 
labvic:

Puoi essere più specifico su cosa dovrebbe essere? Grazie

Queste sono le basi.
L'acquisto si apre su Ask e si chiude su Bid.
Vendere apre a Bid, chiude a Ask
 

Buon pomeriggio!

Ho letto attentamente il tutorial sui file di inclusione, e da nessuna parte dice che un file di inclusione non può essere "incluso" due volte nell'EA.

Ho il primo "attivato", il secondo (con lo stesso nome) è saltato/ignorato.

Cosa faccio - faccio una copia del file incluso, aggiungo una lettera/cifra al nome del file e nella linea EA, e tutto funziona.

Domanda: è il linguaggio mql4 o io?

Grazie in anticipo!!!

 
Roni Iron:

Buon pomeriggio!

Ho letto attentamente il tutorial sui file di inclusione, e da nessuna parte dice che un file di inclusione non può essere "incluso" due volte nell'EA.

Ho il primo "attivato", il secondo (con lo stesso nome) è saltato/ignorato.

Cosa faccio - faccio una copia del file incluso, aggiungo una lettera/cifra al nome del file e nella linea EA, e tutto funziona.

Domanda: è il linguaggio mql4 o io?

Grazie in anticipo!!!

Perché dovresti includere la stessa cosa due volte nell'annuncio?

Se il file include ha la funzione f(), allora includendola due volte nel vostro codice, otterrete un errore di compilazione sulla funzione f() già dichiarata

 
Artyom Trishkin:

Perché dovresti includere la stessa cosa due volte nel tuo annuncio?

Se c'è una funzione f() nel file include, allora includerla due volte nel vostro codice risulterà in un errore di compilazione su una funzione f() già dichiarata

Se uso il file include non come una funzione definita dall'utente, ma come "sostituzione"/inserimento di un semplice frammento di codice, per esempio, per cercare l'ultimo ordine in base al suo simbolo (o presenza di un ordine). E questa ricerca può essere utilizzata più volte in un programma. E ci possono essere molte di queste "operazioni classiche".
 
Roni Iron:
Se uso il file include non come una funzione personalizzata, ma come una "sostituzione"/inserimento di un semplice frammento di codice, come la ricerca dell'ultimo ordine in base al suo strumento (o la presenza di un ordine). E questa ricerca può essere utilizzata più volte in un programma. E ci possono essere molte di queste "operazioni classiche".

È qui che ci si confonde. Ci possono essere molte funzioni utili in un file include. Includete il file una volta e usate le funzioni disponibili dal file.

Motivazione: