Разобрался, вот этот код у меня срабатывает (без доп dll):
#property strict#import "user32.dll"int RegisterWindowMessageA(uchar &lParam[]);
int SendMessageA(int hWnd, int Msg, int wParam, char &lParam[]);
#importvoidOnStart()
{
char buf[];
StringToCharArray("MetaTrader4_Internal_Message", buf);
int MT4InternalMsg = RegisterWindowMessageA(buf);
StringToCharArray("Fibo", buf);
long next = ChartNext(0);
int hwnd = (int)ChartGetInteger(next, CHART_WINDOW_HANDLE);
SendMessageA(hwnd, MT4InternalMsg, 16, buf);
}
Всё дело в регистре первой буквы скрипта. У меня скрипт называется fibo.ex4. Но терминал все скрипты видит в верхнем регистре. Странное поведение терминала.
Разобрался, вот этот код у меня срабатывает (без доп dll):
Всё дело в регистре первой буквы скрипта. У меня скрипт называется fibo.ex4. Но терминал все скрипты видит в верхнем регистре. Странное поведение терминала.
Спасибо всем за помощь.
Посмотрел у себя в классе для МТ. Там в коде есть комментарий - "MQL-программы можно загрузить только по ANSI-имени".
Так тоже не работает:
Так тоже не работает:
Не надо весь путь указывать, достаточно имени "fibo"
Видимо мк чего-то подкрутили, не запускается (НЕ ПОВТОРЯЙТЕ ЭТО, ЕСЛИ РЕШИЛИСЬ, ТО ОТКЛЮЧИТЕСЬ ОТ ТОРГОВОГО СЧЕТА):
Разобрался, вот этот код у меня срабатывает (без доп dll):
Всё дело в регистре первой буквы скрипта. У меня скрипт называется fibo.ex4. Но терминал все скрипты видит в верхнем регистре. Странное поведение терминала.
Спасибо всем за помощь.
Разобрался, вот этот код у меня срабатывает (без доп dll):
Всё дело в регистре первой буквы скрипта. У меня скрипт называется fibo.ex4. Но терминал все скрипты видит в верхнем регистре. Странное поведение терминала.
Спасибо всем за помощь.