Зависит от объема информации. Те же named pipes или memory-mapped files. А если немного - так и вообще sendmessage.
Зависит от объема информации. Те же named pipes или memory-mapped files. А если немного - так и вообще sendmessage.
нужно только 3 сигнала buy и Sell и Price
но нужно передовать очень быстро ?
Те же named pipes или memory-mapped files.
Можно по подробние или лудше пример?
спасибо!
Тогда обычный SendMessage(WM_USER), в котором в wparam передается нолик или единичка в зависимости от того, покупаем или продаем. (но если у вас программа-приемник MT4 - то это не сработает). Для memory-mapped лучше почитать winapi-документацию. Вкратце - это кусок памяти, который для пользователя выглядит как временный файл. Одна программа создает и записывает, другая читает.
все три метода достаточно быстрые (время пренебрежимо мало сравнительно с интернет-задержками для покупки-продажи)
все три метода достаточно быстрые (время пренебрежимо мало сравнительно с интернет-задержками для покупки-продажи)
Тогда обычный SendMessage(WM_USER), в котором в wparam передается нолик или единичка в зависимости от того, покупаем или продаем. (но если у вас программа-приемник MT4 - то это не сработает). Для memory-mapped лучше почитать winapi-документацию. Вкратце - это кусок памяти, который для пользователя выглядит как временный файл. Одна программа создает и записывает, другая читает.
все три метода достаточно быстрые (время пренебрежимо мало сравнительно с интернет-задержками для покупки-продажи)
все три метода достаточно быстрые (время пренебрежимо мало сравнительно с интернет-задержками для покупки-продажи)
Мне нужно передоват сигналы из MT3 к Delphi Api и неуверен что MT3 подержит SendMessage(WM_USER) ?
Про МТ3 понятно, я говорю о программе-ПРИЕМНИКЕ, т.е. той, куда у вас информация идет. И если этот приемник - обычный советник в МТ4, то он обработать пришедший SendMessage просто так не сможет.
Вообще, все сильно зависит от того, куда вы эту информацию шлете (я так понимаю, в какой-то другой торговый терминал?). В MBT Navigatore очень приличное API, которое может все, у саксобанка - увы. И т.п.
Для MT3 придется использовать MT3 API, и все winapi-функции будут доступны. Без этого, боюсь, остается только работа с обычными файлами.
Вообще, все сильно зависит от того, куда вы эту информацию шлете (я так понимаю, в какой-то другой торговый терминал?). В MBT Navigatore очень приличное API, которое может все, у саксобанка - увы. И т.п.
Для MT3 придется использовать MT3 API, и все winapi-функции будут доступны. Без этого, боюсь, остается только работа с обычными файлами.
Про МТ3 понятно, я говорю о программе-ПРИЕМНИКЕ, т.е. той, куда у вас информация идет. И если этот приемник - обычный советник в МТ4, то он обработать пришедший SendMessage просто так не сможет.
Вообще, все сильно зависит от того, куда вы эту информацию шлете (я так понимаю, в какой-то другой торговый терминал?). В MBT Navigatore очень приличное API, которое может все, у саксобанка - увы. И т.п.
Для MT3 придется использовать MT3 API, и все winapi-функции будут доступны. Без этого, боюсь, остается только работа с обычными файлами.
Вообще, все сильно зависит от того, куда вы эту информацию шлете (я так понимаю, в какой-то другой торговый терминал?). В MBT Navigatore очень приличное API, которое может все, у саксобанка - увы. И т.п.
Для MT3 придется использовать MT3 API, и все winapi-функции будут доступны. Без этого, боюсь, остается только работа с обычными файлами.
программе-ПРИЕМНИКЕ = My Delphi Program ?
Про МТ3 понятно, я говорю о программе-ПРИЕМНИКЕ, т.е. той, куда у вас информация идет. И если этот приемник - обычный советник в МТ4, то он обработать пришедший SendMessage просто так не сможет.
Вообще, все сильно зависит от того, куда вы эту информацию шлете (я так понимаю, в какой-то другой торговый терминал?). В MBT Navigatore очень приличное API, которое может все, у саксобанка - увы. И т.п.
Для MT3 придется использовать MT3 API, и все winapi-функции будут доступны.
Вообще, все сильно зависит от того, куда вы эту информацию шлете (я так понимаю, в какой-то другой торговый терминал?). В MBT Navigatore очень приличное API, которое может все, у саксобанка - увы. И т.п.
Для MT3 придется использовать MT3 API, и все winapi-функции будут доступны.
Без этого, боюсь, остается только работа с обычными файлами.
вот тут та и проблема 2) Как не вызвать одновременного обращениия к файлу и как следствие ошибки.
Можно пример как с МТ3 послать данные?
Собственно, одновременное обращение не так уж страшно. Пытайтесь в дельфи прочитать файл в эксклюзивном режиме, если не получилось (файл еще занят) - ловите исключение-exception и пробуйте еще раз, пока не сработает.
А в МТ3 работайте обычными функциями FileOpen,FileWrite
А в МТ3 работайте обычными функциями FileOpen,FileWrite
Собственно, одновременное обращение не так уж страшно. Пытайтесь в дельфи прочитать файл в эксклюзивном режиме, если не получилось (файл еще занят) - ловите исключение-exception и пробуйте еще раз, пока не сработает.
буду очень признателен если можно какой нибудь пример?
спасибо!
у меня нет сейчас третьего МТ, я давно на четвертом, поэтому в корректности кода не уверен.
Пишите самым обычным способом, типа:
Пишите самым обычным способом, типа:
var h1(0); h1 = FileOpen("test.csv", ";"); FileWrite(h1, 1); FileClose(h1);
А со стороны дельфи - используйте winapi OpenFile
HFILE OpenFile(
LPCSTR lpFileName, // pointer to filename
LPOFSTRUCT lpReOpenBuff, // pointer to buffer for file information
UINT uStyle // action and attributes
);
и вот uStyle должно быть равно (OF_READ or OF_SHARE_EXCLUSIVE).
Или CreateFile (но там атрибутов побольше)
Это что касается winapi.
Я думаю, в дельфи можно какими-то внутренними средствами языка задать эксклюзивный режим - посмотрите в доках.

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Помогите пожалуйста, может кто-нибудь сталкивался с такой ситуацией.
Надо передать информацию другой программе из Meta Trader 3
Единственная возможность, как мне представляется через файл.
Но тут возникают 2 проблемы
1) Надо данные передавать достаточно быстро
2) Как не вызвать одновременного обращениия к файлу и как следствие ошибки.
Возможно кто-то сталкивался с подобной проблемой. Посоветуйте - ума не приложу что делать!!