Ошибки, баги, вопросы - страница 2615
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
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?!!
Мне нужно, чтобы советник, выполняющийся на Агенте, смог получить хендл Терминала, из которого он был отправлен на выполнение в Агенте.
сложная задача, даже не представляю как запускаются агенты, думаю, что если прогуглить PID родительского процесса по моему еще больше усложнит все
задачу не знаю, но по моему нужно некий идентификатор (магик-номер) передавать в агенты и там обрабатывать
ЗЫ: почему то мне кажется, что даже чтение файла расположенного на RAMDisk будет быстрее чем несколько раз вызывать WinAPI при поиске родительского процесса, т.е. писать в файл в общей папке
2019.12.09 16:17:51.363 proba (EURUSD,H1) 0 1 WTF?!!
Так все правильно. a получает tt до инкремента.
задачу не знаю
https://www.mql5.com/ru/forum/321656/page31#comment_14170117
Так все правильно. a получает tt до инкремента.
Ну да что то совсем забыл про "i++" "++i"
https://www.mql5.com/ru/forum/321656/page31#comment_14170117
понятно, т.е. решаете извечную проблему обмена данными между терминалами, не думал в этом направлении, я обычно все в dll пишу, что не решается в MQL, в WinAPI редко когда ищу решения - долго
ЗЫ: вчера почитывал про SQLite, в описании однозначно присутствует разъяснение, что БД можно открыть как для записи так и только для чтения, саму dll БД можно установить отдельно, я бы там поискал оптимальное решение обмена данными, нужно будет поизучать этот материал
понятно, т.е. решаете извечную проблему обмена данными между терминалами
Нет. Нужно получение данных Тестера, из которого запущен советник. Для 90% случаев это умею делать.
Мне нужно, чтобы советник, выполняющийся на Агенте, смог получить хендл Терминала, из которого он был отправлен на выполнение в Агенте.
про агенты не скажу. не проверял, но хендл терминала, как и предполагал, через PID можно получить:
2019.12.09 21:05:36.259 tst_Wapi (EURUSD,H1) process_id = 9280
2019.12.09 21:05:36.259 tst_Wapi (EURUSD,H1) handle = 2276
вот проверил PID в диспетчере задач совпадает
про агенты не скажу. не проверял, но хендл терминала, как и предполагал, через PID можно получить:
2019.12.09 21:05:36.259 tst_Wapi (EURUSD,H1) process_id = 9280
2019.12.09 21:05:36.259 tst_Wapi (EURUSD,H1) handle = 2276
вот проверил PID в диспетчере задач совпадает
Такой код подойдет для Сервиса, но не для советника на Агенте.
про агенты не скажу. не проверял, но хендл терминала, как и предполагал, через PID можно получить:
2019.12.09 21:05:36.259 tst_Wapi (EURUSD,H1) process_id = 9280
2019.12.09 21:05:36.259 tst_Wapi (EURUSD,H1) handle = 2276
вот проверил PID в диспетчере задач совпадает
Решил задачу, Спасибо.