記事"MQLベースのエキスパートアドバイザとデータベースの統合 (SQL server、.NET、および C#)"についてのディスカッション

 

新しい記事 MQLベースのエキスパートアドバイザとデータベースの統合 (SQL server、.NET、および C#) はパブリッシュされました:

この記事では、MQL5 ベースのEAに対して Microsoft SQL server データベースサーバーを使用する方法について説明します。 DLL からの関数のインポートが使用します。 DLL は、Microsoft .NET プラットフォームと C# 言語を使用して作成します。 この記事で使用するメソッドは、マイナーな調整があり、MQL4で書かれているEAに適しています。

MQL5コミュニティでは、たびたびEAにデータベースとタスクを統合する方法についての質問が浮上します。 このトピックへの関心は驚くべきことではありません。 データベースは、データを保存する手段として非常に優れています。 ターミナルログとは異なり、データはデータベースから消えません。 必要なものだけを選び、選別し、フィルターし易いという特徴があります。 データベースを使用すると、特定のコマンドなど、必要な情報をエキスパートに渡すことができます。 そして最も重要なことに、得られたデータは、異なる観点から分析し、統計的に処理することができます。 たとえば、1行のクエリを作成するだけで、各通貨ペアの指定した時間の平均と総利益を調べることができます。 そして手動でトレードターミナルのアカウント履歴を計算する場合、かかる時間を想像してみてください。

残念ながら、メタトレーダーは、データベースサーバーと通信するための組み込みツールを提供していません。 この問題は、DLL ファイルから関数をインポートすることによってのみ解決できます。 このタスクはシンプルではありませんが、実行可能です。

EAを起動し、接続文字列の値をデータベース・サーバのアクセス・パラメータに変更します。 すべてが正しく行われている場合、エキスパートは次をログに出力します。

2018.07.10 20:36:21.428    MqlSqlDemo (EURUSD,H1)    Connected to database.
2018.07.10 20:36:22.187    MqlSqlDemo (EURUSD,H1)    Created table in database.
2018.07.10 20:36:22.427    MqlSqlDemo (EURUSD,H1)    Data written to table.
2018.07.10 20:36:22.569    MqlSqlDemo (EURUSD,H1)    Number read from database: 1
2018.07.10 20:36:22.586    MqlSqlDemo (EURUSD,H1)    String read from database: Test

データベースへの接続、SQL コマンドの実行、データの書き込みと読み取り-すべてが正常に実行されました。

作者: Сергей Ткаченко