無料でロボットをダウンロードする方法を見る
Facebook上で私たちを見つけてください。
私たちのファンページに参加してください
興味深いスクリプト?
それではリンクにそれを投稿してください。-
他の人にそれを評価してもらいます
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
ライブラリ

EAX_Mysql - MySQLライブラリ - MetaTrader 5のためのライブラリ

発行者:
Michael Schoen
ビュー:
1398
評価:
(40)
パブリッシュ済み:
2016.06.10 13:20
アップデート済み:
2016.11.22 07:34
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動

私は偶然MQL5に出会いMySQLライブラリを組み立てることを余儀なくされました。他のライブラリでもそうですが、例でライブラリの使用方を示したいと思います。ライブラリで実際に最も重要なことは、それを使用する方法の例です。

例:

データの読み込み

#include <EAX\EAX_Mysql.mqh>

EAX_Mysql *db = new EAX_Mysql();

db.connect("myhost.mydomain.com", "myusername", "mypassword", "mydatabase", "mytable");

int iResults = db.read_rows("SELECT password, COUNT(*) as Hits FROM users GROUP BY password");
for (int i=0; i < iResults; i++) {
   string password = (string) db.get("password",i);
   int    hits     = (int) db.get("Hits", i);
}


データの供給

#include <EAX\EAX_Mysql.mqh>

// グローバルl
EAX_Mysql *db = new EAX_Mysql();

void OnInit() {
    db.connect("myhost.mydomain.com", "myusername", "mypassword", "metatrader", "Ticks";
}

void OnTick() {
    MqlTick tick;
    SymbolInfoTick(_Symbol,tick);
    // Ticks表に新しいデータセットを追加する
    db.AddNew("Ticks");
    // 値を書き込む
    db.set("symbol", _Symbol);
    // MySQLが変換できる場合はDBのフィールドに数字を送信できる
    db.set("ask", tick.ask);
    db.set("bid", tick.bid);
    db.set("last", tick.last);
    db.set("time", TimeToString(tick.time,TIME_DATE) + " " + TimeToString(tick.time,TIME_SECONDS));
    db.set("volume", tick.volume);
    db.write();

}

void OnDeinit() {
   // メモリを開放する
   delete db;
}


データとの対話

EAX_Mysql *db = new EAX_Mysql();

db.connect("myhost.mydomain.com", "myusername", "mypassword", "metatrader", "mytable")

// AgentsOnline (required to identify the correct Primary Key)の表を選択する
db.select("AgentsOnline");
// 主キー5とデータセットを読み込む
db.read("5");
// 任意の列を変更する
db.set("lastupdate", (string) TimeLocal());
// 書き込む
db.write();

インストール:

  • MQL5データディレクトリ(MQL5)を特定します。
  • 使っているMetaTrader環境に合う(32または64ビット)Connector/C (libmysql)をダウンロードしてlibymsql.dll をMQL5\Librariesに配置します。
  • Include内にEAXフォルダを作成します。
  • EAX_Mysql.mqhをMQL5\Include\EAXに配置します。

問題点:

  • 内部ではライブラリポインタ共有接続が使用されているのでこのライブラリは一度に複数のDB接続を処理することはできません(接続プーリングを移行/追加する必要はありませんでした)。
  • 本当のエラー処理(mysql)わなく、データベース接続が失われることがあります。
  • エラー処理がなDBに再接続しません(=>DBプーリング)。
  • 複数列の主キーはサポートされていません。
  • まだベータ版です。 ベータ版をテストしたい場合は私にメールを送ってください。
  • データ型は処理されません。(内部的に文字列のみ)コード/データベース上にある必要があります。
  • データベース通信は、ISOです。UTF-8用のポインタ/文字列算術を調整するのは面倒くさすぎます。

クレジット:

  • http://mqlmagazine.com/mql-programming/mql5-connecting-to-mysql/
  • https://www.mql5.com/en/articles/364

MetaQuotes Ltdによって英語から翻訳されました。
元のコード: https://www.mql5.com/en/code/855

ボリンジャーチャネルの価格 ボリンジャーチャネルの価格

この指標は、(別のウィンドウで)移動平均線と価格バーの投影に相対するボリンジャーバンドを描画します。

CFastFile - 仮想ファイルとしてuchar配列を扱うためのクラス CFastFile - 仮想ファイルとしてuchar配列を扱うためのクラス

CFastFileは、ディスク上の物理ファイルへのデータの中間書き込みの必要性を排除します。データの取り扱いは大幅に加速されます。

Statistics.mqh 関数 Statistics.mqh 関数

平均値の算出、分散、非対称性、過剰、共分散、相関関係などを含む様々な統計関数を含むライブラリ。

オブジェクト説明アクティベーター オブジェクト説明アクティベーター

非プログラマのために「チャートオブジェクトの説明」を有効にします。開いているすべてのチャートウィンドウのため。