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

 

Aggiungo queste righe al codice sorgente dell'indicatore:

#property version             "1.00"
#property description         "This indicator looks for two consecutive fractal and puts signal pointers"
#property description         "Flag DrawArrowSig : true = Set signal arrow, false = No set signal arrow"
#property icon                "\\files\\FindTwoFractals32x32.ico";

Questo è ciò che abbiamo alla fine:


Da qui la domanda:

  1. È possibile utilizzare le risorse negli indicatori?
  2. Il percorso del file icona "\files\FindTwoFractals32x32.ico" è specificato correttamente ; se la posizione attuale del file è D:\NewMT4\MQL4\files e il terminale con ME è lanciato /portable
  3. Quale dimensione in pixel è accettabile per un'icona?
Grazie.
 
artmedia70:

Aggiungo queste righe al codice sorgente dell'indicatore:

Questo è ciò che abbiamo alla fine:


Da qui la domanda:

  1. È possibile utilizzare le risorse negli indicatori?
  2. Il percorso del file icona "\files\FindTwoFractals32x32.ico" è specificato correttamente ; se la posizione attuale del file è D:\NewMT4\MQL4\files e il terminale con ME è lanciato /portable
  3. Quale dimensione in pixel è accettabile per un'icona?
Grazie.


1. è possibile. cambieremo la finestra alla stessa dimensione di MT5

2. Guarda "File - Open data directory". Qui è dove il percorso sarà letto da

3. è meglio usare il set completo (diverse icone in un file) da 16x16 a 64x64 (128x128) file .ico. Presto i programmi saranno visualizzati con le loro icone native direttamente nell'interfaccia del sistema operativo.

Puoi anche leggere di più sulle risorse:

 

Hai fatto un trucco molto comodo quando crei parametri esterni e di ingresso, per sostituire la variabile con la sua descrizione dopo //.

È possibile sostituire le descrizioni delle funzioni personalizzate, ora faccio un'inizializzazione vuota di una variabile di tipo stringa nelle mie funzioni per vedere tutti i parametri dei valori passati

 
double  iBands(
   string       symbol,           // имя символа
   int          timeframe,        // таймфрейм
   int          period,           // период
   int          deviation,        // отклонение
   int          bands_shift,      // сдвиг относительно цены
   int          applied_price,    // тип цены
   int          mode,             // индекс линии
   int          shift             // сдвиг
   );
У deviation тип double должен быть.
 

La maggior parte del problema si risolve nominando esplicitamente le variabili nel prototipo. Cioè, non typ1, typ2, ma transaction_type, trade_operation, ecc.

Se ci sono valori enumerati, è meglio descriverli con enum, che poi permette la sostituzione automatica durante la modifica.

 
Renat:
Stiamo portando tutto nella stessa vista per il bene della compatibilità UAC. La migrazione delle directory nella build 534 è completa.

Cioè c'è più di una build 534? La domanda si pone da sola, perché ho la build 534, il terminale è installato non in X:\Program Files (x86) e non in X:\Program Files, OS Windows 7, diritti di amministratore di sistema, nel caso in cui ho impostato l'accesso completo sulle directory e sottodirectory del terminale, ma "spazzatura" è ancora creato in X:\Users\xxx\AppData\Roaming\MetaQuotes\. Allo stesso tempo viene creata anche la "spazzatura" in X:\ProgramData\MetaQuotes. Nella compilazione 529 con tutto quanto menzionato sopra, la spazzatura in X:Users\xxx\AppData\Roaming\MetaQuotes\ non è stata creata.

Dimenticavo, il parametro /portable è attivo.

 
Cos'è questo misterioso parametro "/portable"? Dove dovrebbe essere incluso? O non lo è?
 
Zhunko:
Cos'è questo misterioso parametro "/portable"? Dove dovrebbe essere incluso? O no?
Il parametro avvia forzatamente il terminale nella sua sandbox ed è abilitato all'avvio del terminale o di unitor. In teoria, dovrebbe impedire al programma di creare spazzatura nel sistema. Ho creato un file batch - start terminal.exe /portable
 
Barbarian:

Cioè c'è più di una build 534? La domanda si pone da sola, perché ho la build 534, Terminal è installato non in X:\Program Files (x86) e non in X:\Program Files, OS Windows 7, diritti di amministratore di sistema, nel caso in cui ho impostato l'accesso completo sulle directory e sottodirectory di Terminal, ma "spazzatura" è ancora creato in X:\Users\xxx\AppData\Roaming\MetaQuotes\. Allo stesso tempo viene creata anche la "spazzatura" in X:\ProgramData\MetaQuotes. Nella build 529 con tutto ciò che è stato menzionato sopra, la spazzatura in X:Users\xxx\AppData\Roaming\MetaQuotes\ non è stata creata.

Dimenticavo, il parametro /portable è abilitato.

Costruirne uno.

Le applicazioni a 32 bit su Windows a 64 bit sono installate esclusivamente in Program Files (x86) - questo è il requisito di compatibilità di Microsoft.

Le directory di dati nell'area Users/AppData non sono più spazzatura, e non più raccomandazioni di Microsoft (di cui tutti gli sviluppatori non si sono preoccupati per molti anni), ma la dura verità della vita. Nei sistemi operativi più recenti, Microsoft ha fatto in modo che tutti lavorino correttamente, perché non c'è altro modo per far fronte all'UAC. Nel mercato di massa questo è l'unico modo rimasto. Pensate che sia come avere UAC abilitato ovunque e non essere mai disabilitato.

Per forzare il terminale a salvare la maggior parte dei dati in una directory locale, o per lavorare in modalità portatile/trasportabile (ad esempio su una flash), si dovrebbe usare il flag /portable. Ma questo non si applica ancora alla memorizzazione di dati generali non personalizzati in Users/AppData.

 
Barbarian:
Il parametro forza il terminale a funzionare nella sua sandbox ed è abilitato quando il terminale o l'unicast è avviato. Si suppone che impedisca al programma di creare spazzatura sul sistema. Ho creato un file batch - start terminal.exe /portable
Strano... Non dovrebbe essere il default, come lo era una volta?