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

 
Amon1953:

Glitches in MQL4 ?


Problema simile in altre due situazioni anche con l'operatore if()

E se pensate attentamente e cercate di capire il motivo per cui questo glitch è l'unico per voi? Forse avete un terminale speciale?

 
Alexey Viktorov:

E se pensate attentamente e cercate di capire il motivo per cui siete l'unico ad avere un tale difetto? Forse avete un qualche tipo di terminale speciale?

Il terminale di InstaForex non è insolito. E questo inconveniente non è apparso subito. All'inizio andava bene, ma poi all'improvviso è scomparso. Reinstallare il terminale non ha aiutato. Dovrò controllare con un altro broker.
 
Amon1953:
Stavo usando un terminale della InstaForex, niente di strano. E questo inconveniente non è apparso subito. All'inizio era normale, ma poi all'improvviso è scomparso. Reinstallare il terminale non ha aiutato. Dovrò controllare con un altro broker.

Sì, beh... Non ho capito il codice morse. Dovrò farlo uscire allo scoperto...

Forse dovremmo cercare errori nella logica e nel nostro codice?

 

Un consiglio. Sto ottimizzando, e diciamo che non ho bisogno di parametri, per esempio, ci sono movimenti lenti e veloci, e non ho bisogno di ottenere periodi tali di questi movimenti nei risultati dell'ottimizzazione che il periodo di quello veloce sia più lungo di quello lento.

Come posso "saltare" questo passo di ottimizzazione per condizione?

 
Alexey Viktorov:

Sì, beh... Non ho capito il codice morse. Dovrò farlo uscire allo scoperto...

Forse uno dovrebbe cercare gli errori nella logica e nel proprio codice?

Questo pezzo di codice è indipendente dall'algoritmo generale.

Ecco lo stesso blocco, ma funziona correttamente. Usa due operatori IF(), anche se ce n'è solo uno che può essere usato come descritto nel libro di testo. Questo dimostra il funzionamento scorretto dell'operatore IF()/.

//+------------------------------------------------------------------+
   if((cnt_OO>=2))
     {
      for(int h=OrdersTotal()-1; h>=0; h--)
        {
         if(OrderSelect(h,SELECT_BY_POS))
           {
            if((OrderMagicNumber()==Magic))
              {
               Nextstep  = NextStep;
               BaseNext  = OrderOpenPrice();
               LotsNext  = NormalizeDouble(OrderLots()*K,lotDigit);
               if(NewPB>0)
                  PBcloseON=true;
               Alert("Pospedny Order NEXT  ",OrderTicket());
               Alert("Otkritih orderov  ",cnt_OO);
               break;
              }
           }
        }
     }
   if((cnt_OO==1))
     {
      LotsNext=NormalizeDouble(Lots*Prikup,lotDigit);
      Alert("Otkritih orderov NEXT net ");
      Alert("Otkritih orderov  ",cnt_OO);
     }
//+------------------------------------------------------------------+
 
Amon1953:

Questo pezzo di codice è indipendente dall'algoritmo generale.

Ecco lo stesso blocco, ma funziona correttamente. Utilizza due operatori IF(), anche se uno potrebbe essere usato come descritto nel libro di testo. Questo dimostra il funzionamento scorretto dell'operatore IF()/.


Questa è solo una prova di un bug. Prima di parlare di operazioni errate, dovreste stampare i valori delle variabili usate negli operatori if() e confrontarli con i valori attesi.

E imparate come inserire il codice in modo che possa essere letto normalmente.

 
Alexey Viktorov:

Questo mostra solo che abbiamo un bug. Prima di dire che non funziona correttamente, dovreste stampare i valori delle variabili usate nelle istruzioni if() e confrontarli con i valori attesi.

E imparate come inserire il codice in modo che possa essere letto normalmente.

Ho appena copiato il testo del programma. Nel primo post si vede chiaramente che ci sono 5 ordini e il messaggio che non ci sono ordini come Next. this is the second third order etc.

Il programma è semplice come un'unghia, cnt_OO è il numero di ordini aperti, se c'è più di uno significa che c'è un ordine Prossimo, Questo fa parte del blocco per ripristinare i parametri in caso di fallimento e riavvio dell'EA

 
Amon1953:

Ho appena copiato il testo del programma. Nel primo post si vede chiaramente che ci sono 5 ordini e il messaggio che non ci sono ordini come Next. this is the second third order etc.

Il programma è semplice come un chiodo, cnt_OO è un numero di ordini aperti, se c'è più di uno significa che c'è un ordine Prossimo, Questo fa parte del blocco di recupero dei parametri in caso di fallimento e riavvio dell'EA

Dov'è la garanzia che sia così?

 
Amon1953:

Ho appena copiato il testo del programma. Nel primo post si vede chiaramente che ci sono 5 ordini e il messaggio che non ci sono ordini come Next. this is the second third order etc.

Il programma è semplice come un'unghia, cnt_OO è il numero di ordini aperti, se c'è più di uno significa che c'è un ordine Prossimo, Questo fa parte del blocco per recuperare i parametri in caso di fallimento e riavvio dell'EA

  1. Usa Alt+S per incollare il codice, o usa i pulsanti della barra di formato nel tuo post:



  2. La tua logica non funziona, non l'operatore condizionale if()
  3. Ho corretto il codice nel tuo post in modo normale per coloro che ti aiutano - rispettali per favore. La prossima volta la gente non cercherà di aiutare guardando le scrips che offri.
 
Artyom Trishkin:
  1. Usa Alt+S per incollare il codice, o usa i pulsanti della barra di formato sul tuo post:



  2. La tua logica non funziona, non l'operatore condizionale if()
  3. Ho corretto il codice nel tuo post in modo normale per coloro che ti aiutano - rispettali per favore. La prossima volta la gente non cercherà di aiutare guardando le scrips che offri.
Grazie per il consiglio. Non sono un programmatore molto esperto e uso uno stile che è comodo per me, non ho ancora imparato a portarlo ad uno stile comune su questo sito. - Zeitnote.
Motivazione: