MetaTrader 4 Build 529 beta rilasciato con un nuovo compilatore - pagina 82

 

komposter A quanto pare ho espresso male il mio punto :). Sei felice quando vedi che è "disponibile". Dopo che sono passato a una nuova build, invece di diminuire la gioia ho più speranza e fiducia nella prossima :) Beh, è così.... Ho cercato di esprimere le mie emozioni nel modo più corretto possibile.

Renat, grazie per la tua risposta. Siamo in attesa di ulteriori modifiche, speriamo che anche le mie osservazioni (almeno 5 lo sono già state) vengano prese in considerazione e non si debba rileggere tutto da capo.

 

Ho fatto in tutti i terminali (MT4/MT5) nella cartella Files una sottocartella MyCommon, li ho mappati tutti su un disco virtuale (il disco era impostato su autostart). // Ora questa cartella è visibile ovunque.

In questa cartella ho fatto una sottocartella Include (ora visibile ovunque).

In questa cartella (e sottocartelle) ho creato dei file include universali mql4/5 che sono accessibili in tutti i terminali contemporaneamente. // le direttive della famiglia #ifdef sono finalmente apparse e ora funzionano perfettamente.

Ora è davvero molto conveniente. // Lo consiglio a tutti.

MA :

Ho incontrato un problema con la modifica non sincrona dei file. // Sto modificando simultaneamente in MT4/ME4 e MT5/ME5, al fine di testare sia il codice mql4 che mql5 simultaneamente, mentre lo scrivo.

Il problema: Quando cambiate un file in uno degli editor, l'altro non nota i cambiamenti. Non è così. Non rileva, non raccoglie, e non segnala nemmeno un cambiamento di file "esterno" con una scelta "ricarica/ ignora".

Cioè perché il secondo reattore veda le modifiche, il file deve essere chiuso in esso e poi riaperto. Questo è estremamente scomodo.

Richiesta molto grande agli sviluppatori: si prega di fare "autodetection" e l'elaborazione della modifica esterna del file caricato in ME.

// Credo che una volta lo fosse, ma ha smesso di funzionare?

--

E un'altra domanda: perché non si possono definire i propri simboli per la compilazione condizionale? Ancora una volta, non è proprio una funzione completa. O forse non sto cercando abbastanza?

 
MetaDriver:

Ho fatto in tutti i terminali (MT4/MT5) nella cartella Files una sottocartella MyCommon, li ho mappati tutti su un disco virtuale (il disco era impostato su autostart). // Ora questa cartella è visibile ovunque.

In questa cartella ha fatto una sottocartella Include (ora anche visibile ovunque).

In questa cartella (e sottocartelle) creo i file include universali di mql4/5 a cui si può accedere in tutti i terminali contemporaneamente. // le direttive della famiglia #ifdef sono finalmente apparse e ora funzionano perfettamente.

Ora è davvero molto conveniente. // Lo consiglio a tutti.

MA :

Ho incontrato un problema con la modifica non sincrona dei file. // Sto modificando simultaneamente in MT4/ME4 e MT5/ME5, al fine di testare sia il codice mql4 che mql5 simultaneamente, mentre lo scrivo.

Il problema: Quando cambiate un file in uno degli editor, l'altro non nota le modifiche. Non è così. Non rileva, non raccoglie, e non segnala nemmeno un cambiamento di file "esterno" con una scelta "ricarica/ ignora".

In altre parole, perché il secondo reattore veda i cambiamenti, il file deve essere chiuso in esso e poi riaperto. Questo è molto scomodo.

Una grande richiesta agli sviluppatori: per favore, fate "autodetect" e gestite la modifica esterna del file caricato in ME.

// Mi sembra che lo fosse anche prima, ha solo smesso di funzionare?

Dove è scritto ifdef? Non riesco a trovarlo nell'aiuto MQL

 
MetaDriver:

1. Ho fatto in tutti i terminali (MT4/MT5) nella cartella Files una sottocartella MyCommon, li ho mappati tutti su un disco virtuale (ho messo il disco in autostart). // ora questa cartella è visibile ovunque.

In questa cartella ho fatto una sottocartella Include (anch'essa visibile ovunque ora).

In questa cartella (e sottocartelle) ho creato dei file include universali mql4/5 che sono accessibili in tutti i terminali contemporaneamente. // le direttive della famiglia #ifdef sono finalmente apparse e ora funzionano perfettamente.

Ora è davvero molto conveniente. // Lo consiglio a tutti.

MA :

2. Ho incontrato un problema con la modifica non sincrona dei file. // Sto modificando simultaneamente in MT4/ME4 e MT5/ME5, al fine di testare sia il codice mql4 che mql5 simultaneamente, mentre lo scrivo.

Il problema: Quando cambiate un file in uno degli editor, l'altro non nota le modifiche. Non è così. Non rileva, non raccoglie, e non segnala nemmeno un cambiamento di file "esterno" con una scelta "ricarica/ ignora".

Cioè perché il secondo reattore veda le modifiche, il file deve essere chiuso in esso e poi riaperto. Questo è estremamente scomodo.

Richiesta molto grande agli sviluppatori: si prega di fare "autodetection" e l'elaborazione della modifica esterna del file caricato in ME.

// Credo che prima ci fosse, ha solo smesso di funzionare?

1. A mio parere, è più conveniente e affidabile usare collegamenti simbolici, soft e hard link che un disco virtuale. Tuttavia, le opzioni del sistema operativo sono più affidabili del software.
2. Se il salvataggio automatico non vuole fare, allora il rilevamento delle modifiche da un editor esterno non farà.
 
MetaDriver:

Fatto in tutti i terminali (MT4/MT5) nella cartella Files una sottocartella MyCommon, mappati tutti su un disco virtuale

Intendi il link rigido?

Perché non in MQL4\ MQL5\? Perché in Files?

 
MetaDriver:

Ho fatto in tutti i terminali (MT4/MT5) nella cartella Files una sottocartella MyCommon, li ho mappati tutti su un disco virtuale (il disco era impostato su autostart). // ora questa cartella è visibile ovunque.

Ho fatto una sottocartella Include in questa cartella (ora visibile ovunque).

In questa cartella (e sottocartelle) ho creato dei file include universali mql4/5 che sono accessibili in tutti i terminali contemporaneamente. // le direttive della famiglia #ifdef sono finalmente apparse e ora funzionano perfettamente.

Ora è davvero molto conveniente. // Lo consiglio a tutti.

MA :

Ho incontrato un problema con la modifica non sincrona dei file. // Sto modificando simultaneamente in MT4/ME4 e MT5/ME5, al fine di testare sia il codice mql4 che mql5 simultaneamente, mentre lo scrivo.

Il problema: Quando cambiate un file in uno degli editor, l'altro non nota le modifiche. Non è così. Non rileva, non raccoglie, e non segnala nemmeno un cambiamento di file "esterno" con una scelta "ricarica/ ignora".

Cioè perché il secondo reattore veda le modifiche, il file deve essere chiuso in esso e poi riaperto. Questo è estremamente scomodo.

Richiesta molto grande agli sviluppatori: si prega di fare "autodetection" e l'elaborazione della modifica esterna del file caricato in ME.

// Credo che prima ci fosse, ha solo smesso di funzionare?


Zhunko:
1. A mio parere, è più conveniente e affidabile usare collegamenti simbolici, soft e hard link che un disco virtuale. Tuttavia, le opzioni del sistema operativo sono più affidabili del software.
2. Se non vogliono fare il salvataggio automatico, allora il rilevamento delle modifiche da un editor esterno non va bene.

komposter:

Intendi il link rigido?

Perché non in MQL4\MQL5? Perché in Files?

Posso avere un'illustrazione?
 
Barbarian:

Dove sta scritto ifdef? Non riesco a trovarlo nell'aiuto MQL

Era negli annunci(sugli aggiornamenti di MT5 di sicuro). Poi è stato implementato.

//\files\MyCommon\Include\StatBasket_01.mqh
//+------------------------------------------------------------------+
//|                                                StatBasket_01.mqh |
//|                                           © 2013, MetaDriver Lab |
//|                       https://www.mql5.com/ru/users/MetaDriver |
//+------------------------------------------------------------------+
#property copyright "© 2013, MetaDriver Lab"
#property link      "https://www.mql5.com/ru/users/MetaDriver"

#ifndef __MQL5__
    #property strict
#endif 

#ifdef _DEBUG
class CLogPrint  // дебаг версия лог-файла (расширенная)
  {
public:
                     CBebugLog(void);
                    ~CBebugLog(void);
  };
#else 
class CLogPrint  // релиз версия
  {
public:
                     CBebugLog(void);
                    ~CBebugLog(void);
  };
#endif 

class CSBasket
  {
public:
                     CSBasket(void);
                    ~CSBasket(void);
  };

--

Tutto questo funziona. Potete usarlo.

 
Zhunko:
1. A mio parere, è più conveniente e affidabile usare collegamenti simbolici, soft e hard link che un disco virtuale. Tuttavia, le opzioni del sistema operativo sono più affidabili del software.
2. Se il salvataggio automatico non vuole fare, allora il rilevamento delle modifiche da un editor esterno non farà.

1. Non capisco con i collegamenti soft / hard. Come farli, come usarli?

2. Vediamo. Non devi essere così categorico. Te l'ho detto, lo era (in ME5. l'editor diceva "file cambiato, ricaricare?")

 
komposter:

Intendi il link rigido?

Perché non in MQL4\MQL5\? Perché i file?

Non capisco bene il legame difficile. Ma deve essere così.

La ragione è in Files - perché i programmi mql possono essere scritti lì. Ne ho spesso bisogno per autogenerare inclusioni con alcuni Enum massicci o fonti di routine, dove la logica e/o i dati possono essere cambiati nel generatore di codice.

// Di solito non genero niente di complicato, ma spesso è necessario qualcosa di semplice e regolare (in termini di struttura) e molto di routine (come cinquanta variabili esterne, ad esempio i coefficienti delle reti neurali per l'ottimizzazione MT).

 
tara:

E si può con le illustrazioni?

Alexei, ho allegato un pezzo di codice sorgente. è sufficiente?

Non ho capito quali illustrazioni volete.

Qui c'è di più. questo è l'aspetto di una cartella virtuale in explorer:



E così si possono aggiungere percorsi alla mappatura dell'unità virtuale:


Motivazione: