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

 
Sergey Gritsay:

E ora leggete la normale documentazione di MT5, ora alcune delle vecchie funzioni funzionano esattamente come scritto in essa, poiché la documentazione di mt4 è obsoleta e ci sono molte cose non ancora sistemate.

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

Quindi, di nuovo, questo è su mql5. E ne ho bisogno su mql4.
 
Vitaly Muzichenko:

Beh, lo sono dal 1997)

Vedi, c'è un tick e con esso un segnale, e se ottieni un errore, deve essere elaborato. Elaborato e interrogato di nuovo, ma prima dell'interrogazione si può azzerare la variabile con l'errore, poi alla prossima interrogazione se c'è un errore, andrà di nuovo nella variabile, ma se non c'è 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".

Dal 1997, questo è il tempo! ) Probabilmente l'unica persona che mi capiva. Grazie.
 
Evgeniy Oshurkevich:
Quindi, di nuovo, questo è su mql5. E ne ho bisogno su mql4.
Per quanto riguarda questa funzione, non fa alcuna differenza. Ma se è di principio, allora leggete la F1.
 

Sto duplicando la mia domanda in questo thread dato che quello di mql5 non ha potuto aiutare - nessuno conosce la risposta.

Ho questa funzione e funziona nel mio Expert Advisor/Script

double maxLot(double Percent, string symbol, ENUM_ORDER_TYPE action=ORDER_TYPE_BUY)
  {
   double One_Lot=0.0;
   double price=0.0;
   double volume=0.0;
   double MinLot=SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN);
   double Free=AccountInfoDouble(ACCOUNT_FREEMARGIN);
   double Step=SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP);
   if(action==ORDER_TYPE_BUY)price=SymbolInfoDouble(symbol,SYMBOL_ASK);
   if(action==ORDER_TYPE_SELL)price=SymbolInfoDouble(symbol,SYMBOL_BID);
   if(!OrderCalcMargin(action,symbol,1.0,price,One_Lot))return(MinLot);
   if(One_Lot!=0 && Step!=0)volume = MathFloor(Free*Percent/100.0/One_Lot/Step)*Step;
   if(volume!=0)return(volume);
   return(MinLot);
  }

Domanda:come ottenere il massimo lotto possibile in un indicatore,OrderCalcMargin non funziona in un indicatore per qualche motivo? Ho provato a usareOrderCalcMargin ma non funziona in mt4.

Grazie!

 

come fare?

in modo che quando

OnDeinit(REASON_CHARTCHANGE)

Continuare normalmente senza resettare (ignorare completamente questa causa, è un pannello informativo con livelli)

 
trader781:

come fare?

in modo che quando

OnDeinit(REASON_CHARTCHANGE)

Continuare normalmente senza resettare (ignorare completamente questa causa, è un pannello informativo con livelli)

Non si può.
 
Vitalie Postolache:
Assolutamente no.

Beh, ci sono modi per aggirare questo problema.

Sono troppo pigro per stipare livelli nel codice di ogni strumento su 40 esistenti.

È più facile farlo automaticamente e cliccare il TF con i simboli come vuoi tu.

E allo stesso tempo, sto cercando un modo per specificare i valori di muving del TF superiore su quello inferiore
 
trader781:

Beh, ci sono modi per aggirare questo problema.

Sono troppo pigro per stipare livelli nel codice di ogni strumento su 40 esistenti.

È più facile renderlo automatico e cliccare il TF con i simboli come si vuole.

E allo stesso tempo, sto cercando un modo per specificare i valori di muving per i principali TF
Le impostazioni dovrebbero essere scritte in un file e l'inite dovrebbe essere letto. Non c'è modo di bypassare deinit, non chiede il permesso.
 
Vitalie Postolache:
Scrivere le impostazioni in un file e leggerle nell'init. Non c'è modo di bypassare deinit, non chiede il permesso.
Perché non bypassare la deinizializzazione scrivendo su un file, se possibile? Ad esempio, in caso di deinizializzazione, è possibile avviare un avvio con i parametri precedenti
 
trader781:
Perché non bypassare il deinit scrivendo su un file, se possibile? ad esempio, in caso di deinizializzazione, avviare un'esecuzione con i parametri precedenti
Non è quello che ho scritto sopra?