Errori, bug, domande - pagina 2442

 
fxsaber:

Cosa cambierà?

Per quanto ho capito il problema, l'hash dell'eseguibile non può essere cambiato perché è usato per l'ottimizzazione

Ecco perché suggerisco

int Array[] = {123};

metterlo in una libreria di collegamento e ricompilarlo dopo un'ottimizzazione riuscita - non ho controllato, ma sembra che le librerie mql siano collegate a runtime (non alle risorse)

 
Igor Makanu:

Per quanto capisco il problema, non si può cambiare l'hash dell'eseguibile

Non capite il problema.

L'EA dovrebbe generare un nome di file diverso se il suo EX5 è cambiato.

 
fxsaber:

Non capite il compito.

L'EA dovrebbe formare un nome di file diverso, se il suo EX5 è cambiato.

Propongo di cambiare la libreria, se volete 2 librerie, collegatele e usate un nome diverso

questo tipo di manipolazione:

link_library.mq5 :

#import "lib.ex5"
int value_array();
#import
//+------------------------------------------------------------------+
int OnInit()
  {
   Print("Array = ",value_array());
   return(INIT_SUCCEEDED);
  }

libreria lib.mq5 :

int Array[] = {123};
 int value_array() export
   {
    return(Array[0]);
   }
in MQL la libreria è essenzialmente poco diversa da un file eseguibile - non ci sono restrizioni, può anche scriversi in un file e ... tutto può come un MQL - programma
 
Igor Makanu:

Suggerisco di cambiare la libreria, se vuoi due librerie, collegale e usa un nome diverso

Ecco come manipolare:

esperto link_library.mq5 :

lib.mq5 libreria :

In MQL, la libreria non è essenzialmente molto diversa da un file eseguibile - non ci sono restrizioni, può anche scriversi nel file e ... tutto può come un MQL - programma

Non capisco perché il compito non è chiaro: se l'EA è cambiato - cambia il nome del file.

 
fxsaber:

Non capisco perché il compito non è chiaro: se l'EA è cambiato - cambia il nome del file.

Non capisco affatto il problema.
Includete come risorsa il file sorgente del file .mq5 dell'Expert Advisor stesso e prendete l'hash da esso.

 
I commenti non relativi a questo argomento sono stati spostati in "Tutte le domande dei neofiti su MQL4, aiuto e discussione su algoritmi e codici".
 
Sergey Dzyublik:

Non capisco affatto il problema.
Includere come risorsa il sorgente del file .mq5 dell'Expert Advisor stesso e prenderne l'hash.

Quindi non ci sarà alcun accesso (byte per calcolare l'hash) all'EX5 abilitato.

 
fxsaber:

Quindi non ci sarà alcun accesso (byte per calcolare l'hash) all'EX5 abilitato.

Tutto funziona:

#resource "\\Experts\\Advisors\\ExpertMACD.ex5" as uchar ex5_data[];


Cosa c'entra ex5 se stai parlando di cambiamenti di codice che sono meglio tracciati da .mq5?
Sembra che tu non capisca cosa stai cercando in definitiva.
 
Sergey Dzyublik:

Cosa c'entra ex5 se stai parlando di modifiche al codice che sono meglio tracciate da .mq5?

Sembra che lei stesso non capisca di cosa ha bisogno in definitiva.

Beh, l'ho scritto, come posso elaborarlo?

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

Bug, bug, domande

fxsaber, 2019.04.23 06:15

Ho questo EA.

void OnDeinit( const int )
{
  int Array[] = {123};
  
  FileSave((string)MQLInfoInteger(MQL_PROGRAM_HASH), Array);
}


Quando faccio un passaggio, scrive un file con lo stesso nome. Questo è corretto.


Poi ricompilo scrivendo il numero 456 invece di 123.

Dopo di che, ogni passaggio scriverà il corrispondente e lo stesso file, ma con un nome diverso.


Questo è il tipo di funzionalità che dobbiamo implementare in qualche modo. Cioè, se EX5 è cambiato, cambieranno anche i nomi dei file che crea.


SZY L'uso della macro __DATETIME__ non funzionerebbe.


Ho un mq5 che crea un file con Nome1. Ho cambiato qualche numero in mq5. Name2 dovrebbe essere generato. Cambio qualcos'altro nel codice - Name3. E così via.

 
fxsaber:

Beh, l'ho scritto, come posso essere più specifico?


Ho mq5, che crea un file con Nome1. Ho cambiato qualche numero in mq5. Dovrebbe essere generato Name2. Cambio qualcos'altro nel codice - Name3. E così via.

Collega il codice sorgente in formato .mq5 come risorsa e leggi l'hash dal contenuto del codice sorgente.
Se cambiate il codice sorgente, la compilazione prenderà automaticamente il nuovo codice sorgente come risorsa e calcolerà un nuovo hash.
Cosa c'è di così difficile?