[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 21

 
rigonich:


Avetela bandiera come variabile locale?

P.S. Quando non è del tutto chiaro cosa sta succedendo, è meglio stampare i valori prima e dopo la funzione o la dichiarazione che state controllando, per vedere esattamente come cambiano. A volte i valori di input non sono quello che ci aspettiamo che siano, e trovare dove e perché diventano quello che sono è molto più facile nel codice che indovinare perché il programma non funziona correttamente.


oh merda...esattamente...se prendi int flag,flagg; fuori dalla funzione Start...allora tutto funziona in una volta sola :)) un altro stupido errore da principiante :) GRAZIE!

 
lottamer:

oh merda...giusto...se togliete int flag,flagg; dalla funzione Start...allora tutto funziona contemporaneamente :)) un altro stupido errore da principiante :) GRAZIE!


Non sono solo i principianti che possono fare questi errori, per esempio, si può dichiarare distrattamente una variabile locale con un nome che la variabile globale ha già. Il compilatore non genera errori in questo caso, ma il programma non funziona "correttamente". La cosa principale è essere in grado di rilevare tali errori.
 

Sto usando questa funzione per limitare il numero di ordini scambiati simultaneamente, ma in realtà il numero di ordini è 1 in più del numero impostato nella variabile MaxOrders. Quale può essere la ragione?

   for(i=0; i<=OrdersTotal(); i++)
    {
     if(OrderSelect(i,SELECT_BY_POS)==true)
      {
       if(OrderMagicNumber()==ExpertID)
        {
         if(i>=MaxOrders)
          return;
        }
      }
    }
 
silhouette:

Sto usando questa funzione per limitare il numero di ordini scambiati simultaneamente, ma in realtà il numero di ordini è 1 in più del numero impostato nella variabile MaxOrders. Quale può essere la ragione?


Registriamo gli ordini a partire da zero. Ecco perché si presenta così:

 for(i=0; i<=OrdersTotal()-1; i++)
    {
     if(OrderSelect(i,SELECT_BY_POS)==true)
      {
       if(OrderMagicNumber()==ExpertID)
        {
         if(i>=MaxOrders)
          return;
        }
      }
    }
 
Roman.:

La contabilità degli ordini viene da zero. Perciò è così:



Grazie
 
Roman.:

Ecco uno sguardo a come conta lo stocastico da manuale.





Grazie!!!
 

Come può essere, ho un EA e funziona. Compra, vende ... tutte le fermate chiare e takei. ma la perdita è molto, quindi decido di prescrivere un altro filtro di tendenza. due medie - veloce e lento - su un TF. molto grande su H4.

L'Expert Advisor dovrebbe assomigliare a questo

se (....)

{....

...}

ancora una volta - tutto funziona!

e qui ho messo un filtro (prima di questo definisco MA1=iMA...) e quasi in cima all'albero degli if (la seconda condizione - e la prima - time if ( Hour()>=7 && Hour()<20)

se (....)

se MA1>MA2

{

{....

...}}

nessun errore.

Ma il 95% dei commerci sono tagliati fuori! E su H4 l'immagine dice il contrario - ci devono essere molti scambi, perchéMA1>MA2 viene eseguito per settimane!

qualcuno può spiegare cosa c'è di sbagliato?

 

Quando ci sono molte linee sul grafico (orizzontale), le etichette (prezzo della linea) sulla scala dei prezzi da queste linee "intasano" l'intera scala.

Cos'è questo parametro "coda" con il prezzo della linea? Ed è possibile disabilitarlo in qualche modo? (Non ho nemmeno trovato un modo manuale, ma ho bisogno di un modo software)

E metterò solo il prezzo nel nome della linea - è sufficiente.

 
Aiuto per sapere cos'è l'errore "EURUSD,M30: uninit reason 5" quando l'advisor funziona spesso quando ha bisogno di aprire una nuova posizione scrive questo errore e l'intero sistema si rompe (( se c'è qualche codice per risolvere questo errore mandatemi un esempio.
 
Frostr:
Aiutatemi a controllare cos'è l'errore "EURUSD,M30: uninit reason 5" quando il mio consulente è in esecuzione spesso quando ha bisogno di aprire una nuova posizione scrive questo errore e l'intero sistema si rompe (( se c'è qualche codice per aiutare a correggere questo errore per favore postate un esempio


Codici dei motivi restituiti da UninitializeReason(). Può avere uno dei seguenti valori:

Costante .ValoreDescrizione
0Lo script ha completato il suo lavoro in modo indipendente
RAGIONE_REMOVE1Il programma è stato cancellato dal grafico
MOTIVO_RECOMPILAZIONE2Programma ricompilato
MOTIVO_CAMBIAMENTO GRAFICO3Il simbolo del grafico o il periodo è stato cambiato
MOTIVO_CHARTCLOSE4Il grafico è chiuso
RAGIONE_PARAMETRI5I parametri di input sono stati cambiati dall'utente
CONTO REASON_ACCOUNT6Un altro account è stato attivato