Domande da un "manichino" - pagina 70

 
Expert:

Salve. Puoi dirmelo per favore. Perché gli ordini e le compravendite hanno un biglietto ma le posizioni no?

E qual è la differenza tra un biglietto e un identificatore?

RTFM
 
sergeev:
RTFM
))))))))))
 
sergeev:
RTFM
Oh... È troppo grande per trovarci rapidamente le informazioni necessarie
 
Expert:
Oh... È troppo grande per trovare rapidamente le informazioni necessarie
E si prende il suo tempo. )) Dovete studiarlo. E poi sarà molto facile e veloce trovare molte risposte alle vostre domande. Dai un'occhiata alla sezione Funzioni di trading per la tua domanda.
Документация по MQL5: Торговые функции
Документация по MQL5: Торговые функции
  • www.mql5.com
Торговые функции - Документация по MQL5
 
rlx:

Chiamare funzioni importate dalla libreria ex5.

Spiegare per favore. Leggi https://www.mql5.com/ru/docs/runtime/imports

Le librerie di sistema (DLL) sono caricate dalle regole del sistema operativo. Se la libreria è già caricata (ad esempio da un altro Expert Advisor, o anche da un altro terminale client, che gira in parallelo), allora il riferimento è alla libreria già caricata.

Come vengono caricate le librerie ex5?Se la libreria è già caricata (ad esempio da un altro Expert Advisor e anche da un altro terminale client che gira in parallelo),

E ancora: come far caricare una sola istanza della libreria ex5.

E altri EA si collegheranno solo a questa istanza.

Ho fatto una biblioteca.

#property library
static int      i=0;
int lib[10 000 000]; /// разделил пробелами для наглядности
int Get(void) export {return(i++);}

Ho creato un Expert Advisor, che include la libreria.

#import "lib.ex5"
  int Get(void);
#import
void OnTick(){}

1. Non viene caricato nessun Expert Advisor. Il processo terminal.exe è di 91.000 KB.

2. Collegare un Expert Advisor a EURUSD. Processo Terminal.exe -- 131 000 KB. (+41 MB).

3. Collego lo stesso Expert Advisor (inoltre) a GBPUSD. processo terminal.exe - 171 000KB.(+41MB).

Come per mezzo di MT5 solo (attraverso classi o librerie o script, EAs, ecc.) creare accesso a dati specifici (che cambieranno dinamicamente) congiuntamente?

PS// Ho provato a fare entrambe le cose

static  int lib[10 000 000]
Comunque, un'istanza diversa della libreria viene caricata per ogni EA.
 

rlx:

Carica ancora un'istanza di libreria diversa per ogni EA.

Potrebbe essere possibile implementare questo con variabili terminali globali. Cioè, entrambe le istanze usano le variabili globali del terminale per i calcoli.
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
 
rlx:

Ancora: come posso fare in modo che venga caricata una sola istanza di ex5.

E gli EA successivi si collegheranno solo a questa istanza.

Ho fatto una biblioteca.

Ho creato un Expert Advisor che include questa libreria.

1. Non viene caricato nessun Expert Advisor. Il processo terminal.exe è di 91.000 KB.

2. Collegare un Expert Advisor a EURUSD. Processo Terminal.exe -- 131 000 KB. (+41 MB).

3. Collego lo stesso Expert Advisor (inoltre) a GBPUSD. processo terminal.exe - 171 000KB.(+41MB).

Come per mezzo di MT5 solo (attraverso classi o librerie o script, EAs, ecc.) creare accesso a dati specifici (che cambieranno dinamicamente) congiuntamente?

PS// Ho provato a fare entrambe le cose

Carica ancora un'istanza di libreria diversa per ogni EA.

Penso che le variabili globali del terminale possano aiutarvi, o scrivere i dati in un file
 
tol64:
Forse può essere implementato con variabili terminali globali. Cioè, entrambe le istanze usano variabili terminali globali per i calcoli.
sergey1294:
Penso che le variabili globali del terminale possano aiutarvi, o scrivere i dati in un file

Grazie per il suggerimento.

Forse ci sono altri modi.

 
rlx:

Grazie per il suggerimento.

Forse ci sono altri modi.

Penso che non ci siano altri modi per utilizzare gli stessi dati con diversi EA, script e indicatori
 
sergey1294:
Penso che non ci siano altri modi di utilizzare gli stessi dati da diversi Expert Advisors, script e indicatori

Vorrei poterlo fare.

Per esempio, ho inventato una tale variante. Non può essere implementato attraverso variabili globali.

consulente.ex5

struct Info
  {
   uint      id;
   uint   info1;
   uint   info2;
   double info3;
  };
Info   test;
void OnTick()
  {
//---
   test.info3 = 78;
  }
bool  GetInfo(Info& massiv[]) export
  {
   ArrayResize(massiv, 10);
   massiv[0].id = 123;
   massiv[0].info1= 56;
   massiv[0].info3=test.info3;
   return(true);
  }

trader.ex5

struct Info
  {
   uint      id;
   uint   info1;
   uint   info2;
   double info3;
  };
#import "advisor.ex5"
  bool  GetInfo(Info& massiv[]);
#import
void OnTick()
  {
   Info req[];
   GetInfo(req);
   Print(req[0].info3);
  }

Passare l'array!!! strutture!! ad un altro Expert Advisor che riempie questo array.

Questo codice funziona correttamente. MA trader.ex5 non si collega a un advisor.ex5 già in esecuzione, ma crea un'altra istanza diadvisor.ex5.

Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
Motivazione: