私は偶然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();
インストール:
問題点:
クレジット:
MetaQuotes Ltdによって英語から翻訳されました。
元のコード: https://www.mql5.com/en/code/855
ボリンジャーチャネルの価格
この指標は、(別のウィンドウで)移動平均線と価格バーの投影に相対するボリンジャーバンドを描画します。
CFastFile - 仮想ファイルとしてuchar配列を扱うためのクラス
CFastFileは、ディスク上の物理ファイルへのデータの中間書き込みの必要性を排除します。データの取り扱いは大幅に加速されます。
Statistics.mqh 関数
平均値の算出、分散、非対称性、過剰、共分散、相関関係などを含む様々な統計関数を含むライブラリ。
オブジェクト説明アクティベーター
非プログラマのために「チャートオブジェクトの説明」を有効にします。開いているすべてのチャートウィンドウのため。