Так уж сложилось, что сейчас мало кто из разработчиков помнит, как написать простую DLL библиотеку и в чем особенности связывания разнородных систем. Я постараюсь за 10 минут на примерах показать весь процесс создания простых DLL библиотек и раскрою некоторые технические детали нашей реализации связывания. Демонстрация будет на примере Visual...
ああ、わかったよ。私はC-シャープに怯えていた、怯えていた... :)))))。
実際、あなたは怖がって当然だった。シャープは、深く入り込んで良いものを作ろうとすると、単純なものではないんだ。
例えば、このライブラリの 使用例を現実的に示してください。
記事は最高だ!
この記事は素晴らしい!
MQLプログラマーなら誰でも、プロフェッショナルで安定したエディターでGUIを作るために、すでにこれを使うことができる。そして、MTに限らず、繰り返しその成果を使うことができる。
Expert AdvisorはControllerと高水準の小包で通信する(「オプション付きの#NN注文を開く」)。Controllerはフォームにメッセージを送る(「テーブルにフィールド付きの行を追加する」)。このようにして、アクティビティは適切な部分に分離される。そして、EAは取引だけを行い、GUIは表示する。そしてこれらは、異なるプロジェクトや異なる人によっても、別々に実行/変更/作成することができます。
作者に敬意を
そして、Controllerから派生クラスを 作ることができれば、それは一般的に「チョコレート」だ。
ソースに独自のデータ交換関数を追加して、それを呼び出せばいいだけだ ;)
独自のデータ交換関数をソースに追加して、それを呼び出せばいいだけだ ;)
もちろんできる......しかし、この単純でない方法は、結果的にコードヌードルや萎んだプロジェクトの 束を生むことになる :-)OOPはそのようなことを防ぐために作られているのだ。
EAとのコミュニケーションやフォームの「物理」は、オリジナルのコントローラーに集約されるべきだ。派生物の作り方も。
ところで、フォームが置き換わったとき、このバンドル全体はどのように振る舞うのだろうか?
私見では、この技術のハイライトは、Expert Advisorが(再コンパイルすることなく、できれば停止することなく)そのまま動作し続け、フォームを変更できることである。
主な要件は、EAが取引することです。EAはお金とつながっているので、できるだけ触らないほうがいい。
もちろんできる......しかし、この単純でないやり方は、結果的にコードヌードルや萎びたプロジェクトの数々を生むことになる:-)OOPはそのようなことを防ぐように設計されている。
完璧主義者の視点から見れば、あなたの言うことは100%正しいのですが、残念ながら、すべてのコードの普遍性を達成しようとすると、完全に遅い結果になる場合があります。
SUS:私はVS2017からdatagridviewを諦めて、大きなデータを扱うときに遅くならないようにチューニングして、少なくとも1秒に1回は更新するようにした...それでもまだ鈍いけど、それ自体がどれだけ多くのクラスを集めていて、OOPの原則を完璧に守っているサンプルだ ;)
追記:datagridviewのソース、たった7000行ですが、それ自体にどれだけの追加コードを引っ張ってきているのか、数えたくもありません。
https:// referencesource.microsoft.com/#system.windows.forms/winforms/managed/system/winforms/DataGridView.cs
)))
完璧主義者の視点から見れば、あなたの言うことは100%正しい。しかし、残念ながら、すべてにおいて普遍的なコードを達成しようとすると、完璧に遅い結果になる場合がある。
SUS:私はVS2017からdatagridviewをセットアップして、大きなデータを扱って少なくとも1秒に1回更新するときに遅くならないようにするのをあきらめた。)
追記:datagridviewのソース、わずか7000行、それ自体に追加のコードをプルアップどのくらい、私もカウントしたくありません。
https:// referencesource.microsoft.com/#system.windows.forms/winforms/managed/system/winforms/DataGridView.cs
)))
マイクロソフトは、ハードウェアの性能よりもソフトウェアを優先させる達人だ。)
---
本題から逸れるが、ここでは子供たちが「自分たちでおもちゃを作りたい」と言ったので、視覚的なものを探さなければならなかった。マウスで絵を描いたり、python/lisp/sharpに頼らずに簡単なルールを設定したり、一度に作業したり。
豊富な選択肢の中で、マイクロソフトのKoduだけが適していた。クールで美しく、明快で、まさに「ビジュアル・プログラミングはこうあるべき」という理想的なものだ。でも、シャープからいろいろなものを引っ張ってくるし、スピードも遅くなる。)
こんにちは!
上記の内容に関連して、いくつかの疑問が生じました:
1) 記事の文章からは、グラフィカル・インターフェースだけでなく、MQL5に「適合しない」ほとんどすべてのAPIの実装も同じ方法で整理できるという印象を受けました。
2) 私の理解する限り、.Netプラットフォームを使えば、C#だけでなく、さまざまな言語でプログラムを書くことができる。特にC++である。
質問は、C++(C++/CLRを使用していると理解しています)で.Netライブラリを書いて、MQL5がGuiControllerエンジンと同じように.Netコードを理解することが可能かどうかということです。つまり、#include "...dll "とインポート関数の 宣言なしで?
私が興味を持っている実例はこれです。最近では、機械学習に関するオプセンサー・ライブラリをVS2017と統合する可能性があり、例えば、TensorFlowはGPUコンピューティングをサポートするC++のAPIを提供しています。あなたの記事は、TensorFloW(または他の機械学習ライブラリ)のC++実装を直接MQL5に統合する絶好の機会を提供します。問題は、なぜかここで紹介されている方法を使っても、試用版のC++ dllをMQL5にインポートできないことです。
MT5のコードにC++関数のシグネチャを記述し、通常のDLLとして呼び出す必要があります。
https://www.mql5.com/ja/articles/18
HI: tensorflow c# は完璧にググることができます。https://nugetmusthaves.com/Tag/tensorflow C# のための準備ができたソリューションはこちらです。