Errori, bug, domande - pagina 2615

 

In questo momento negli indicatori personalizzati MT5 il ridimensionamento delle frecce non funziona. Si prega di correggere o consigliare come cambiare.

PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_ARROW);
PlotIndexSetInteger(0, PLOT_ARROW, 233);
PlotIndexSetInteger(0, PLOT_LINE_WIDTH, 2); //1,2,3 - размер не меняется
PS. Sono riuscito a capire il motivo. Anche interessante. MT5, a differenza di MT4, scala arbitrariamente la dimensione delle frecce al minimo quando si esegue lo zoom fuori dalla larghezza del grafico (Zoom Out).
 
Puoi dirmi come scoprire l'handle del tuo terminale da un EA che è in esecuzione nel Tester, usando WinAPI?
 
fxsaber:
Puoi dirmi come scoprire l'handle del tuo terminale da un EA che è in esecuzione nel Tester usando WinAPI?

Potrei sbagliarmi, ma penso che tu stia cercando un PID di processo, quindi cerca su Google "winapi id del tuo programma"

ZS: GetCurrentProcessId

 
Igor Makanu:

Potrei sbagliarmi, ma sembra che tu stia cercando il PID del processo, quindi cerca su Google la query "winapi id del tuo programma"

Ho bisogno che un EA in esecuzione su Agent sia in grado di ottenere l'handle del terminale da cui è stato inviato per essere eseguito in Agent.

 
 return a++;

Si scopre che non è possibile farlo :( ++ non funziona in questo caso, anche se in una forma più complessa restituisce "a" e poi in qualche modo esegue ++, cioè il valore restituito non è uguale ad "a".

 int tt=0;
 #define AAA (0==0) ? (tt++):0
int Primer() {return AAA;}
void OnStart()
  {
  int a=Primer();
  Print(a," ",tt, a!=tt? " WTF?!!": "");
  
  }

2019.12.09 16:17:51.363 proba (EURUSD,H1) 0 1 WTF?!


costruire 2093
 
fxsaber:

Ho bisogno che un EA in esecuzione su Agent sia in grado di recuperare l'handle del terminale da cui è stato inviato per essere eseguito in Agent.

compito complesso, non ho idea di come vengano eseguiti gli agenti, penso che cercare su Google il PID del processo padre complicherà ancora di più le cose

Non so cosa fare, ma penso di dover passare un qualche tipo di identificatore (numero magico) agli agenti e processarlo lì


SZZ: ho la sensazione che anche la lettura di un file situato su RAMDisk sarà più veloce che chiamare WinAPI diverse volte quando si cerca un processo genitore, cioè scrivere in un file in una cartella condivisa

 
Alexandr Andreev:

2019.12.09 16:17:51.363 proba (EURUSD,H1) 0 1 WTF!!!

Proprio così. a ottiene il tt prima dell'incremento.

 
Igor Makanu:

non conoscono il compito

https://www.mql5.com/ru/forum/321656/page31#comment_14170117

 
fxsaber:

Proprio così. a diventa tt prima dell'incremento.

Sì, ho completamente dimenticato il "i++" "++i"

 

Capisco, cioè tu risolvi l'eterno problema dello scambio di dati tra terminali, io non ho pensato in questa direzione, di solito scrivo tutto in dll, che non è risolto in MQL, raramente cerco soluzioni in WinAPI - ci vuole molto tempo

SZZY: ieri ho letto di SQLite, la descrizione contiene chiaramente la spiegazione che il database può essere aperto sia per la scrittura che solo per la lettura, la stessa DB dll può essere installata separatamente, avrei cercato una soluzione ottimale per lo scambio di dati, dovrò studiare questa roba

Motivazione: