Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 1127
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
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
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".
Quindi, di nuovo, questo è su mql5. E ne ho bisogno su mql4.
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 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)
come fare?
in modo che quando
OnDeinit(REASON_CHARTCHANGE)
Continuare normalmente senza resettare (ignorare completamente questa causa, è un pannello informativo con livelli)
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 inferioreBeh, 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 TFScrivere le impostazioni in un file e leggerle nell'init. Non c'è modo di bypassare deinit, non chiede il permesso.
Perché non bypassare il deinit scrivendo su un file, se possibile? ad esempio, in caso di deinizializzazione, avviare un'esecuzione con i parametri precedenti