攻略テスターへの不満。MQL開発者への不満。 - ページ 7

 

(続き)

マーケットがAskとBidのティックに強い影響を与えることを示す、分析的理解の簡単な プログラムをいくつか作ってみました。


は、すでにフォーラムの引用でその場所を発見しましたか?

おみごと)

PS/テスターは、ロボットの性能を確認するために必要です。オプティマイザーでパラメータが安定することを確認。テスターは戦略を立てないし、オプティマイザーは市場を推測しない。

 

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

ストラテジーテスターへの不満、MQL開発者への不満。

レナート・ファットフーリン さん 2017.12.02 15:23

そして、弱圧縮モードのZIPがどのように圧縮されるかを比較するのです。BMPファイルがそうなのかもしれませんね。

資源圧縮が効く

直接の反論を背景に、証拠もなしにそんなことを言うのは本気ではない。

このコードを ご利用ください。私のEX5は1,717,722byteです。ZIPの最弱圧縮モードでは1,177,567バイトです。

Demo_BitmapOffset (OBJPROP_XOFFSET и OBJPROP_YOFFSET)
Demo_BitmapOffset (OBJPROP_XOFFSET и OBJPROP_YOFFSET)
  • 投票: 19
  • 2011.03.25
  • MetaQuotes Software Corp.
  • www.mql5.com
С появлением двух новых свойств стало возможным загружать одно изображение с набором из нескольких картинок. Такая технология давно используется в web-дизайне и получила название Спрайт: Важно: для использования свойств OBJPROP_XOFFSET и OBJPROP_YOFFSET обязательно указывайте размер области видимости с помощью свойств OBJPROP_XSIZE и...
 
fxsaber:

このコードを ご利用ください。私のEX5は1,717,722byteです。最弱モードでのZIP - 1 177 567バイト。

その通り、これらの特殊なファイルは圧縮が弱く、EXファイルサイズもそれなりです。

もちろん、EX内部ではリソースが圧縮されている。

 
Renat Fatkhullin:

その通り、これらの特殊なファイルは圧縮率が低く、EXファイルサイズはそれなりに大きいです。

もちろん、EX内部のリソースは圧縮されています。

いいえ、残念ながら。

void OnStart()
{
  uchar Data[];
  uchar Key[1];
  uchar Result[];
  
  FileLoad("thousands_rubies_galaxy.bmp", Data);  
  Print(CryptEncode(CRYPT_ARCH_ZIP, Data, Key, Result));
  
  ArrayFree(Data);
  
  FileLoad("space_wind.wav", Data);  
  Print(CryptEncode(CRYPT_ARCH_ZIP, Data, Key, Result));  
}


結果

826534
306648


EX5よりもZIPの方が圧縮率が高いんですね。

 

リソースは最速のlzssアルゴリズムで圧縮されており、zip圧縮ではありません。

私たちは、非常に長い時間ジッパーを閉めて、長い時間ジッパーを開けるという自殺行為をしているわけではありません。

 
Renat Fatkhullin:

リソースは最速のlzssアルゴリズムで圧縮されており、zip圧縮ではありません。

私たちは、非常に長い時間ジッパーを閉めて、長い時間ジッパーを開けるという自殺行為をしているわけではありません。

#define  BENCH(A)                                                              \
{                                                                             \
  const ulong StartTime = GetMicrosecondCount();                              \
  A;                                                                          \
  Print("Time[" + #A + "] = " + (string)(GetMicrosecondCount() - StartTime)); \
} 

void OnStart()
{
  uchar Data[];
  uchar Key[1];
  uchar Result[];
  
  FileLoad("thousands_rubies_galaxy.bmp", Data);  
  BENCH(Print(CryptEncode(CRYPT_ARCH_ZIP, Data, Key, Result)))
  
  ArrayFree(Data);
  
  FileLoad("space_wind.wav", Data);  
  BENCH(Print(CryptEncode(CRYPT_ARCH_ZIP, Data, Key, Result)))
}

結果

826534
Time[Print(CryptEncode(CRYPT_ARCH_ZIP,Data,Key,Result))] = 53334
306648
Time[Print(CryptEncode(CRYPT_ARCH_ZIP,Data,Key,Result))] = 29029

80msは自殺行為か?

 
fxsaber:




結果

80msは自殺行為?

Celeronで実行します。

そして、プロジェクトの 中でより大きなファイルサイズのバリエーションにスケールアップしていきます。

 
Renat Fatkhullin:
セロロンで走らせる。

もちろん、相対的な時間のことです。私のi7では、KBからのソースコードのコンパイルには

'demo_bitmapoffset.mq5' demo_bitmapoffset.mq5   1       1
0 error(s), 0 warning(s), compile time: 232 msec                1       1


とコメントしたとき。

//#resource "\\Files\\thousands_rubies_galaxy.bmp";
//#resource "\\Files\\space_wind.wav";


30msの短縮を得ることができました。

'demo_bitmapoffset.mq5' demo_bitmapoffset.mq5   1       1
0 error(s), 0 warning(s), compile time: 202 msec                1       1


ピュアZIP(80ms)への総変更には282msが必要です。だから、スローダウンは21.5%となる。しかも、これは最もシンプルなソースコードの場合です。

秒単位でコンパイルするようなソースであれば、1%程度の速度低下となります。この場合、大したことはないように思えるが。

 

いいえ、私たちは、リソースはプロセッサの動物園全体で可能な限り高速に圧縮・解凍されるべきであると考えていましたし、今もそう考えています。セミバイタルアトムをはじめ、経済性で首を絞められたプロセッサがたくさんあります。現在の強力なプロセッサーと比較すると、十数倍の速度低下があるのです。

ところで、MT5の最新ビルドでは、リソースの圧縮や初期化方法による保護の影響を深く評価した結果、ターミナルと エディタの起動 速度を劇的に向上させました。ローエンドのプロセッサーで丸々1秒稼ぎました。

本格的なi7/xeonでは感知できないことが、atoms/celebronやそれに近い性能のものでは数秒のうちに大惨事となったのです。

 
Renat Fatkhullin:

いいえ、私たちは、リソースはプロセッサの動物園全体で可能な限り高速に圧縮・解凍されるべきであると考えていましたし、今もそう考えています。セミバイタルアトムをはじめ、経済性で首を絞められたプロセッサがたくさんあります。現在の強力なプロセッサーと比較すると、十数倍の速度低下があるのです。

ところで、MT5の最新ビルドでは、リソースの圧縮や初期化方法による保護の影響を深く評価した結果、ターミナルと エディタの起動 速度を劇的に向上させました。ローエンドのプロセッサーで丸々1秒稼ぎました。

本格的なi7/xeonでは感知できないことが、atoms/celebronやそれに近い性能のものでは数秒のうちに大惨事となったのです。

このようなリサーチには脱帽です。CopyTicksやCustomSymbolにも同じように徹底して欲しいです。そこはほとんど災難でしたね。