Обсуждение статьи "Создание графических интерфейсов для экспертов и индикаторов на базе .Net Framework и C#" - страница 13

 

Здравствуйте Василий и привет всем вам. Я использую GuiController, который использует форму, созданную с помощью Visual Studio C #.


Идея заключалась в том, чтобы заполнить поля ComboBox данными из БД SQLite3.


Я установил весь пакет System.Data.SQLite, но с GuiController я не могу заставить его работать.


Может ли кто-нибудь объяснить мне, почему?


Спасибо

 

Меня очень заинтересовала эта статья. Наконец-то появилась возможность открыть настоящее окно и все, что вы хотите иметь. Весь пример работает с ограничением, что только указанные файлы являются функциональными. Кроме того, есть проблемы с "enum GuiEventType", если не добавить этот "enum" самостоятельно, то MetaTrader5 вообще не компилирует пример. События известны редактору только из DLL, пока вы не захотите скомпилировать.

Было бы очень здорово наконец-то получить реальные возможности интерфейса. Но, к сожалению, это всего лишь демо-версия - очень завидно для меня.

Самым первым вариантом для меня был бы дисплей, так как System-Out очень старомоден и нечитаем. Но, к сожалению, демо работает только со скомпилированными версиями. Как только я компилирую DLL с помощью Visual myself, программа запускается с ошибкой .NET. Независимо от того, была ли выбрана компиляция на 3.x или 5.NET. Я предполагаю, что у нашего автора есть специальный MetaTrader, где такое работает - очень жаль.

 

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

Мне интересно, есть ли событие, чтобы советник удалялся с графика при закрытии формы.

Нужно ли мне менять библиотеку?

Кто-нибудь может мне помочь?

 

Я создал класс C# WinForm на основе вышеупомянутого TradingForm. Я добавил несколько функций, и они работают очень хорошо.

На самом деле я пытаюсь добавить дополнительные элементы формы через Nuget, но форма не отображается, когда libs ссылается и используется в коде.

Так можно ли это сделать или есть другой способ работы со ссылочными библиотеками?

Заранее спасибо за подсказки :-)

 
Mano #:
Можем ли мы прикрепить это приложение .Net к диаграмме?
Вы смогли это сделать? Мне это очень нужно
 

Приветствую. Подскажите, пожалста. Что я делаю не так? При включении советника форма не появляется. Ошибок в журнале нет.



 
Andrey Sokolov #:

Приветствую. Подскажите, пожалста. Что я делаю не так? При включении советника форма не появляется. Ошибок в журнале нет.



Привет! А для какой версии .NET собрана библиотека и приложение с формой? MT4 и MT5 не поддерживают .NET Core 3(младшие версий не проверял), .NET 5 и .NET 6, ни для библиотеки ни для приложения с формой.
Конечно могу ошибаться но у меня тоже не запускалась форма на этих версиях. Сам смог запустить при сборке под .NET Framework 4.8

Так же если вы пытаетесь импортировать в МT4 то там требуется немного изменить код библиотеки, т.к. есть проблемы с передачей параметров по ссылке.

 

Не работает:

GuiController скачал с репозитория. Установил Visual Studio 2022, создал форму с кнопкой, запускаю в MetaTrader 5, получаю ошибку:

2022.03.16 19:22:44.629    TradeAssistant (EURUSD_i,M5)    System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.BadImageFormatException: Ожидалось, что модуль содержит манифест сборки. (Исключение из HRESULT: 0x80131018)
2022.03.16 19:22:44.629    TradeAssistant (EURUSD_i,M5)       в System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)
2022.03.16 19:22:44.629    TradeAssistant (EURUSD_i,M5)       в System.Reflection.Assembly.LoadFile(String path)
2022.03.16 19:22:44.629    TradeAssistant (EURUSD_i,M5)       в MtGuiController.GuiController.GetGuiController(String assembly_path, String form_name)
2022.03.16 19:22:44.629    TradeAssistant (EURUSD_i,M5)       в MtGuiController.GuiController.ShowForm(String assembly_path, String form_name)
2022.03.16 19:22:44.629    TradeAssistant (EURUSD_i,M5)       --- Конец трассировки внутреннего стека исключений ---
2022.03.16 19:22:44.629    TradeAssistant (EURUSD_i,M5)       в System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
2022.03.16 19:22:44.629    TradeAssistant (EURUSD_i,M5)       в System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
2022.03.16 19:22:44.629    TradeAssistant (EURUSD_i,M5)       в System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
2022.03.16 19:22:44.629    TradeAssistant (EURUSD_i,M5)       в Wrapper.Wrapper.Call(MethodInfo method, Int64 owner, Int64 parameters, Int64 result)
2022.03.16 19:22:44.629    TradeAssistant (EURUSD_i,M5)    .Net runtime error


Результат команды clrver:

PS C:\Development\Visual Studio Community 2022\C Sharp\GuiMt> clrver

Microsoft (R) .NET CLR Version Tool  Version 4.8.3928.0

Copyright (c) Microsoft Corporation.  All rights reserved.

Versions installed on the machine:

v2.0.50727

v4.0.30319


С чем может быть связана ошибка?

 
Nextor #:

Не работает:

GuiController скачал с репозитория. Установил Visual Studio 2022, создал форму с кнопкой, запускаю в MetaTrader 5, получаю ошибку:

2022.03.16 19:22:44.629    TradeAssistant (EURUSD_i,M5)    System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.BadImageFormatException: Ожидалось, что модуль содержит манифест сборки. (Исключение из HRESULT: 0x80131018)
2022.03.16 19:22:44.629    TradeAssistant (EURUSD_i,M5)       в System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)


Результат команды clrver:

PS C:\Development\Visual Studio Community 2022\C Sharp\GuiMt> clrver

Microsoft (R) .NET CLR Version Tool  Version 4.8.3928.0

Copyright (c) Microsoft Corporation.  All rights reserved.

Versions installed on the machine:

v2.0.50727

v4.0.30319

С чем может быть связана ошибка?

GuiController устарел и требует перекомпиляции.

 

С октября 2018 года MQL5 стал нативно поддерживать интеграцию с библиотеками Net Framwork

Добрый день. Подскажите пожалуйста, где можно почитать официальную информацию о поддержке C#. В документации что-то не нашел такого, есть информация по подключению VS, по использованию MT как компилятора, по работе с Питоном, но по шарпу инфы не увидел. Буду признателен за ссылочку на официальную доку, чтобы ознакомиться со всеми возможностями.