MT4プラットフォーム上のビジュアルスタジオです。 - ページ 4

 

このリンクから、グラフィカルエンジンの技術情報やGUIを作成する際の手順を確認することができます。

https://www.youtube.com/watch?v=ciVqJwgIIyg&feature=youtu.be#t=66.940294

 
Реter Konow:

私の知る限り、MS Visual Studioで作成したインターフェイスをMTプラットフォームのチャートに転送する方法は今のところありません。

なぜそう思うのですか?まあ、ありますよ、いくつかありますけど。なぜインターフェイスをプロットに移すのかは不明だが、もしそうなら、おそらく存在しないのだろう。しかし、MTの上に作るのはかなり現実的です
 
Реter Konow:

...

つまり、ユーザーはプログラムのグラフィカルインターフェースの作成 に関するすべての事柄において、コードやコンパイラから完全に隔離され、スタジオが提供するビジュアルコントロールツールを扱うだけでよいということになるのです。インターフェースデザインには、「ドラッグ&ドロップ」技術や様々なオプションウィンドウが使用され、これを通じて既製のウィンドウテンプレートやコントロールのプロパティを定義することができるようになる予定です。

...

... このエンジンは ...開発者向けアプリケーションと統合するため で、すべてのグラフィック作業を実行します。

しかし、コード経由でなければ、どのように開発者のアプリと統合するのでしょうか?例えば、あるプログラムがMarket Watchのような表を出力する必要があるとします。そして、セル「A1」に「EURUSD」、セル「A2」に価格「1.238273」などを表示させる指示を出します。しかし、ツールのセットは端末によって異なるだろうし、静的にフィールドやテーブル名は単に埋めることができない。

Microsoft Visual Studioはすべてクリア-純粋なアドオンとして便利です。ソフトウェア環境 アプリケーションの作成。つまり、Visual Studioはビジュアルな開発環境とは言い難く、あなたのプログラムの場合、どのように動作するのか不明なのです。

 
Vasiliy Sokolov:

しかし、コードを通じてでなければ、どのように開発者のアプリケーションと統合するのでしょうか?例えば、Market Watchのような表を出力する必要があるとします。そして、セル「A1」に「EURUSD」、セル「A2」に価格「1.238273」などを配置するという指示を受けるはずです。しかし、ツールのセットは端末によって異なるだろうし、静的にフィールドやテーブル名は単に埋めることができない。

Microsoft Visual Studioでは、これは明確です。ソフトウェア環境 アプリケーションを作成することです。つまり、Visual Studioはビジュアルな開発環境とは言い難く、あなたのプログラムの場合、それがどのように機能するかは明らかではありません。

現在、グラフィックエンジンとユーザーアプリケーションの機能を組み合わせたソリューションが開発中です。

私が紹介できるのは、大まかなコンセプトだけです。

独自のアプリケーションを作成する場合、開発者はカスタム関数が返す変数の値(例えば、「EURUSD」の現在の買値の 値)をアプリケーションの内部ではなく、外部に保存する必要があります。

つまり、自分の変数名の代わりに、(自分のプログラムの外にある)共有メモリ配列のセルのインデックスを書き、そこに関数が返す値を格納しなければ ならなくなる。

このグローバル配列を私は「パラメータカーネル」と呼んでいる。そして、ユーザーはこのセルのアドレスをスタジオ内のコントロールに割り当てることになります。一方、グラフィックスエンジンはオブジェクトを周期的にループし、パラメータカーネルでオブジェクトにバインドされているパラメータのアドレスを調べます。そのアドレスの値がユーザー関数によって変更された場合、エンジンはウィンドウ内の値を更新する。逆に、コントロールによって値が変更された場合、ユーザー関数はその処理を受け入れることになります。

要するに、「パラメータカーネル」と呼ばれる共有メモリ上で通信する2つのプログラムの共生がこのソリューションの特徴です。GUIエンジンとユーザープログラム、両方のプログラムが端末内の異なるグラフィックに配置されます。

唯一の問題は、共有メモリの作成です。MQLで解決しようとすると、DLLに頼りたくないが、どうしようもない場合は、そこで共有メモリを作ればいい。それはもうやりましたよ。

 
Реter Konow:

唯一の問題は、共有メモリの作成です。MQLで解決しようとすると、DLLに頼りたくないのですが、どうしようもない場合は、そこで共有メモリを作ればいいのです。すでにやっています。

DLLに頼った時点で、コンセプトは何も残らない。ただ、何もない - PschickDLLを使えば、いや、DLLがなくても、何も開発せずに問題を解決することができます。そして、これが現代のプログラミングの基本的な考え方で、すでに作られているものは自分で開発してはいけないということです。
 
Yuriy Asaulenko:
なぜそう思うのですか?ありますし、少数でもしかし、なぜ、それら、インターフェイスがチャートに転写されなければならないのか、その理由は明らかではない。そうであれば、それらはおそらく存在しないのだろう。しかし、MTの上に重ねるのはかなり現実的な話です。
もっと具体的に教えてください。
 
Yuriy Asaulenko:
DLLに頼った時点で、コンセプトは何も残らないのです。ただ、何もない - Pschich.DLLを使えば、いや、DLLがなくても、何も開発せずに問題を解決することができます。
あなたのご意見をお聞かせください。
 
Реter Konow:
具体的にお願いします。

具体的にどうすればいいのか?MTの上にVSでウィンドウを作成する?これは1つのバーディーです - すべてのウィンドウの上に。

VSとのデータ交換は?最低でも4通り。

 
Реter Konow:
あなたのご意見をお聞かせください。
前の記事参照、もしくはもっと具体的にお願いします。どんな種類のWindowsでも、無理なく。
 
Реter Konow:

唯一の問題は、共有メモリの作成です。MQLで解決しようとすると、DLLに頼りたくないのですが、どうしようもない場合は、そこで共有メモリを作ればいいのです。それはもうやりましたよ。

もちろん、DLLを使った通信も可能ですが、マーケットがDLLを禁止しているので、誰もそれを必要としません。2つのプログラム間でグローバルなデータ交換を行うには、標準的なMQLの観点からは、グローバル変数を介して 交換するのが唯一の方法である。ところで、グローバル変数を介してデータをやり取りするための非常にクールなライブラリがあります。https://www.mql5.com/ru/code/12786。

一般的に、誰のためにスタジオを作るのか、あまり明確ではありません。開発者向けソリューションにAPIがない場合。特にマーケットに置かれたプログラムでは、プログラムがデータをやり取りする別のアプリケーションをドラッグしたいとは誰も思わないでしょう。

ユーザーライセンスによる解決策も、イミフですが、非常に残念な選択肢です。あるプログラマーが、あなたのスタジオをベースにプログラムを開発し、最初の月の作業費を支払った後、2ヶ月目には、あなたのスタジオのグラフィックコアが別の料金を必要としたため、彼のプログラムは動作しなくなります。嘘つけ。常に追加料金を要求されるようなパッケージをベースにする開発者はいないでしょう。しかし、ライセンスを一括で購入し、スタジオ自体がアプリケーションの一部となることを想像しても、マーケットでどのように機能するのか(ライセンスのあるプログラムの中に別のライセンスがある)、これまたよくわからない。

あなたのプロジェクトは、どのようなターゲットに向けて作られているのでしょうか?一般ユーザーがあなたのスタジオを必要とする理由は何でしょうか?MetaTrader 5でMicrosoft Wordを作成したいですか?もちろん、カッコいいんだけど、WHY?人々は、用意されたソリューションにお金を払うのです。特定の仕事をするプログラムやアルゴリズムの場合。フォームを作成する必要はない。プログラムが必要なのです。そして、まさにこれらのプログラムを書くプログラマーは、あなたのスタジオを使うことができません。

今はマーケットに重点を置かなければならないことを理解してください。インフラを作ろうと思ったら、まず「マーケットでビジネスをしている、あるいはフリーランスで仕事をしているプログラマーが、なぜ私のスタジオを使うようになるのか」という問いに答えなければならないでしょう。何を与えるのか?"