MetaEditorヘルプSQLデータベースの操作

SQLデータベースの操作

MetaEditorはデータベースを操作するための便利なオプションを備えています。これらの機能は、人気あるSQLite エンジン統合に基づいて実装されています。データベース全体は、ユーザPCのハードディスク上の単一のファイルに収まります。

MetaEditorではデータベースを操作するための主な機能にアクセスし、次のことができます。

  • データベースの作成と接続
  • テーブルの表示とクイックデータクエリの実行
  • SQLクエリの作成と実行、変更のロールバック

取引戦略の開発は大量のデータの処理に関連しているため、データベースはアルゴリズム取引で広く使用されています。データベースを使用すると、次のことが可能になります。

  • 取引履歴と相場を分析する
  • 最適化とテストの結果を保存して分析する
  • 他の分析パッケージとデータを準備して交換する
  • 設定とMQL5プログラムの状態を保存する

MQL5言語は、プログラムから直接データベースを操作するための関数に対応しています。詳細については、「SQLite: MQL5でのSQLデータベースのネイティブ処理」稿をお読みください。</ t4>

データベースの作成 #

クイックデータベース作成機能は、MQL5ウィザードから利用できます。最初のテーブルを簡単に作成し、フィールドを定義できます。

ウィザードによるデータベースの作成

次のフィールドタイプを使用できます。

  • integer — 整数値
  • real — 小数値
  • text — 文字列の値
  • blob — バイナリデータの配列

フィールドにフラグを付けることもできます。

  • primary — テーブル内の各レコードを一意に識別する主キー。主キーとして使用できるのは、テーブル内で1つのフィールドのみです。このフィールドの値は一意である必要があります。
  • unique — 繰り返すことができない値を持つフィールド。既存の値を書き込もうとすると、エラーが発生します。このフラグは、一意の値を持つ必要があるフィールドに使用できます。たとえば、取引チケットに使用されるフィールドに設定できます。

ナビゲータのコンテキストメニューを使用してデータベースを作成することもできます。

  • Create database — 選択した形式の空のデータベースファイルを作成します。デフォルトの拡張子は.dbです。
  • Create from file — 既存の* .SQLデータベースに基づいてデータベースを作成します。

データベースが作成されると、適切なナビゲータセクションにリダイレクトされます。すべてのデータ操作はこのセクションから実行されます。

Import tables #

既製のCSVファイルに基づいてデータベースにテーブルを作成できます。データベースメニューの[Import tables]をクリックし、ファイルを選択して、次のパラメータを設定します。

  • データベースのテーブル名
  • 自動または手動のファイルエンコーディング検出
  • データ区切りタイプ: ,(コンマ)、;(セミコロン)、タブ、またはスペース。
  • 先頭でスキップする行数の指定
  • コメント接頭辞
  • ファイルに列名があるかどうかこのオプションを有効にすると、ファイルの最初の行の値が列名としてインポートされます。
  • 改行の決定方法: 改行のみ(LF、デフォルト)またはキャリッジリターンとラインフィード(CRLF)
  • データを新しいテーブルに追加するか、既存のテーブルに追加するか
  • ファイル内の文字列に使用する引用符: 一重または二重引用符はインポート中に削除されます。

準備の整ったテーブルのデータベースへのインポート

データベースの操作 #

ナビゲータには、データベースを操作するための個別のタブがあります。コンテキストメニューまたは[ファイル]メニューの[開く]をクリックして、データベースファイルを選択します。適切なテーブルがナビゲータに表示されます。

テーブル名をダブルクリックすると、最初の1,000レコードをすばやくクエリできます。

データベースの操作

データベースクエリを実行するには、エディターの右側に入力して[実行]をクリックします。クエリエラーが発生した場合、対応するメッセージがログに追加されます。テーブルを作成する簡単なクエリの例:

CREATE TABLE COMPANY(ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL);

The COMPANYフィールドにはRecord ID、Name、Age、Address、Salaryの5つのフィールドがあります。IDフィールドは、キー(一意のインデックス)として機能します。インデックスを使用すると、各レコードを一意に識別し、さまざまなテーブルで使用してレコードをリンクできます。これは、ポジションIDが特定のポジションに関連するすべての取引と注文をリンクする方法に似ています。

テーブルの列に、1970.01.01以降の分(UNIX時間)、秒、またはマイクロ秒で指定された時間データが含まれている場合は、それを左クリックして、必要な形式を選択します。その後、時刻は通常のYYYY.MM.DD hh:mm:ss形式で表示されます。

テーブルをファイルとして保存するには、クエリ「SELECT * FROM [テーブル名]」を使用してテーブルからすべてのデータをクエリし、コンテキストメニューの[エクスポート]をクリックします。エクスポート操作では、インポートと同じテーブルオプションを提供します。