ロフィルドの図書館 - ページ 3

 
Roffild:

なぜ、複雑なものを作る必要があるのでしょうか?

この例では、インジケータではなく、Expert Advisorの情報を 外部コードを作成することなくインジケータとして 出力することが可能であることを実証しています。

ToIndicator_Example.mq5が動作しなかった場合、Indicators folderRoffildのコードはターミナル起動 時にビルドされていないはずです。ログがあると助かる。

もちろん、何でも一から作ることに慣れているので、誰も新しいライブラリを覚えようとは思わないのですが、今の世の中、サードパーティのコードを使うのは当たり前...。

プラットフォームの開発者は、ソフトウェア・モジュールを機能別にランク付けするシステムを体系的に改善しているのに、あなたとあなたのライブラリは逆の方向に進み、またすべてを脱人格化しようとしている...))
 
Ivan Negreshniy:
プラットフォームの開発者は、ソフトウェア・モジュールを機能別にランク付けするシステムを体系的に改良しているのに、あなたとあなたのライブラリは逆の方向に進み、またすべてを脱人格化したがる...))

モジュールに分割するためには、依存関係管理システムが必要です。現在、MQLにはそのようなシステムはありませんし、今後もないでしょう。

通常の開発では、Expert Advisor、Libraries、Indicator、Scriptという明確な区分はなく、すべてが相互に関連している。MQでは、それらを分離することにしたのです。この部門は、CodeBaseに殺到するような小規模なプロジェクトに適して います。

CodeBaseにこのライブラリがない主な理由は、すべてのファイルを1つのアーカイブにまとめたり、バージョン管理システムを通じて公開することができないからです。今までは、1つ1つのファイルをデータベースに追加しなければなりませんでしたが、それはナンセンスです...。そのため、CodeBaseではこの制約のために中・大規模なプロジェクトができないのです。

 
こんにちは、あなたはログ(Log4MQL.mqhとLog4MQL_tofile.mqh+LogMXのモジュール)のためのライブラリの使用をどのようにログに書き込むかを コード化することができます。
 
ファイル:
 

ロフィルド図書館

私はMQL5プログラミング・コミュニティではRoffildとして知られており、これは私のMQL5用オープンソース・ライブラリです。昔、一般的なプログラミング言語の標準となった機能をMQL5で実現しようとしたものです。1つのファイルに1つのアイデアを実装しています。ライブラリーは、新しい機能が必要になったときに補充されます。

Githubにプロジェクトを掲載しようとした人はほとんどいない。統一された規格はありません。MetaQuotesは、プロジェクト作成時にバージョン管理システムの利用を考慮していません。なぜかMetaQuotesのプログラマーは、プロジェクトは1種類でなければならないと考えています。MQL5.comのCodeBaseで公開されているような小規模なプロジェクトでは、この区分は合理的です。中・大規模プロジェクトでは、1つのプロジェクトタイプを選択することは不可能です。

プロジェクト構築の構造をいろいろと実験してみたんです。Gitを使うために、MetaQuotesの標準的なフォルダ構造の外にファイルを移動させる必要があったのです。中間フォルダ(このライブラリでは "Roffild "フォルダ)へのリンクを作成するのが最も良い方法です。

MetaEditorはUTF-16でコードを保存できますが、BOM付きのUTF-8エンコーディングもサポートされています。ソースコードファイルを変換するには、サードパーティ製のエディタ(メモ帳++ をお勧めします)を使用する必要があります。

ライブラリーは、関心ごとに細分化することができます。

  • 一般的なタスク(ArrayList、Log4MQL、ToIndicatorなど)。
  • は、機械学習におけるAlgLibの実験です。
  • AlgLibの機能では不十分な場合に、Amazon Web Services(EC2およびEMR)でApache Sparkを使用する。

ドキュメンテーション

MQL5
ジャワ

参考文献

ロフィルド・ドットコム
ギズブ
MQL5.com:英語でのトピックについて
MQL5.com:ロシア語での議論のためのトピック


インストール

(オプション)

mklink /j link where - は、管理者権限を必要としません。

APPDATA%MetaQuotesフォルダをパーティションのルートまたは大きなパーティションに置くことは理にかなっています。 Windowsには255文字のファイルパスの制限があります。MQL5のフォルダに88文字でフルパスしているのですが、テスト時に端末が履歴をローカルエージェントの数だけコピーしてしまい、このフォルダのサイズが数Gバイト大きくなってしまいます。

  1. フォルダ %APPDATA%MetaQuotes を D:\MQLProjects に移動します。
  2. mklink /j %APPDATA%MetaQuotes D:\MQLProjects
  3. mklink /j D:\MQLProjects\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\ D:\MQLProjects\MQL5

(重要)

プロジェクトのクローン後、MQL5MyProjects﹑RoffildLibraryフォルダーからcreate_links.batを実行します。

コードスタイル

Google Javaスタイル

タブ=3スペース

カラムリミット=110

ライセンス

Apacheライセンス2.0

 
Библиотека Roffild’a
Библиотека Roffild’a
  • roffild.com
Я известен сообществу программистов на MQL5 под ником Roffild и это моя библиотека с открытым кодом для MQL5. Попытка реализовать возможности на MQL5, которые уже давно стали стандартом для популярных языков программирования. В каждом файле реализована одна идея. Библиотека пополняется по мере необходимости в новых возможностях. Мало кто...
 
MySQLフォーマットファイルへのデータ 書き込み」がありますが、なぜこのフォーマットからの読み込みがないのですか?
 
Aleksey Vyazmikin:
MySQLファイルフォーマットへのデータ 書き込み」がありますが、なぜこのフォーマットからの読み込みがないのでしょうか?
なぜなら、テキスト形式に書き込むのは簡単ですが、この形式から読み取るにはパーサーを使う必要があるからです。https://en.wikipedia.org/wiki/Parsing
Parsing - Wikipedia
  • en.wikipedia.org
The term has slightly different meanings in different branches of linguistics and computer science. Traditional sentence parsing is often performed as a method of understanding the exact meaning of a sentence or word, sometimes with the aid of devices such as sentence diagrams. It usually emphasizes the importance of grammatical divisions such...
 
Roffild:
なぜなら、テキストフォーマットに書き込むのは簡単ですが、このフォーマットから読み込むにはパーサーを使わなければならないからです。https://en.wikipedia.org/wiki/Parsing

例えば、MQLを使って1000カラムを作るのは、全然簡単じゃない...。

 
Aleksey Vyazmikin:

ある人にとっては簡単なことでも、ある人にとってはそうではない、例えばMQLを使って1000カラムを作るのは全然簡単じゃない...。

あの...MQLにはカラムが全くありません。そして、MQL != SQLは全く別の言語です。

SQLを知っている人は、パスが5000本を超えると最適化後のベストパスのふるい分けが楽になります。TesterSql.mqh に実装。