記事"Net FrameworkとC#に基づくエキスパートアドバイザーと指標のためのグラフィカルインターフェイスの開発"についてのディスカッション - ページ 13

 

こんにちは、Vasily。私はVisual Studio C # で作成したフォームを使用する GuiController を使用しています。


アイデアは、SQLite3 DBからのデータでComboBoxのフィールドを埋めることでした。


System.Data.SQLiteパッケージ全体をインストールしましたが、GuiControllerではうまくいきません。


どなたか理由を教えてください。


ありがとうございます。

 

この記事にはとても興味があった。ようやく本物のウィンドウを開く可能性が出てきた。例全体は、指定されたファイルだけが機能するという制限付きで実行される。さらに、"enum GuiEventType "に問題があり、この "enum "を自分で追加しないと、MetaTrader5はサンプルを全くコンパイルしません。イベントは、コンパイルするまで、DLLからエディタに知らされるだけです。

最終的に本当のインターフェイスオプションを持つことができれば、とてもよかったでしょう。しかし残念ながら、これは単なるデモに過ぎない。

System-Outはとても古臭くて読みにくいので、私にとって一番最初のオプションはディスプレイだっただろう。しかし残念ながら、このデモはコンパイルされたバージョンでしか動作しない。DLLをVisualでコンパイルすると、プログラムは.NETエラーで始まる。コンパイルが3.xであろうと5.NETであろうと、です。私の推測では、この作者はこのようなことが動作する特別なMetaTraderを持っているようだ。

 

こんにちは。

フォームを閉じるときにEAがチャートから削除されるようなイベントはないでしょうか?

ライブラリを変更する必要がありますか?

どなたか教えて ください。

 

上記の TradingForm をベースに C# WinForm クラスを作成しました。いくつかの機能を追加しましたが、とてもうまく動作しています。

実は Nuget 経由でフォーム要素を追加しようとしているのですが、コード内でライブラリを参照して使用しているときにフォームが表示されません。

このようなことは可能なのでしょうか、それとも参照されているライブラリを扱う他の方法があるのでしょうか?

ヒントをいただけると幸いです :-)

 
Mano #:
この.Netアプリをチャートにアタッチできますか?
できましたか?どうしても必要なのです。
 

こんにちは。教えていただけますか?何が間違っているのでしょうか?Expert Advisorをオンにすると、フォームが表示されません。ログにエラーはありません。



 
Andrey Sokolov #:

こんにちは。教えていただけますか?何が間違っているのでしょうか?Expert Advisorをオンにすると、フォームが表示されません。ログにエラーはありません。



こんにちは!フォームを含むライブラリとアプリケーションは、.NET のどのバージョン用にビルドされていますか?MT4とMT5は、ライブラリもフォームアプリケーションも、.NET Core 3(それ以下のバージョンは確認していません)、.NET 5、.NET 6をサポートしていません。
もちろん間違っているかもしれませんが、私はこれらのバージョンでもフォームを実行しませんでした。.NET Framework 4.8でビルドした場合は起動できました。

また、もしMT4にインポートしようとしているのであれば、パラメータの参照渡しに問題があるので、ライブラリのコードを少し修正する必要があります。

 

うまくいかない:

GuiControllerはリポジトリからダウンロードしました。Visual Studio 2022をインストールし、ボタン付きのフォームを作成し、MetaTrader 5で実行すると、エラーが発生します:

2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) System.Reflection.TargetInvocationException: 呼び出し先で例外が発生しました。---> System.BadImageFormatException: モジュールにはアセンブリマニフェストが含まれていると予想されました。(HRESULT exception:0x80131018)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) in System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) in System.Reflection.Assembly.LoadFile(String path)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) in MtGuiController.GuiController.GetGuiController(String assembly_path, String form_name)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) in 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) at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) in System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) in System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
2022.03.16 19:22:44.629 トレード・アシスタント (EURUSD_i,M5) in Wrapper.Wrapper.Call(MethodInfo method, Int64 owner, Int64 parameters, Int64 result)
2022.03.16 19:22:44.629 [トレードアシスタント(EURUSD_i,M5)] .Net ランタイム・エラー


clrver コマンドの結果です:

PS C:{DevelopmentVisual Studio Community 2022 SharpGuiMt> clrver

Microsoft (R) .NET CLR バージョンツール バージョン 4.8.3928.0

Copyright (c) Microsoft Corporation. All rights reserved.

マシンにインストールされているバージョン:

v2.0.50727

v4.0.30319


このエラーは何に関連しているのでしょうか?

 
Nextor Visual Studio 2022をインストールし、ボタン付きのフォームを作成し、MetaTrader 5で実行すると、エラーが発生します:
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) System.Reflection.TargetInvocationException: コール先に例外が発生しました。---> System.BadImageFormatException: モジュールにはアセンブリマニフェストが含まれていると予想されました。(HRESULT exception:0x80131018)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) in System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)


コマンド clrver の結果:

PS C:DevelopmentVisual Studio Community 2022C SharpGuiMt> clrver

Microsoft (R) .NET CLR Version Tool Version 4.8.3928.0

Copyright (c) Microsoft Corporation. All rights reserved.

マシンにインストールされているバージョン:

v2.0.50727

v4.0.30319

このエラーは何に関連しているのでしょうか?

GuiControllerが古いため、再コンパイルが必要です。

 

2018年10月より、MQL5はNet Framworkライブラリとの統合をネイティブサポートしました

こんにちは。C#のサポートに関する公式情報はどこで読むことができますか?VSとの接続、コンパイラとしてのMTの使用、Pythonとの連携に関する情報はありますが、Sharpに関する情報は見当たりませんでした。全ての機能を熟知するために、公式ドキュメントへのリンクがあればありがたいです。