Обсуждение статьи "МetaTrader 5. Экспорт котировок в .NET приложение, используя WCF сервисы" - страница 3

 
Я столкнулся с некоторыми трудностями при реализации описанного выше. Поэтому озвучу, мало ли кто столкнется с похожими проблемами.


1) Если у вас терминал x64, то скорее всего будет необходимо перекомпилировать с++ проект в x64. На всякий случай делается это так: Visual Studio -> Properties (вашего с++ проекта) -> Configuration Manager -> и там через выпадающий список либо через <New...> меняете на x64. Компилируем. Готово. Если не компилируется - проверьте References проекта, пройдитесь по ошибкам компилятора.
2) У меня были проблемы c советником, он даже не инициализировался. Я заметил это только при отключении советника от графика, когда вылетела ошибка init failed (забавно..). Советник впадал в бесконечный Sleep еще на стадии инициализации и все дело было в этих строчках (в QService.mqh):

 QService::EnterCriticalSection()
{
   while (GlobalVariableCheck("QService_CriticalSection") > 0)
   Sleep(1);
   GlobalVariableTemp("QService_CriticalSection");

После дебага и тщетных попыток понять этот "Sleep(1)", заменил код на:

QService::EnterCriticalSection()
{
   if(!GlobalVariableCheck("QService_CriticalSection"))
   GlobalVariableTemp("QService_CriticalSection");
}

Кстати вся эта статья справедлива и для MT4. Хоть в MT4 и есть DDE, мне этот подход больше нравится. Все работает замечательно.

P.S: Спасибо автору статьи! Все круто расписано!
 
Не пойму, написано хорошо, но не работает. QEXPORTWRAPPER не запускается на 64-х разрядном терминале.
 
shelandr1:
Очень интересно..Спасибо..Но может быть Сегодня есть более простые возможности*??

Конечно есть - использование подключения через встроенную в терминал возможность. Это PIPE-канал.

https://www.mql5.com/ru/docs/files/fileopen

Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Только что разместил новую работу, основанную на этой статье: https: //www.mql5.com/en/job/34392.

Это не работает в моей среде MT5 64 бит...

Отличная статья!

Спасибо

Freelance service at MQL5.com: Make Visual Studio 2012 solution downloaded from article work with Metatrader 5 64 bits
Freelance service at MQL5.com: Make Visual Studio 2012 solution downloaded from article work with Metatrader 5 64 bits
  • www.mql5.com
Hi, I'm a C# developer and downloaded the code from the article "HOW TO EXPORT QUOTES FROM METATRADER 5 TO .NET APPLICATIONS USING WCF SERVICES" ( https://www.mql5.com/en/articles/27 ). The problem is that my machine is a Windows 64 bits with MetaTrader 5 64 bits installed and I had to change the compile configurations to 64 bits in Visual Studio 2012. Ok, it compiled normally, then I added one new method that aims to return a string to MT5 which i called ReadBroker2MeInstructions . Compiled...
 

Просто для знаний, я обнаружил, что произошло на моей 64-битной машине.

После долгих часов исследований и отладки я обнаружил, что одна из ссылающихся сборок не загружается, генерируя исключение "System.IO.FileNotFoundException: Unable to load file or assembly 'QExport.Service, Version=1.0.5771.13857, Culture=neutral, PublicKeyToken=56996a45dd1e337b'".

Возможно, потому что у dll нет файла конфигурации, пока не знаю, MT 5 не знал, где найти сборку. Поэтому он пытался получить ее по базовому пути (путь, по которому находится metaeditor64.exe). После изменения выходного каталога ссылаемых проектов на этот путь все заработало как по маслу.

 
sabe:

Привет, Джо,

Есть ли какой-нибудь специальный трюк, чтобы заставить его работать на x64? Я только что скомпилировал его для x64, но при запуске dll вываливается со странными ошибками.

Сейб, смотри мой ответ ниже.

[]'s

 

Здравствуйте,


Я протестировал ваш готовый файл, все выглядит хорошо в MT5. Но в WinClient нет никаких данных.







 

Интересно а есть ли подобный проект с предварительной выгрузкой исторических баров? Очень уж хочется прикрутить это всё к Lightweight-Chart и удобно пользоваться графиком.