Ошибки, баги, вопросы - страница 2615

 

Сейчас в MT5 custom индикаторах не работает изменение размера стрелок. Просьба исправить или подсказать, как менять.

PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_ARROW);
PlotIndexSetInteger(0, PLOT_ARROW, 233);
PlotIndexSetInteger(0, PLOT_LINE_WIDTH, 2); //1,2,3 - размер не меняется
PS. Удалось выяснить причину. Даже интересно. MT5 в отличие от MT4 самовольно масшабирует размер стрелок до минимального при ужимании чарта в ширину (Zoom Out).
 
Подскажите, как через WinAPI узнать хендл своего Терминала из советника, который запущен в Тестере?
 
fxsaber:
Подскажите, как через WinAPI узнать хендл своего Терминала из советника, который запущен в Тестере?

могу ошибаться, но кажется Вы ищете PID процесса , тогда гуглить запрос "winapi id своей программы"

ЗЫ: GetCurrentProcessId 

 
Igor Makanu:

могу ошибаться, но кажется Вы ищете PID процесса , тогда гуглить запрос "winapi id своей программы"

Мне нужно, чтобы советник, выполняющийся на Агенте, смог получить хендл Терминала, из которого он был отправлен на выполнение в Агенте.

 
 return a++;

Так оказывается нельзя делать :( ++ в этом случае не работает, хотя в более сложном виде так вообще возвращает "a" а после каким то способом выполняет ++, т.е. возвращенное значение не равно "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?!!


build 2093
 
fxsaber:

Мне нужно, чтобы советник, выполняющийся на Агенте, смог получить хендл Терминала, из которого он был отправлен на выполнение в Агенте.

сложная задача, даже не представляю как запускаются агенты, думаю, что если прогуглить PID родительского процесса по моему еще больше усложнит все

задачу не знаю, но по моему нужно некий идентификатор (магик-номер) передавать в агенты и там обрабатывать


ЗЫ: почему то мне кажется, что даже чтение файла расположенного на RAMDisk будет быстрее чем несколько раз вызывать WinAPI при поиске родительского процесса, т.е. писать в файл в общей папке 

 
Alexandr Andreev:

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

Так все правильно. a получает tt до инкремента.

 
Igor Makanu:

задачу не знаю

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

 
fxsaber:

Так все правильно. a получает tt до инкремента.

Ну да что то совсем забыл про "i++" "++i"

 

понятно, т.е. решаете извечную проблему обмена данными между терминалами, не думал в этом направлении, я обычно все в dll пишу, что не решается в MQL, в WinAPI редко когда ищу решения - долго

ЗЫ: вчера почитывал про SQLite, в описании однозначно присутствует разъяснение, что БД можно открыть как для записи так и только для чтения, саму dll БД можно установить отдельно, я бы там поискал оптимальное решение обмена данными,  нужно будет поизучать этот материал

Причина обращения: