記事"連続歩行順最適化(パート1):最適化レポートの使用"についてのディスカッション - ページ 2

 
記事は興味深い。すべてが明確に説明されている。私はC#プログラミングを勉強しているところです。C#でロボットを書くことは可能ですか?また、どのようにすれば用語で取引できるようになるのでしょうか?ありがとうございました!
 
Irina Dymura:
記事は興味深い。すべてが明確に説明されている。私はC#プログラミングを勉強しているところです。C#でロボットを書くことは可能ですか?また、どのようにすれば用語で取引できるようになりますか?ありがとうございました!

何でも可能ですが、MQL5で書く方がずっと良いでしょう。しかし、教育目的であれ、他のニーズであれ、試すことができます。いくつかの選択肢がありますが、最もシンプルで最適なのは、プロジェクトのdll(ダイナミックライブラリ)にC#ですべてのロジックを記述することです。次に、パブリッククラスを宣言し、その中にいくつかのパブリック静的メソッドを記述します(これらはMQL5ではC関数としてエクスポートされます)。おおよそ、このクラスにはロボットを初期化し、ロボットを破棄し、各ティックで呼び出されるメソッド(OnInit、OnDeinit、OnTickと同様)を含める必要があります。その後、ロボットはMQL5で作成され、作成されたdllから言及された静的関数がエクスポートされ、コンパイル後に以下のドッキングが得られます:
1.MQL5はOnInitでdllの初期化メソッドを呼び出します。DLLはロボットクラスを静的変数に初期化します。

2.MQL5 OnTickはdllからOnTickメソッドを呼び出し、それに応答して売り/買い/何もしないのサインを受け取ります。エントリーする必要があれば、MQL5で書かれたコードを使ってエントリーする。

3.MQL5のOnDeinitはロボットを削除し、我々はdllからOnDeinitメソッドを呼び出し、何かを行う。 C#では、クラスを削除する必要はありません、Garbigeコレクターがそれを行い、メモリのすべてが実質的に自動化されています。

つまり、計算はC#側で行い、取引はMQL5側で行う。

端末用の似たようなAPIもいくつかあり、C#のコードがパイプやその他の接続を通じてMQL5と直接やりとりする。githubでそのようなプロジェクトに出会ったこともあるが、私の意見としては、dllを通じてすべてを記述する方が簡単だ。

最適化管理に関する前回の連載では、dllを使ってWPF GUIとC#を接続する方法を紹介した。同じ方法でロボットをC#に転送することができる。私の記事の前にもGUIについて書かれていたが、WinFormsとMQL5だけだったので、この仕組みの一部を採用したのだが、その記事のリンクは覚えていないが、これもなかなか便利だ。この 記事のどこかで紹介したと思います。

また、本連載の第3回では、dllからMQL5に多数の静的関数をエクスポートする方法を紹介しています。

Управление оптимизацией (Часть I): Создание графического интерфейса
Управление оптимизацией (Часть I): Создание графического интерфейса
  • www.mql5.com
Вопрос альтернативного запуска терминала MetaTrader уже поднимался в статье Владимира Карпутова, а так же на сайте MetaTrader — существует страница, описывающая порядок работы и альтернативного способа запуска терминала. Оба перечисленных источника легли в основу данной статьи, однако ни в одном из них нет описания как создать удобный и...
 
こんにちは!
このプログラムを使う前に、Visual Studioを使って 変換する必要があるのですか?
 
Guilherme Mendonca:
こんにちは! このプログラムを使う前に、Visual Studioを使って変換しなければならないのでしょうか?

こんにちは。これは、すでに公開されている5つの部分から最初の記事です。第4部には完全なプログラムがあります。そして、はい、いくつかのコードをビジュアルスタジオで コンパイルする必要があります。もし、この記事で紹介されているコードについて言うのであれば、ビジュアルスタジオでコンパイルする必要があります。

 
https://www.mql5.com/ja/articles/7059