Добавлена возможность самостоятельно обрабатывать события отклонения котировок, для этого предусмотрена опция запуска скрипта (вашего скрипта) по факту расхождения. Скрипту необходимо назначить комбинацию клавиш Alt+b. Кроме этого в файл programs.txt нужно последовательно записать два полных названия окон MetaTrader, чтобы приложение знало, куда слать комбинацию Alt+b. Пример дан в файле programs.txt.
После выполнения указанных действий напишите в скрипт то, что вы хотели бы делать по факту расхождения котировок и разместите его в скрипты терминала вписанного в programs.txt вторым.
Программа предназначена для протоколирования фактов появления возможных нерыночных котировок у брокерских компаний с платформой MetaTrader.
Суть состоит в том, что программа работает одновременно с двумя окнами MetaTrader. Котировки от данных двух источников передаются при помощи советников Chart1.mq4 и Chart2.mq4 внешнему приложению. Внешнее приложение контролирует степень расхождения котировок, и когда она достигает заданной пользователем величины, и это расхождение наблюдается в течение заданного пользователем времени, происходит запись графиков в виде bmp – картинки в папку c:\ChartPlusChart\History\. Для наглядности по каждому факту расхождения сохраняется два кадра: один в момент расхождения, второй 5 минут после расхождения.
В названии графических файлов указано время, когда наблюдалось расхождение в формате: часы-минуты-секунды.
В качестве ориентира, конечно, желательно выбрать фирму с самой высокой скоростью обновления котировок и с наилучшей их чистотой. Данные характеристики (для демо-счетов) по крайней мере 84 брокеров с платформой MetaTrader измерены и представлены на сайте автора: www.brokcompare.com
Конечно, расхождение в данном случае возможно как, результат отклонения от рынка любого из двух брокеров, но каждый факт можно проверить отдельно.
Порядок установки:
Архив с программой необходимо распаковать на диск C:\, советники разместить в папки с советниками двух MetaTrader-ов. Программа работает с DLL, поэтому для корректной работы разрешите использование DLL, для этого установите галку в меню СЕРВИС\НАСТРОЙКА\вкладка СОВЕТНИКИ:
Разрешить импорт функции DLL.
И снимите галку с пункта:
Подтверждать вызов функции DLL.
Плюс то, что указано вначале.
После этого запустите советники на интересующей паре в обоих MetaTrader-ах. И запустите приложение c:\ChartPlusChart\ChartPlusChart.exe.
Докладываю- за седня было 6 расхождений. Скрипт не запустился. :(
Видимо проблема в том, что во время когда происходили эти расхождения вы рботали на компе. Если автор под передачей фокуса имеет в виду SetFocus и потом посылка активному приложению комбинации клавиш "Alt+b" СендКеем, то в таком случае комп должен быть свободен от другой работы на нем...
Фокус то и убежать может, если в этот момент сделать другое приложение активным....
1)Вопрос по подсчету разницы в котировках. Не совсем понятно, откуда берется лишний порядок (см. скрин).
2) Также вопрос по поводу передачи в DLL общего количества ордеров, AccountBalance, и зачем-то профит первого выделенного ордера?
Не понятно зачем передаются эти данные и как они влияют на отклонение в котир-ах.
3) Вопрос по подсчету среднего значения для обычного отклонения - если в эти первые 20-ть значений на которых мы считаем среднее попадет как раз резкий выброс на одном из терминалов, то наше среднее будет уже ложным и заведомо бОльшим нормы...
4) Если вы всеравно работаете с хендл-ми окон терминалов, то может есть смысл таскать котировки непосредственно из окна "Обзор рынка", нежели использовать советников?
Докладываю- за седня было 6 расхождений. Скрипт не запустился. :(
У меня все запускается....
Скрипт установлен во втором метатрейдере? Я говорю о втором в списке programs.txt. Если приложение его видит, то при обнаружении расхождения фокус перейдет на окно второго метатрейдера(в котором скрипт).
Для испытаний можно поставить малое расхождение, чтоб чаще срабатывало и малое время. И еще.... программу нужно запускать только после того, как запущены терминалы и выставлено соответствие с фаилом programs.txt. Кроме того, если во время работы изменить таймфрейм то имя окна меняется и найдено оно не будет.
Не думал я, что так усложнил процесс запуска системы....подумаю как упростить.
Щелните правой кнопкой на названии скрипта (в списке) и в меню нужно выбрать пункт назначить горячую клавишу b. В таблице вам покажет результат - горячая комбинация для вызова теперь Alt+b.
Под названием окна понимается полный текст из шапки окна терминала (синий бар окна) (там, когда счет открыт, обычно написано что-то вроде этого: 24543234: MetaTrader - Alpari - Демо Счет - [GBPUSD,M1]) вот всю эту чепуху дословно впишите из окна своего метатрейдера со своим номером счета, брокером и валютой. Это имя окна по которому его находит приложение для посылки дуда горячей клавиши скрипта.
Так, горячая клавиша есть. Про название идентифицирующую терминал понял. Скажи, куда ее писать, ну конкретное место в коде скрипта покажи.
Не в скрипт писать, а в programs.txt. Просто замени имеющиеся в файле programs.txt строки названий на свои. Система такая: приложение считывает названия из файла programs.txt и использует их для определения идентификаторов окон, далее использует эти идентификатры для общения с этими окнами. А содержание скрипта вообще не имеет значения. Там нужно записать только то, что нужно делать в случае отклонения от рынка.
Щелните правой кнопкой на названии скрипта (в списке) и в меню нужно выбрать пункт назначить горячую клавишу b. В таблице вам покажет результат - горячая комбинация для вызова теперь Alt+b.
Под названием окна понимается полный текст из шапки окна терминала (синий бар окна) (там, когда счет открыт, обычно написано что-то вроде этого: 24543234: MetaTrader - Alpari - Демо Счет - [GBPUSD,M1]) вот всю эту чепуху дословно впишите из окна своего метатрейдера со своим номером счета, брокером и валютой. Это имя окна по которому его находит приложение для посылки дуда горячей клавиши скрипта.
Так, горячая клавиша есть. Про название идентифицирующую терминал понял. Скажи, куда ее писать, ну конкретное место в коде скрипта покажи.
Скрипту необходимо назначить комбинацию клавиш Alt+b.
Как это сделать?
Кроме этого в файл programs.txt нужно последовательно записать два полных названия окон MetaTrader, чтобы приложение знало, куда слать комбинацию Alt+b. Пример дан в файле programs.txt.
Из примера ни чего не понятно, покажите на примере кода Вашего скрипта. Например у нас два брокера один Alpari, другой- FXstart, инструмент фунт/жоллар. Куда там что прописывать?
Щелните правой кнопкой на названии скрипта (в списке) и в меню нужно выбрать пункт назначить горячую клавишу b. В таблице вам покажет результат - горячая комбинация для вызова теперь Alt+b.
Под названием окна понимается полный текст из шапки окна терминала (синий бар окна) (там, когда счет открыт, обычно написано что-то вроде этого: 24543234: MetaTrader - Alpari - Демо Счет - [GBPUSD,M1]) вот всю эту чепуху дословно впишите из окна своего метатрейдера со своим номером счета, брокером и валютой. Это имя окна по которому его находит приложение для посылки дуда горячей клавиши скрипта.
Скрипту необходимо назначить комбинацию клавиш Alt+b.
Как это сделать?
Кроме этого в файл programs.txt нужно последовательно записать два полных названия окон MetaTrader, чтобы приложение знало, куда слать комбинацию Alt+b. Пример дан в файле programs.txt.
Из примера ни чего не понятно, покажите на примере кода Вашего скрипта. Например у нас два брокера один Alpari, другой- FXstart, инструмент фунт/жоллар. Куда там что прописывать?