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

 
Quanto sono lontano da te
 
gente, potete dirmi per favore come fare i grafici nel terminale per salvare il markup dopo la riaccensione?
Ho salvato in formato csv, ma non ha funzionato
 
Seselio:

Есть условие для открытия ордера BUY. Открывается ордер, как сделать переход к SELL условию после закрытия BUY ордера?

if(High[1]-Close[1]>=NormalizeDouble(xbs1*_Point,_Digits))
   {
    int b_tik=OrderSend(_Symbol,OP_BUY,Lots,Ask,Slip,Low[2]-sl,High[1]+ tp,"",Magic,0,clrBlue)==true; //открытие ордера
      
       GlobalVariableSet("B_order",0); // Больше не ищем вход Buy

       //-----?????
       GlobalVariableSet("S_order",1); // Переходим к поиску Sell
       return;
   }
Esattamente come per Bai. La tua logica qui è incompleta anche per Bai, suggerirei che dovrebbe essere così:
if(GlobalVariableGet("B_order",1)) //ищем  вход Buy
if(High[1]-Close[1]>=NormalizeDouble(xbs1*_Point,_Digits))
   {
    int b_tik=OrderSend(_Symbol,OP_BUY,Lots,Ask,Slip,Low[2]-sl,High[1]+ tp,"",Magic,0,clrBlue)==true; //открытие ордера
      
       GlobalVariableSet("B_order",0); // Больше не ищем вход Buy

       //-----?????
       GlobalVariableSet("S_order",1); // Переходим к поиску Sell
       return;
   }
else if(GlobalVariableGet("S_order",1))// ищем  вход Sell
{Условие для SELL}
 

Sono totalmente confuso con questi bug, ho iniziato a scriverli e poi hanno iniziato ad andare di qua e di là. In breve:

Domanda: L'ho provato su demo con Alert e ho verificato come funziona. Ho fatto intenzionalmente nel mio EA l'ordine sbagliato cercando di aprirlo, ha ottenuto il codice di errore 4051, cioè ho impostato questa funzione GetLastError() prima di aprire un ordine e dopo che è stato aperto. Ce l'ho: 1 tick dall'inizio dell'EA, Error call--> 0 --> tentato di aprire un ordine con condizioni sbagliate --> Error call--> 4051, e quando il 2° tick è scattato la prima chiamata mostra già 4051 e il mio EA non invia altre richieste fino a quando non ho trattato con l'EA. La funzione GetLastError() chiama l'ultimo errore dal terminale o dal server e come azzerarlo? Voglio dire, se per esempio "errore generale" codice 2, e 5 minuti dopo il server funziona normalmente, il server mi informa che non c'è nessun errore. In breve, confuso in questa logica, aiuta chi può. Credevo di essere arrivato qui di recente a corrispondere qui, si scopre che ho capito male.

Справочник MQL4
Справочник MQL4
  • docs.mql4.com
Справочник MQL4
 
Evgeniy Oshurkevich:

Sono totalmente confuso con questi bug, ho iniziato a scriverli e poi hanno iniziato ad andare di qua e di là. In breve:

Domanda: L'ho testato su demo con Alert e ho verificato come funziona. Ho fatto intenzionalmente nel mio EA l'ordine sbagliato cercando di aprire, ha ottenuto il codice di errore 4051, cioè ho impostato questa funzione GetLastError() prima di aprire un ordine e dopo che è stato aperto. Ce l'ho: 1 tick dall'inizio dell'EA, Error call--> 0 --> tentato di aprire un ordine con condizioni sbagliate --> Error call--> 4051, e quando il 2° tick è scattato la prima chiamata mostra già 4051 e il mio EA non invia altre richieste fino a quando non ho trattato con l'EA. La funzione GetLastError() chiama l'ultimo errore dal terminale o dal server e come azzerarlo? Voglio dire, se per esempio "errore generale" codice 2, e 5 minuti dopo il server funziona normalmente, il server mi informa che non c'è nessun errore. In breve, confuso in questa logica, aiuta chi può. Credevo di essere arrivato qui di recente a corrispondere qui, si scopre che ho capito male.

Provate a resettare l'errore con la funzione ResetLastError();
 
Alekseu Fedotov:
Prova a resettare l'errore con ResetLastError();
Grazie
 

ECCEZIONE!!!!!!!!! Caro popolo! Non stupitevi di essere molestati dai neofiti!!! Cosa c'è nel motore di ricerca ???? Sono una specie di esperto qui da 2 settimane, avresti dovuto vedere la mia faccia quando ho deciso di controllare e scoprire di più su OrderSend() nel motore di ricerca!!!! Poveri neofiti. Bene, ok, nella barra degli indirizzi lo cambio in 4 invece di 5. Non sono autorizzato lì, ok, premo invio e sono tornato a mql5. Se non sono connesso a Mql4, il motore di ricerca non funziona.

E anche sul forum un sacco di gente intelligente scrive "a cosa serve il motore di ricerca?" o "guarda nel motore di ricerca", "siamo un po' pigri", ecc. senza offesa

 

Nella documentazione:

GetLastError

Restituisce il contenuto della variabile di sistema_LastError.

intGetLastError();

Valore restituito

Restituisce il valore dell'ultimoerrore che si è verificato durante l'esecuzione di un programma mql4.

Nota.

Dopo la chiamata della funzione, il contenuto della variabile _LastError viene cancellato.


È chiaramente scritto nella nota che _LastError è azzerato.

Leggiamo di più su_LastError.

int _LastError

La variabile _LastError memorizza il valore dell'ultimoerrore che si è verificato durante l'esecuzione del programma mql4. LafunzioneResetLastError()può azzerare il valore.

Potete anche usare la funzioneGetLastError() per ottenere il codice di errore.


Dice: poteteazzerare il valore con la funzioneResetLastError(). Perché dovrebbe resettare se dice che_LastError si azzera?

Ok, continuate a leggereResetLastError().

ResetLastError

Imposta il valore della variabile predefined_LastError a zero.

voidResetLastError();

Valore restituito

Nessun valore di ritorno.

Nota

GetLastError() cancella la variabile_LastError.

LafunzioneGetLastError()cancella la variabile_LastError.

Allora perché ho bisogno diResetLastError(); ?????

E come posso sapere in seguito quale errore si è verificato se c'è 0 dopo la seconda chiamata diGetLastError()? Perché cancella_LastError.

A proposito, nella demo oraGetLastError() mostra lo stesso errore ad ogni tick e non lo azzera.

Cioè, abbiamo avuto lo stesso errore nel 1° tick e nel 2° tick, il mio EA non invia la richiesta di apertura perché ha già visto l'ultimo errore

Ieri sera ho dormito un po', non ho bevuto da Capodanno.



_LastError - Предопределенные переменные - Справочник MQL4
_LastError - Предопределенные переменные - Справочник MQL4
  • docs.mql4.com
_LastError - Предопределенные переменные - Справочник MQL4
 
Evgeniy Oshurkevich:

Nella documentazione:

GetLastError

Restituisce il contenuto della variabile di sistema_LastError.



Ora leggete la normale documentazione di MT5, ora alcune vecchie funzioni funzionano esattamente come è scritto, perché la documentazione di mt4 è obsoleta e ci sono un sacco di cose non ancora fissate.

GetLastError

Restituisce il contenuto della variabile di sistema_LastError.

intGetLastError();

Valore restituito

Restituisce il valore dell'ultimo errore che si è verificato durante l'esecuzione del programma mql5.

Nota

Dopo la chiamata della funzione, il contenuto della variabile _LastError non viene cancellato. La funzioneResetLastError() deve essere chiamata per azzerare questa variabile.

Vedi anche

Codici di ritorno del server commerciale

 
Evgeniy Oshurkevich:

Ho più o meno dormito tutta la notte, non ho bevuto da Capodanno.

Beh, lo sono dal 1997)

Vedete, c'è un tick e con esso un segnale, e se si ottiene un errore, deve essere elaborato. Elaborate e interrogate di nuovo, ma prima dell'interrogazione potete azzerare la variabile con l'errore, poi la prossima interrogazione se c'è un errore, tornerà nella variabile, ma se non c'è un errore, sarà "0".

Non è necessario azzerare la variabile, ma se c'è un errore, restituirà un nuovo valore. In ogni caso, non dovresti essere interessato all'errore che hai avuto l'ultima volta nell'ultimo tick, dovresti elaborare solo quello che hai "ora".