助けてください問題が解決できない、ハードウェアの限界にぶつかる - ページ 20 1...131415161718192021 新しいコメント Mikhail Filimonov 2014.08.29 01:34 #191 komposterさん、EAでDLLは使えるんですか?その場合は、次のようにしてください。ZLIBを使用して、データをヘッダーテーブルファイルにパッキングします。(http://www.zlib.net/)とても早く効くようになります(驚くほど早いです。 DLLは3msecで動作可能な状態になります。すべてが "リアルタイム "で動作します)。データは5~8回に縮小され、同じファイルの最後に(パックされます)は、ID、オフセット、データ長を含むテーブルを含みます。ソースファイルに非常に多くのレコードがある場合、コンパイルする必要があります。をサブテーブル(複数のサブテーブル)にして、メインテーブルのオフセットを示すことで、不要なテーブル全体を見ずに、その一部分だけを見ることができるように。例えば、こんな感じです。USDデータは、0オフセットから1023まで格納されています。EUデータ 1024から2047まで などデータが1つのファイルにまとまらない(巨大になる)場合、そこにはもうひとつの (小さな) サブテーブルがあり、パッカーはそこにファイル番号を表示します。そして、DLLがファイルを読み込むと、サブテーブルから共通のサブテーブルを全ファイルのさらに良いことに、すべてのオフセットが最初の ファイルに格納されており、もし1つのファイルの外に出て、2番目のファイルからデータを取得する、など。忘れてた...私のアドバイスに従うなら、荷造りすることをお勧めします。 テキストデータをZlibの文字列パッキング機能(バイナリデータではなく、より高速に動作する)を使用しています。ZCompressStringという関数があると思うのですが...。 zlib Home Site www.zlib.net Web page copyright © 1996-2014 Greg Roelofs, Jean-loup Gailly and Mark Adler. zlib software copyright © 1995-2012 Jean-loup Gailly and Mark Adler. Renat Fatkhullin 2014.08.29 15:30 #192 暗号化だけでなく、ジッピングもすでに標準装備できる。https://www.mql5.com/ru/docs/common/cryptencodehttps://www.mql5.com/ru/docs/common/cryptdecodeデータ暗号化方式 データ変換(暗号化、ハッシュ計算)の方法を指定するために、関数CryptEncode(),CryptDecode()ではENUM_CRYPT_METHOD列挙を使用します。 enum_crypt_method 定数 商品説明 CRYPT_BASE64 BASE64暗号化(トランスコード) CRYPT_AES128 128ビット鍵によるAES暗号化(16バイト) CRYPT_AES256 256ビット(32バイト)AES暗号化方式 CRYPT_DES 鍵56ビット(7バイト)のDES暗号化 crypt_hash_sha1 HASH SHA1 を計算する crypt_hash_sha256 HASH SHA256を計算する CRYPT_HASH_MD5 HASH計算 MD5 CRYPT_ARCH_ZIP ZIP アーカイブ Документация по MQL5: Общие функции / CryptDecode www.mql5.com Общие функции / CryptDecode - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Need help! Can't solve Overview of available information Encryption, hashing, and data Mikhail Filimonov 2014.08.29 15:45 #193 Renat:暗号化だけでなく、ジッピングもすでに標準装備できる。https://www.mql5.com/ru/docs/common/cryptencodehttps://www.mql5.com/ru/docs/common/cryptdecodeデータ暗号化方式 データ変換(暗号化、ハッシュ計算)の方法を指定するために、関数CryptEncode(),CryptDecode()ではENUM_CRYPT_METHOD列挙を使用します。 enum_crypt_method 定数 商品説明 CRYPT_BASE64 BASE64暗号化(トランスコード) CRYPT_AES128 128ビット鍵によるAES暗号化(16バイト) CRYPT_AES256 256ビット(32バイト)AES暗号化方式 CRYPT_DES 鍵56ビット(7バイト)のDES暗号化 crypt_hash_sha1 HASH SHA1 を計算する crypt_hash_sha256 HASH SHA256を計算する CRYPT_HASH_MD5 HASH計算 MD5 CRYPT_ARCH_ZIP ZIP アーカイブ問題は暗号化ではなく、いかに素早くデータにアクセスするかということです。アーカイブの目的は、データサイズを小さくし、オフセットの高速転送を可能にすることであるメイン(20GB)のファイルではなく、5~8倍程度の小さいファイルです。しかし、パックするだけでは不十分で、データに素早くアクセスできる仕組みも必要です。P/S Zlibは、文字列の圧縮・伸張を高速に行うための機能を備えています。 Renat Fatkhullin 2014.08.29 15:49 #194 私は、データを パックしたり暗号 化するためのサードパーティのDLLが不要になったことを指摘しました。あなたのDLL方式とは対照的です。トップスターターの問題を解決する話はしていない。 Mikhail Filimonov 2014.08.29 18:38 #195 Renat:サードパーティ製のDLLでパックや暗号化する必要がなくなったことを指摘した。あなたのDLL方式とは対照的です。トピックスターターの問題を解決するとは一言も言っていない。DLLはデータを解凍するものではなく、データを素早く抽出するための仕組みで特定のスキームに従ってパッキングされたファイル。 Renat Fatkhullin 2014.08.29 19:08 #196 そのすべてが、言語を使って簡単にできるようになったのです。標準で圧縮が可能です。 Mikhail Filimonov 2014.08.29 19:31 #197 Renat: しかし、このようなことは、言語ツールを使って簡単にできるようになりました。圧縮は標準から可能です。素晴らしい!これでトピックスターターが彼の問題を解決してくれるでしょう。MQL5でファイルを扱ったことがないので、開くことが可能かどうか見てみます。MQL5でファイルを扱ったことはない。はい、そうです :)bool FileSeek( int file_handle, // handle файла long offset, // в байтах ENUM_FILE_POSITION origin // позиция для отсчета ); Будем надеятся, что терминал работает так же быстро, как и нативная DLL Renat Fatkhullin 2014.08.29 20:44 #198 すべてが機能し、速い。以上、本実装におけるファイル操作の効率化のための方法を説明しました。 Mikhail Filimonov 2014.08.31 19:17 #199 Renat: すべてが機能し、速い。以上、今回の実装でファイル操作を効率化するための方法を説明しました。端末の能力や性能を控えめに言っているわけではありませんが数年前、1.21Gbのファイルから21,345,728(!)行のデータを抽出する必要があったとき。http://ftp.micex.com/pub/info/historical_data/Securities_market/OrderBook20130206.rar形式のデータです。No、証券コード、買い、売り、時間、注文番号、アクション、価格、ボリューム、トラデノ、トラデプレート21345728,USD000UTSTOM,B,235000002,3568,0,29.6095,300000,,すると、私が示した方法で、検索時間は35〜45マイクロ秒でした。 確かに、2日以上前からファイルを用意していたのは事実です :(P / S 何を使うか(ターミナルかDLLか)ではなく、データをどう用意するかが重要です。また、端末に新機能が搭載されたことは、とても喜ばしいことです Eugeniy Lugovoy 2014.08.31 19:34 #200 Mikalas:端末の能力を過小評価しているわけではありませんが数年前に1.21GBのファイルからデータを抽出する必要があったとき、21,345,728(!)行もあったんです。http://ftp.micex.com/pub/info/historical_data/Securities_market/OrderBook20130206.rar形式のデータです。No、証券コード、買い、売り、時間、注文番号、アクション、価格、ボリューム、トラデノ、トラデプレート21345728,USD000UTSTOM,B,235000002,3568,0,29.6095,300000,,すると、私が示した方法で、検索時間は35〜45マイクロ秒でした。 2日以上前から準備していたというのが本当のところです :( ミリ秒くらいかな?WindowsベースのOSでマイクロ秒単位の計測は、どうしてもできない...。 1...131415161718192021 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
komposterさん、EAでDLLは使えるんですか?
その場合は、次のようにしてください。
ZLIBを使用して、データをヘッダーテーブルファイルにパッキングします。
(http://www.zlib.net/)
とても早く効くようになります(驚くほど早いです。
DLLは3msecで動作可能な状態になります。すべてが "リアルタイム "で動作します)。
データは5~8回に縮小され、同じファイルの最後に(パックされます)
は、ID、オフセット、データ長を含むテーブルを含みます。
ソースファイルに非常に多くのレコードがある場合、コンパイルする必要があります。
をサブテーブル(複数のサブテーブル)にして、メインテーブルのオフセットを示すことで、不要な
テーブル全体を見ずに、その一部分だけを見ることができるように。
例えば、こんな感じです。USDデータは、0オフセットから1023まで格納されています。
EUデータ 1024から2047まで など
データが1つのファイルにまとまらない(巨大になる)場合、そこには
もうひとつの (小さな) サブテーブルがあり、パッカーはそこにファイル番号を表示します。
そして、DLLがファイルを読み込むと、サブテーブルから共通のサブテーブルを
全ファイルのさらに良いことに、すべてのオフセットが最初の ファイルに格納されており、もし
1つのファイルの外に出て、2番目のファイルからデータを取得する、など。
忘れてた...
私のアドバイスに従うなら、荷造りすることをお勧めします。
テキストデータをZlibの文字列パッキング機能(バイナリデータではなく、より高速に動作する)を使用しています。
ZCompressStringという関数があると思うのですが...。
暗号化だけでなく、ジッピングもすでに標準装備できる。
データ暗号化方式
データ変換(暗号化、ハッシュ計算)の方法を指定するために、関数CryptEncode(),CryptDecode()ではENUM_CRYPT_METHOD列挙を使用します。
enum_crypt_method
定数
商品説明
CRYPT_BASE64
BASE64暗号化(トランスコード)
CRYPT_AES128
128ビット鍵によるAES暗号化(16バイト)
CRYPT_AES256
256ビット(32バイト)AES暗号化方式
CRYPT_DES
鍵56ビット(7バイト)のDES暗号化
crypt_hash_sha1
HASH SHA1 を計算する
crypt_hash_sha256
HASH SHA256を計算する
CRYPT_HASH_MD5
HASH計算 MD5
CRYPT_ARCH_ZIP
ZIP アーカイブ
暗号化だけでなく、ジッピングもすでに標準装備できる。
データ暗号化方式
データ変換(暗号化、ハッシュ計算)の方法を指定するために、関数CryptEncode(),CryptDecode()ではENUM_CRYPT_METHOD列挙を使用します。
enum_crypt_method
定数
商品説明
CRYPT_BASE64
BASE64暗号化(トランスコード)
CRYPT_AES128
128ビット鍵によるAES暗号化(16バイト)
CRYPT_AES256
256ビット(32バイト)AES暗号化方式
CRYPT_DES
鍵56ビット(7バイト)のDES暗号化
crypt_hash_sha1
HASH SHA1 を計算する
crypt_hash_sha256
HASH SHA256を計算する
CRYPT_HASH_MD5
HASH計算 MD5
CRYPT_ARCH_ZIP
ZIP アーカイブ
問題は暗号化ではなく、いかに素早くデータにアクセスするかということです。
アーカイブの目的は、データサイズを小さくし、オフセットの高速転送を可能にすることである
メイン(20GB)のファイルではなく、5~8倍程度の小さいファイルです。
しかし、パックするだけでは不十分で、データに素早くアクセスできる仕組みも必要です。
P/S Zlibは、文字列の圧縮・伸張を高速に行うための機能を備えています。
私は、データを パックしたり暗号 化するためのサードパーティのDLLが不要になったことを指摘しました。あなたのDLL方式とは対照的です。
トップスターターの問題を解決する話はしていない。
サードパーティ製のDLLでパックや暗号化する必要がなくなったことを指摘した。あなたのDLL方式とは対照的です。
トピックスターターの問題を解決するとは一言も言っていない。
DLLはデータを解凍するものではなく、データを素早く抽出するための仕組みで
特定のスキームに従ってパッキングされたファイル。
しかし、このようなことは、言語ツールを使って簡単にできるようになりました。圧縮は標準から可能です。
素晴らしい!これでトピックスターターが彼の問題を解決してくれるでしょう。
MQL5でファイルを扱ったことがないので、開くことが可能かどうか見てみます。
MQL5でファイルを扱ったことはない。
はい、そうです :)
すべてが機能し、速い。以上、今回の実装でファイル操作を効率化するための方法を説明しました。
端末の能力や性能を控えめに言っているわけではありませんが
数年前、1.21Gbのファイルから21,345,728(!)行のデータを抽出する必要があったとき。
http://ftp.micex.com/pub/info/historical_data/Securities_market/OrderBook20130206.rar
形式のデータです。
No、証券コード、買い、売り、時間、注文番号、アクション、価格、ボリューム、トラデノ、トラデプレート
21345728,USD000UTSTOM,B,235000002,3568,0,29.6095,300000,,
すると、私が示した方法で、検索時間は35〜45マイクロ秒でした。
確かに、2日以上前からファイルを用意していたのは事実です :(
P / S 何を使うか(ターミナルかDLLか)ではなく、データをどう用意するかが重要です。
また、端末に新機能が搭載されたことは、とても喜ばしいことです
端末の能力を過小評価しているわけではありませんが
数年前に1.21GBのファイルからデータを抽出する必要があったとき、21,345,728(!)行もあったんです。
http://ftp.micex.com/pub/info/historical_data/Securities_market/OrderBook20130206.rar
形式のデータです。
No、証券コード、買い、売り、時間、注文番号、アクション、価格、ボリューム、トラデノ、トラデプレート
21345728,USD000UTSTOM,B,235000002,3568,0,29.6095,300000,,
すると、私が示した方法で、検索時間は35〜45マイクロ秒でした。
2日以上前から準備していたというのが本当のところです :(