ちょっとびっくり :)私は、共有し、NOT修辞的な質問をすることを考えました。 - ページ 24

 
TheXpert:
EMAで試せたら完璧ですね。

エヘヘ・・・もうその必要はないと思います。状況が明らかになってきました。このスレッドでは恒例ですが、ちょっと驚いたので共有しようと思います...。:)

以下はテストの抜粋です。フルテストはトレイラーにあり、ライブラリもそこにあります。

..........
....................
    IntRational ira={2345,3456};
    IntRational irb={67,93};
    IntRational irc={93,67};
    t = GetTickCount();
    for(int i=0;i<Count;i++)
      {
       ira.Div(irb); ira.Div(irc);
       ira.Mul(irb); ira.Mul(irc);
       ira.Add(irb); ira.Add(irc);
       ira.Sub(irb); ira.Sub(irc);
       ira.Norm();
      }
    Print("Common time IntRational test = ", GetTickCount()-t, " ms; // ",Count," calls");
    double da=2345.0/3456.0;
    double db=67.0/93.0;
    double dc=93.0/67.0;
    t = GetTickCount();
     for(int i=0;i<Count;i++)
      {
       da/=db; da/=dc;
       da*=db; da*=dc;
       da+=db; da+=dc;
       da-=db; da-=dc;
      }
    Print("Common time double test = ", GetTickCount()-t, " ms; // ",Count," calls");
..................
......

結果

2011.04.04 20:29:15 RationalSpeedTest (EURUSD,M20) 共通時間 int test = 62 ms; // 1000000コール
2011.04.04 20:29:15 RationalSpeedTest (EURUSD,M20) 共通時間 long test = 141 ms; // 1000000コール
2011.04.04 20:29:15 RationalSpeedTest (EURUSD,M20) 共通時間 double test = 62 ms; // 1000000コール
2011.04.04 20:29:15 RationalSpeedTest (EURUSD,M20) 共通時間 IntRational test = 1032 ms; // 1000000コール
2011.04.04 20:29:14 RationalSpeedTest (EURUSD,M20) 共通時間 LongRational test = 921 ms; // 1000000コール

演算の スピードはdoubleとintが絶対に一致し、しかもlongが一番速く、Rationalは完全にダメでしたから、非常に困惑しました。

これらの実験から、私は整数テスターを作ることに少し抵抗があるように感じています。:-))

他のプロセッサーではもう少し違う結果になるかもしれませんが(テストして投稿してくださる方には感謝します)、私は大きな違いはないと思っています。

興味深いことに、忘れもしない90年代に一度、整数演算と浮動小数点演算の違いをテストしたことがあるのですが、その差は(控えめに言っても)かなり顕著でした。

まとめ - 90年代はもう終わった、今は浮動小数点演算がとても速く動く。

整数演算に変更することさえ、(トレーディングの文脈では)合理的ではありません。

最後の履歴書・・・Intelが鉄レベルで有理数演算のサポートを急がなければ、もう気にする必要はないのですが・・・。少なくとも性能面では。:)

アーメン。

// 繰り返します。このテストは1台のマーモットPCで行ったので、誤解のないようにお願いしたいのですが、皆さんもご自分のPCでテストを行い、鉄のパラメータを表示した結果を投稿してください。

// 私のコンピュータ:2ギガのRAM、Sempron 3100+ 2.2 gigahertz CPU、32ビット、WinXPオペレーティングシステム

Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
  • www.mql5.com
Основы языка / Операции и выражения / Арифметические операции - Документация по MQL5
ファイル:
 
MetaDriver:

エヘヘ・・・もうその必要はないと思います。状況が明らかになってきました。このスレッドでは恒例ですが、ちょっと驚いたので共有しようと思います...。:)



99%の控除は共通分母を必要としないので、テストは完全に正しいとは言えません。本当の意味での計算を、きちんとしなければならないのです。私の試算では、Intyは1000000倍速いです(しかも、すべてがメモリとCPUのキャッシュにあるため)。その結果は、まさに驚異的です。1秒間に2000本とか。:)

 
MetaDriver:

まとめ - 90年代はもう終わった、今は浮動小数点 演算がとても速く動く

整数演算に変更することさえ、(取引という文脈では)合理的ではない -利得は、まったく幻想的ではないにしても、無視できる ものだ。

ここ......30年くらいプログラミングをやっている人は、とっくに知っていることです。

それに、SSE2がなければ一般的な性能向上は望めないので、SSE2に切り替えたのは無駄ではありません。

 
Renat:

ここ......何百年もプログラミングをしている人は、ずっと前から知っていることです。

SSE2に切り替えたのは無駄ではありません。SSE2がなければ、全体的な性能向上は見込めないからです。

32ビット(asc、bid、time)に1ティックを詰め込みました。そして、もう使えるスピードアップを手に入れました。

:)さらに、私はMT5のようにメモリで実行しない - 検索のすべてのバリエーションは、バーを回り、その逆ではありません。:)Flying !!!:)

**

ちなみに、MTでやるのが大変でなければ、上にそこに書きました。

 
Academic:
32ビット(asc,bid,time)でティックを入れています。そして、スピードブーストを手に入れましたが、これはもう使えますね。

夢の中でもっといろいろなことができるはず...。練習だけでは目が覚めてしまい、すべてを台無しにしてしまう。

しかし、何も、今夜は新たな便乗があるのだ!

 
Renat:

寝ている間に、もっといろいろなことができるはず...。練習だけでは目が覚めてしまい、すべてを台無しにしてしまう。

しかし、何も、今夜は新たな便乗をするのだ!

汚染されても平気なんですね。嘘じゃないんです。:)詰め込むのは簡単だ、考えるだけでいい。ああ...寝ている間に自分に自信がついていることに驚きました。:)
 
Academic:
汚染されても平気なんですね。嘘じゃないんです。:)詰め込むのは簡単で、考えるだけでいいんです。ああ...寝ている間に自分に自信がついていることに驚きました。:)

無駄に「練習」と言い続けているわけではありません。

ネットワークで送信する際に、引用符を極端にビット単位でパッキングすることは、昔からやっていて成功しています。分のストーリーの10年分を10-12mbに圧縮した場合、平均で1:13の圧縮率になります。

しかし、実際にはこのごちゃごちゃの圧縮(それに対する数学的演算は言うまでもない)に時間がかかり、スピードは問題外である。

 
Renat:

無駄に「練習」と言い続けているわけではありません。

私たちは、ネットワーク上で送信される見積書のビット単位の極端なパッキングに長年成功した歴史があります。平均圧縮率は1:13で、1分間の物語の10年分が10-12mbに圧縮されます。

しかし、実際にはこのごちゃごちゃの圧縮(それに対する数学的演算は言うまでもない)に時間がかかり、スピードは問題外である。

つまり、高性能なアプリケーションをプログラミングした経験が必要なのです。理論家でなくても、この32ビットを理解するのに、マシンコマンド5個分より時間がかかることはないでしょう。
 
MetaDriver:
...

アーメン。

// 繰り返します。このテストは、別のコンピュータで実行されたので、余計な幻想を抱かないために、喜んで自分のコンピュータでテストを実行し、ハードウェアのパラメータを表示して結果を投稿してくれる人にお願いします。

// 私のコンピュータ:2ギガのRAM、Sempron 3100+ 2.2GHzプロセッサー、32ビット、WinXPオペレーティング・システム

シベリアの強靭な木こりもそう言っていましたね :o)

2011.04.04 20:30:59     RationalSpeedTest (USDCHF,M1)   Common time int test = 78 ms; // 1000000 calls
2011.04.04 20:30:59     RationalSpeedTest (USDCHF,M1)   Common time long test = 125 ms; // 1000000 calls
2011.04.04 20:30:59     RationalSpeedTest (USDCHF,M1)   Common time double test = 94 ms; // 1000000 calls
2011.04.04 20:30:59     RationalSpeedTest (USDCHF,M1)   Common time IntRational test = 1391 ms; // 1000000 calls
2011.04.04 20:30:58     RationalSpeedTest (USDCHF,M1)   Common time LongRational test = 1015 ms; // 1000000 calls
P4 3 Гц [32 бита] 1Гб оперативы, ОС: Windows XP SP 3 версия 5.1 сборка 2600  

わかりやすいようにCountの0をもう一つください

2011.04.04 20:39:22     RationalSpeedTest (USDCHF,M1)   Common time int test = 718 ms; // 10000000 calls
2011.04.04 20:39:22     RationalSpeedTest (USDCHF,M1)   Common time long test = 1266 ms; // 10000000 calls
2011.04.04 20:39:20     RationalSpeedTest (USDCHF,M1)   Common time double test = 1000 ms; // 10000000 calls
2011.04.04 20:39:19     RationalSpeedTest (USDCHF,M1)   Common time IntRational test = 13156 ms; // 10000000 calls
2011.04.04 20:39:06     RationalSpeedTest (USDCHF,M1)   Common time LongRational test = 9282 ms; // 10000000 calls
 
2011.04.04 22:36:01    RationalSpeedTest (EURUSD,H1)    Common time int test = 63 ms; // 1000000 calls
2011.04.04 22:36:01    RationalSpeedTest (EURUSD,H1)    Common time long test = 94 ms; // 1000000 calls
2011.04.04 22:36:01    RationalSpeedTest (EURUSD,H1)    Common time double test = 47 ms; // 1000000 calls
2011.04.04 22:36:01    RationalSpeedTest (EURUSD,H1)    Common time IntRational test = 734 ms; // 1000000 calls
2011.04.04 22:36:00    RationalSpeedTest (EURUSD,H1)    Common time LongRational test = 594 ms; // 1000000 calls
AMD Phenom 9850 クアッドコア (2.5GHz)、2Gb、WinXP SP3 32
理由: