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

 
Maxim Kuznetsov:

anche il compilatore evidenzierà "il risultato di OrderSelect deve essere controllato" nel primo caso ;-)

Se si cambia per il primo if (!OrderSelect(...)) continue; allora le opzioni sono identiche.

Nel primo il codice è visivamente lineare, nel secondo sembra una scala. Preferisco il primo, è più facile da leggere e in generale l'aspetto delle schede logiche profonde {{{{ }}}} suggerisce che è il momento di cambiare qualcosa :-)

Grazie. Scrivere in scala influisce sulla velocità del codice? Per me è più facile capire la scrittura scaglionata.

 
novichok2018:

Grazie. La registrazione a scale influisce sulla velocità di esecuzione del codice? Per me è più facile capire la scrittura a scale.

È l'algoritmo che influenza la velocità di esecuzione in primo luogo. E come lo rappresenti nel codice non ha molta importanza.

Non è a questo che si pensa.

Si scrive il codice in modo da poterci lavorare in seguito. Quindi scrivete come volete e non disturbate la vostra mente con problemi che non incontrate nella realtà.

Beh, non avete problemi di velocità che dovete evitare con trucchi e particolarità di codifica. Semplicemente garantito, non è così.

Quando (cosa improbabile) appariranno, allora ottimizzerete le prestazioni.

 
Maxim Kuznetsov:

La velocità di esecuzione è influenzata principalmente dall'algoritmo. E come lo rappresentate nel codice non è così importante.

Non è a questo che stai pensando.

Tu scrivi del codice in modo da poterci lavorare in seguito. Quindi scrivete come volete e non disturbate la vostra mente con problemi che non incontrate nella realtà.

Beh, non avete problemi di velocità che dovete evitare con trucchi e particolarità di codifica. Garantito, non è così.

Quando (cosa improbabile) ottimizzerete il vostro codice.

Grazie mille! Molto comprensibile.

 
È possibile nelle vecchie cartelle del programma mt4 lavorare ancora su XP vindos lì e installato, se sì come.
 
Per favore aiutatemi con una domanda: https://www.mql5.com/ru/forum/160683/page833#comment_11585085
Любые вопросы новичков по MQL4, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4, помощь и обсуждение по алгоритмам и кодам
  • 2019.05.06
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Alexander Layzerevich:
Per favore aiutatemi con questa domanda: https://www.mql5.com/ru/forum/160683/page833#comment_11585085

Dubito che vi aiuterà, ma questo è tutto:

- Hai preso una parte del codice da MT5 e stai cercando di "imbullonarlo" a MT4, non è così che gli indicatori sono chiamati in MT4

- Non hai dichiarato correttamente l'intestazione della funzione

- MT4 non ha la funzione integrata CopyBuffer()

Questo non funzionerà in generale, cercate altre opzioni per aggiungere altre parti di codice - la sintassi di MQL4 e MQL5 è simile al 95%, ma non si può incautamente copiare parti di codice tra le piattaforme

 
Igor Makanu:

Dubito che vi aiuterà, ma questo è tutto:

- Hai preso del codice da MT5 e stai cercando di "imbullonarlo" a MT4, non è così che gli indicatori sono chiamati in MT4

- Non hai dichiarato correttamente l'intestazione della funzione

- MT4 non ha la funzione integrata CopyBuffer()

la sintassi di MQL4 e MQL5 è simile al 95%, ma non è possibile copiare incautamente sezioni di codice tra le piattaforme

Scusa, ho dimenticato di specificare il codice per MT5

Semplicemente non chiama la funzione Deviation(int kanal).

Volevo chiedere come farlo correttamente?

 
Igor Makanu:

eseguire un esempio uno-a-uno dall'articolohttps://www.mql5.com/ru/articles/18

Come opzione, avete compilato un progetto per dll a 64 bit, il terminale MT4 è a 32 bit, è necessario configurare e compilare il progetto per .dll a 32 bit

Sto facendo domande anche lì, ho provato gli esempi proposti lì, infatti ho postato foto con esperimenti. Beh sì, qualcosa c'è con queste versioni, normalmente tutto questo dovrebbe essere nell'aiuto, come collegare quali sfumature. Mi è stato dato alcuni link con codici, ho aperto queste classi e li ha chiusi, in generale beffa di informazioni, no quello che vuoi e fare. Beh, scusatemi, tornerò su questo argomento dopo 20 anni di esperienza di programmazione. Come faccio a sapere che la compilazione è per 64, come faccio a scoprirlo?

 
Seric29:

Come faccio a sapere che la dll è compilata per 64?

Guarda le proprietà del progetto in Visual Studio, ci dovrebbe essere un'opzione per quale piattaforma compilare la dll - MT4 ha bisogno di codice a 32 bit

PS: google trova l'impostazione VS

 
Igor Makanu:

Dubito che vi aiuterà, ma questo è tutto:

- Hai preso del codice da MT5 e stai cercando di "imbullonarlo" a MT4, non è così che gli indicatori sono chiamati in MT4

- Hai dichiarato un'intestazione di funzione sbagliata

- MT4 non ha la funzione integrata CopyBuffer()

la sintassi di MQL4 e MQL5 è simile al 95%, ma non è possibile copiare incautamente sezioni di codice tra le piattaforme

Avete i seguenti frammenti di codice?

Forum sul trading, sistemi di trading automatico e test di strategia.

Qualsiasi domanda, aiuto e discussione su algoritmi e codici per i principianti di MQL4

Alexander Layzerevich, 2019.05.06 17:21

Sto cercando di ricevere i dati dell'indicatore in MT5 utilizzando questa funzione:

//************************************************************************************************/
double Envelopes(string symb, ENUM_TIMEFRAMES TF_1, int period, int method, int shift, int price,double Deviation(ENUM_TIMEFRAMES TF_2, int kanal), int buff, int index)
{
  double buf[1];
  int handle=iEnvelopes(Symbol(), TF_1, period, method, shift, price, Deviation(TF_2, kanal), buff);
   if(handle<0)
   {
    Print("Failed to create handle ATR, Error: ",GetLastError());
    return(WRONG_VALUE);
   } else
   {
    if(CopyBuffer(handle,0,index,1,buf)<0)
    {
     Print("Failed to copy data from the indicator ATR, Error: ",GetLastError());
     return(WRONG_VALUE);
    }
   }
   return(buf[0]);
}
//************************************************************************************************/

Ricevo l'errore :


Si prega di consigliare come correggere il codice per MT5

Evidenziato non è diverso da una dichiarazione di funzione. Si scopre che una funzione è dichiarata nei parametri di ingresso della funzione.