Tests.mq5でバグを発見:
2016.05.20 16:08:58.128 Tests (GAZR-6.16,D1) 'RegexFCD.mqh' (87,20) の無効なポインタ アクセス
ログを添付します。再現するには、EAを添付し、"RegexOptions "の "Run "をクリックし、"RegexReplace "をクリックする。
ファイル:
20160520-bug.log
5 kb
ソースコードのリンクが壊れている
クールだ。基本的にはMQL6だ!異なる 拡張構文と新機能。
Vasiliy Sokolov:
クールだ。基本的にはMQL6だ!異なる 拡張構文と新機能。
クールだ。基本的にはMQL6だ!異なる 拡張構文と新機能。
ヴァシリー、それのどこがクールなんだ?
君によれば、MQL5は.NETに堕落するらしいね:
本当の著者:
マイクロソフト株式会社。ソースコードは.Net Framework 4.6.1 から引用しています。
そして、それはmql6になりますか?
取引についてはどうですか?そして、なぜ同じMQLでMQLで作られたレポートを解析するのですか?
#include <Internal\Generic\List.mqh> //+------------------------------------------------------------------+ //| スクリプト番組開始機能| //+------------------------------------------------------------------+ void OnStart() { List<int> list(10); }
'IComparer' - declaration without type List.mqh 407 28
List.mqhにインクルードを追加する必要があります:
#include <Internal\Generic\IComparer.mqh>
Rashid Umarov:
まず、この例では、端末がコンテキストメニューから生成するトレードレポートについて説明します。
第二に、正規表現はあらゆる種類のレポートを解析するための幅広いタスクを解決するのに役立ちます。特定のフォーマットのために正規表現を書くことは、本格的なテキスト解析プログラムを書くよりもはるかに簡単です。
例を挙げればすべて明らかだ。
私の投稿は、Vasiliy Sokolovの クールさについての歓喜に関するものだった。
どうやら彼は先日正規表現に出会ったらしい。
すべてのmt5ファイルをありがとう

取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
MQL5での正規表現の動作の為のRegularExpressions:
正規表現は、迅速かつ柔軟なテキストの処理の為の正式言語です。各正規表現は、正規表現エンジンが入力テキスト内で一致するものを検索するテンプレート(マスク)です。パターンは、一個以上の文字リテラルや演算子、構成体で構成されています。
また、ライブラリと一緒に一度にテストケースの役割を実行するいくつかのデモンストレーション例が含まれています。全ての例はMicrosoft Corporationの公式サイトより転載されており、これらの例はC#正規表現とMQL5での使用の特徴との、主要な違いを明確に示しています。
ライブラリの使用には、\MQL5\Include\RegularExpressions\ディレクトリのRegex.mqhファイルをあなたのコードに接続する必要があります。
MQL5の為のRegularExpressionsを使った作業例:
正規表現を使った例として、ターミナルからhtmlファイル形式でダウンロードされた取引履歴の解析を見てみましょう。ザを作成します。
このドキュメントは二つの主要テーブル(『注文』と『取引』)を含んでいます。
ファイル解析の為の正規表現を作成します。
この正規表現を見ていきましょう。
次に、行ごとにファイルを読み込み、この正規表現に当てはまる全ての一致を取得します。
『注文』と『取引』テーブルのレコード(タプル)であるHTMLファイルの行では、このような一致は一番多く、特に23と27の一致になります。つまり、あとはこれらの行から私達に必要な全ての情報を引き出すだけです。
『注文』テーブル:
私達は一致数は23と確認したので、次に『注文』テーブルのレコードに移ります。私たちのレコードの最初の表現として、文字列の配列を作成します。全ての奇数の一致を通過し、matches[j][.Value()メソッドを使いこれらの一致の値を取得します。そして、'>'と'<'のシンボルに対応する最初と最後のシンボルを一致したものから切り離します。フォーマットされた一致をそれぞれ、以前に宣言されている配列inに入れます。次に、『注文』テーブルの一つのレコードを表示するOrderRecord(in)クラスの新しいインスタンスを作成し、それをm_list1リストへ追加します。このリストは『注文』テーブルを解釈します。
同様に、『取引』テーブルも処理します。
ここではm_list2 は、 DealRecordクラスへのポインタのリストで、今度は『取引』テーブルを表示します。
これらの二つのリストはTradeHistoryクラスのメンバーです。このクラスは私たちの全てのHTMLソースファイルの表現です。また、FindAllOrders(const int columnIndex,const T value)やFindAllDeals(const int columnIndex,const T value)メソッドを使用して『注文』や『取引』テーブルに簡単なフィルタを適用することができます。
私たちのエキスパートアドバイザに、これらの機能をデモンストレーションする為の簡単なグラフィックインターフェースを作成しましょう。
作者: MetaQuotes Software Corp.