Errori, bug, domande - pagina 2962

 
Roman:

Per renderlo caldo, allora usate File Mapping con la temporizzazione degli eventi.

Suggerimento - in puro MQL, pensa... Mi è appena capitato di pensare

 
A100:

Suggerimento - in puro MQL, pensa... Mi è appena capitato di pensare

Avvolgere la variabile in una classe e ottenere il descrittore dell'oggetto.
Qualsiasi modo per passare il descrittore all'Expert Advisor, ottenerlo direttamente dall'oggetto. ))
Non so, non ho provato, l'idea è venuta anche a me. Ma non sono un fan delle classi, userei la mappatura.
Tutto è disponibile in WinApi standard.

Документация по MQL5: Основы языка / Типы данных / Указатели объектов
Документация по MQL5: Основы языка / Типы данных / Указатели объектов
  • www.mql5.com
Указатели объектов - Типы данных - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Roman:

Si crea una variabile int nell'indicatore, la si inizializza e vi si memorizza il numero.
Nell'indicatore definire una funzione personalizzata che restituisca questa variabile.
Definire la funzione con la parola chiave export.
Importa questa funzione nell'Expert Advisor da name_indicator.ex4
Chiama la funzione quando serve.
Non ho misurato la velocità.

Questo schema non sembra funzionare. Mostra un esempio elementare, per favore.

 
Nikolai Semko:

Se usare user32.dll non è critico, ecco un'altra opzione. Non ricordo nulla delle misure, ma ho scritto qui sotto che sembra funzionare velocemente. Inoltre hai chiesto lì - perché ho bisogno di velocità :))
soluzione è universale (posso usarla anche tra terminali), non guidata da eventi. Dovrete lavorare con il timer. Tuttavia, il tempo minimo tra gli eventi inOnChartEvent non può essere inferiore a 1/64 di secondo.

Grazie, ma non funziona, perché la seguente situazione è possibile.

Expert1 ed Expert2 leggono i dati dall'Indicatore1, Expert3 legge i dati dall'Indicatore2.


Il modello event-driven non è necessario. Cioè, l'Expert Advisor deve essere in grado di leggere il numero solo quando ne ha bisogno. Non ha bisogno di cogliere il momento in cui l'indicatore cambia il numero. Quindi, il problema è molto semplice nella sua essenza.


Nel linguaggio delle variabili globali, la soluzione è la seguente

Indicatore:

GlobalVariableSet(IndividualName, Number);


Consulente esperto:

Number = (int)GlobalVariableGet(IndividualName);


Con questa implementazione, la lettura è terribilmente lenta. Qualche ora di osservazione della variante su Resources mostra che è circa 100 volte più veloce.

 
A100:

Suggerimento - in puro MQL, pensa... Mi è venuto in mente per caso.

Aspetterò una soluzione.

 
fxsaber:

Grazie, ma non va bene, perché questa è una situazione possibile.

Expert1 e Expert2 leggono i dati dall'Indicatore1, Expert3 legge i dati dall'Indicatore2.

Potete mettere un piccolo array di int nella stringa, e poi "dividere e conquistare".

 
Nikolai Semko:

Potete mettere un piccolo array di int nella stringa, e poi "dividere e conquistare".

Indicatore1 e Indicatore2 devono poi essere sincronizzati in qualche modo per poter scrivere entrambi i numeri in una stringa comune.

Questa è una soluzione molto complessa.

 
fxsaber:

Indicatore1 e Indicatore2 devono poi essere sincronizzati in qualche modo per poter scrivere entrambi i numeri sulla stessa linea comune.

Questa è una soluzione molto complessa.

Due indicatori e un EA su un solo grafico?

 
fxsaber:

Indicatore1 e Indicatore2 devono poi essere sincronizzati in qualche modo in modo che entrambi i numeri possano essere scritti sulla stessa linea comune.

Questa è una soluzione molto complessa.

La funzione GlobalVariableSetOnCondition è stata inventata da tempo per la sincronizzazione
Документация по MQL5: Глобальные переменные терминала / GlobalVariableSetOnCondition
Документация по MQL5: Глобальные переменные терминала / GlobalVariableSetOnCondition
  • www.mql5.com
GlobalVariableSetOnCondition - Глобальные переменные терминала - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Slava:
La funzione GlobalVariableSetOnCondition è stata inventata molto tempo fa per sincronizzare

Ne sono consapevole, so come usarlo. Cerco di allontanarmi da quelli globali, perché sono terribilmente lenti.

Motivazione: