記事、GUI、C#の無限の可能性など、すべて素晴らしいのですが、なぜテーブルがないのですか?何か問題があるのですか?
資料の量が多すぎますし、C#のテーブルはとても複雑な要素です。三段跳びのようなものです。基本的な要素を実装して加速してから、複雑なテーブルに挑戦する必要があります。
資料の量が多すぎるし、C#のテーブルは非常に複雑な要素だ。三段跳びのようなものだ。基本的な要素を実装して加速してから、複雑なテーブルに挑戦する必要があります。
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.FileNotFoundException: Не удается найти указанный файл. (Exception from HRESULT: 0x80070002)
at System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)
at System.Reflection.Assembly.LoadFile(String path)
at MtGuiController.GuiController.GetGuiController(String assembly_path, String form_name)
at MtGuiController.GuiController.ShowForm(String assembly_path, String form_name)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Wrapper.Wrapper.Call(MethodInfo method, Int64 owner, Int64 parameters, Int64 result)
.Net runtime error
記事からExpert Advisorを起動するとエラーが発生する。
記事のExpert Advisorを実行するとエラーが発生する。
プログラムファイルのパスが絶対パスになっているので、実際のパスに変更する必要がある。MTのようにユニバーサルカタログを作成することはできません。
プログラムファイルへのパスは絶対パスなので、実際のパスに変更する必要がある。MTのようにユニバーサル・カタログを作ることはできない。
string assembly = "c:\\Users\\Bazil\\source\\repos\\DemoForm\\DemoForm\\bin\\Debug\\DemoForm.exe";
このファイルはどこにもありません。提供されたC#ソースからコンパイルすることはまだできません。
このファイルはどこにも見当たりません。提供されたC#ソースからまだコンパイルできない。
奇妙なことに、アーカイブに添付するのを忘れてしまったようだ。数時間後に投稿します。
アーカイブに添付
ありがとう。
// DemoForm.exeをライブラリに入れた。 string assembly = TerminalInfoString(TERMINAL_PATH) + "\\MQL5\\Libraries\\DemoForm.exe";
C#-windowsでの作業で、非常に重大なエラーを発見しました。C#ウィンドウを動かし続けると、数秒後にターミナルが画面から消えてしまい、terminal64.exeのCPUコア負荷が100%を超えてしまいます。私は8コアなので、CPUのTaskManagerのフルコア負荷は12~13%です。C#ウィンドウが動いているときは19%です。
グラフィックカードはCPU内蔵で、ビデオカードはありません。問題はディスプレイにあると思った。そのため、このようなテスト・アドバイザーを走らせた。
int handle = INVALID_HANDLE; void OnInit() { if (EventSetTimer(1)) handle = FileOpen(__FILE__, FILE_WRITE | FILE_TXT); } void OnDeinit( const int ) { if (handle != INVALID_HANDLE) FileClose(handle); } void OnTimer() { if (handle != INVALID_HANDLE) FileWriteString(handle, (string)TimeCurrent() + "\n"); }
マーケット・ウォッチから1秒ごとに時間を書き込んでいる。これはC#ウィンドウを動かしたときに記録されたものだ。
2019.06.11 16:22:09 2019.06.11 16:22:11 2019.06.11 16:22:11 2019.06.11 16:22:19 2019.06.11 16:22:23 2019.06.11 16:22:24 2019.06.11 16:22:26 2019.06.11 16:22:28 2019.06.11 16:22:31 2019.06.11 16:22:33 2019.06.11 16:22:34 2019.06.11 16:22:36 2019.06.11 16:22:37 2019.06.11 16:22:45 2019.06.11 16:22:45 2019.06.11 16:22:48 2019.06.11 16:22:51 2019.06.11 16:23:07 2019.06.11 16:23:08 2019.06.11 16:23:10
OnTimerが数秒間実行されなかったことがよくわかる。つまり、C#ウィンドウを移動させると、ターミナルのExpert Advisorの実行が停止してしまうのです。
この問題はこの記事のC#ウィンドウだけではありません。
ターミナルメニューから手動でGuiControllerElementsDemoを 削除すると、数秒間フリーズします。

- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事 Net Framework および C# に基づくグラフィカル インターフェイスの開発 (パート 2): その他のグラフィカル要素 はパブリッシュされました:
この記事は、前回の記事".Net Framework と C#に基づいてEAとインジケータのグラフィカルインターフェイスを開発する"のフォローアップです。 グラフィカルインターフェイスを作成するための新しいグラフィカル要素を紹介します。
2 番目のバージョン以降、コントローラーはメッセージ ボックスをサポートしています。 これは、標準的なユーザー情報要素です。 また、ユーザーにオプションを提供し、選択したオプションの形式で応答を受け取ります。
メッセージ ウィンドウのデモンストレーションを開始するには、EAを起動するときに Windows フォーム要素タイプ パラメータの [ボタンとメッセージ ボックス] オプションを選択します。 EAを起動すると、次のいずれかのオプションを選択するように求めるフォームが表示されます。
図3. メッセージ ボックスを呼び出すサンプル フォーム
このフォームは、一連のものと同様に、デモンストレーション形式であるため、トレードロジックは装備されていません。 ただし、いずれかのボタンを押すと、EAは選択したアクションの確認を求めるアラートメッセージを送信します。 たとえば、[(SELL)売り] をクリックすると、次のメッセージ ウィンドウが表示されます。
図4. トレーディングEAは、新しいショートポジションを開くために確認
作者: Vasiliy Sokolov