Скачать MetaTrader 5

on tick и on time

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
emelenium
128
emelenium 2014.06.08 12:03 
Можно ли одновременно запустить on tick и on time? Т.е. будут ли эти события обрабатываться одновременно или же пока одно не обработается другое не начнет обрабатываться?
Ihor Herasko
9264
Ihor Herasko 2014.06.08 12:34  
Насколько я понимаю, каждому советнику выделяется один поток. Поэтому распараллелить его выполнение можно только запуском двух и более экспертов. Значит, для начала обработки какого-либо события в рамках одного эксперта необходимо ждать окончания работы текущей функции.
emelenium
128
emelenium 2014.06.08 12:45  
А можно ли как то из своей Dll вывзвать OrderSend?
Dmitiry Ananiev
6686
Dmitiry Ananiev 2014.06.08 15:04  
зачем ? Используй 2 советника. Используй magik? чтоб каждый работал со своими ордерами
Ihor Herasko
9264
Ihor Herasko 2014.06.08 15:14  
emelenium:
А можно ли как то из своей Dll вывзвать OrderSend?

Никак. Только при помощи взаимодействия с экспертом(ами).
emelenium
128
emelenium 2014.06.09 03:11  
Спасибо, а можно тогда как то запустить скрипт из советника?
Ihor Herasko
9264
Ihor Herasko 2014.06.09 07:29  
emelenium:
Спасибо, а можно тогда как то запустить скрипт из советника?


Средствами MQL4 - нет. При помощи WinAPI:

#define SCRIPT_NAME "Script"
#define MT4_MESSAGE "MetaTrader4_Internal_Message"

PostMessageA(hChart, RegisterWindowMessageA(MT4_MESSAGE), 16, SCRIPT_NAME);

 где hChart - дескриптор окна чарта, в котором необходимо запустить скрипт.

Vasyl Nosal
18637
Vasyl Nosal 2014.06.09 07:33  
https://forum.mql4.com/ru/62194
emelenium
128
emelenium 2014.06.09 12:50  
Scriptong:


Средствами MQL4 - нет. При помощи WinAPI:

 где hChart - дескриптор окна чарта, в котором необходимо запустить скрипт.

Спасибо! Дуамаю то что нужно!!!
emelenium
128
emelenium 2014.06.11 04:38  

не работает чего то

 

#import "user32.dll"
int RegisterWindowMessageA (string param);
#import 

#define SCRIPT_NAME "Shutdown.mq4"
#define MT4_MESSAGE "MetaTrader4_Internal_Message" 

PostMessageA(WindowHandle(Symbol(),PERIOD_CURRENT),RegisterWindowMessageA(MT4_MESSAGE), 16, SCRIPT_NAME);

 

почему может не работать?

Slava
Модератор
6915
Slava 2014.06.11 06:38  
emelenium:

не работает чего то

 

#import "user32.dll"
int RegisterWindowMessageA (string param);
#import 

#define SCRIPT_NAME "Shutdown.mq4"
#define MT4_MESSAGE "MetaTrader4_Internal_Message" 

PostMessageA(WindowHandle(Symbol(),PERIOD_CURRENT),RegisterWindowMessageA(MT4_MESSAGE), 16, SCRIPT_NAME);

 

почему может не работать?


Потому что при помощи PostMessage нельзя передавать адреса переменных в памяти. В Вашем случае "Shutdown.mq4"

При помощи SendMessage - можно

12345
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий