より速く実行するEAのためのヒント?
ページ 1 - 322 12 最終最終
Results 1 to 10 of 12

Thread: より速く実行するEAのためのヒント?

  1. #1
    ハウディ、

    誰かがあなたのコードをより速く実行させるためのヒントやアドバイスを提供できるかどうか疑問に思っていました。私はHFTアルゴリズムを構築しようとしていないので、リアルタイム実行は2次的です(ただし、常にボーナスです)。代わりに、私は各パスの間に戦略テスターの時間を短縮しようとしています。
    大規模な最適化を実行している場合(これは私のように)、時間利用に明らかな利点があります。

    私はMetaTrader環境の中で働いていますが、使用している言語での議論を歓迎します。
    私はすでに実装している以下のアイデアを持っています:

    MetaTrader 5(64ビット、すべてのコアを使用)
    より強力なCPU(1つの予算内)
    整数の使用
    オブジェクトオリエンテッドプログラミング(これは100%ではありませんが、いくつかの長さの短い.mqhファイルが1つの巨大な.mq5ファイルより速くなると考えられます - 考え?)

    その他の提案はありますか?

    どうもありがとう!

  2. #2

    Quote Originally Posted by ;
    オブジェクトオリエンテッドプログラミング(これは100%ではありませんが、いくつかの長さの短い.mqhファイルが1つの巨大な.mq5ファイルより速くなると考えられます - 考え?)
    おそらくそうではありません。それはコンピュータの仕組みではありません...とにかくコードがコンパイルされます。

  3. #3
    説明をありがとう。
    私はコンピュータには背景がありませんが、しばらくプログラミングを教えてきたので、コンピュータサイエンスの知識が欠けている大きな章があります。申し訳ありませんが、それは明らかな間違いでした。習慣をつかんで、学びたいと思っています。

  4. #4
    Quote Originally Posted by ;
    説明をありがとう。
    私はコンピュータには背景がありませんが、しばらくプログラミングを教えてきたので、コンピュータサイエンスの知識が欠けている大きな章があります。申し訳ありませんが、それは明らかな間違いでした。習慣をつかんで、学びたいと思っています。
    増加する計算能力は、あなたが取るべき最後の尺度です。真の計算の減少は、アルゴリズムの最適化にあります。フィボナッチ数反復と再帰を計算しようとすると、アルゴリズム最適化の効果が実際にうまくいきます。 mql45エディタにはプロファイリングツールのビルドがあり、アルゴリズムのどの部分が長い時間を要するかを基本的に理解する必要があります。コードはどのくらいの頻度で実行されますか?すべてのダニがシミュレートされることは本当に重要ですか、それともバーの開口部だけをチェックするだけで十分ですか?これにより、バックテスト時間のxxx%の短縮が得られます。何度も何度も実行する必要のないコードの大部分はありますか?毎回多くの計算をチェックして無視するだけで簡単に書くことができますか?マイクロ最適化(mql4の最後のビットが本当に必要な場合)は、それらを何度も何度も繰り返し計算する代わりに、頻繁に使用される値をマッピングするのが好きです。バッファループ条件変数。私は、ローカル変数はグローバルスコープと同様に少し速いと思います。だから、そこには1秒もの時間を節約することができます。除算の代わりにビットシフトを使用する。モジュロなどを避けるようにしてください....しかし、これは私が推測するあなたのための過度の種類です。

  5. #5
    こんにちは、私が知っているから:MT5マルチコアは大丈夫​​かもしれませんが、それに応じてプログラムする必要があります。これは、同時に実行できる複数のスレッドでコードを分離することを意味します。より強力なCPU、はい、実行時間を短縮しますが、送信時間(インターネット)が遅い場合は意味がありません。整数の使用?私はこれを理解していない、倍精度浮動小数点型を整数に変換したいのですか?変換時間は、あなたが本当に重い計算をしない限り、それらを使用することの利得を失うことになります。 OOP、いいえ、コードの再編成のみが可能なため、結果のバイナリは手続き型コードより速くはありません。また、ヘッダファイルの長さや1つの大きなヘッダファイルではなく、複数のヘッダファイルを持つことは、実行速度とは関係ありません。 BT

  6. #6
    Quote Originally Posted by ;
    説明をありがとう。
    私はコンピュータには背景がありませんが、しばらくプログラミングを教えてきたので、コンピュータサイエンスの知識が欠けている大きな章があります。申し訳ありませんが、それは明らかな間違いでした。習慣をつかんで、学びたいと思っています。
    私はMQLについてあまりよく分かりません。週末にはMQLに入りました。私は他の言語について多くの知識を持っています。事は:プログラミング言語はコンピュータ用ではなく、人間用に作られたものです。コンピュータは、コンパイラによって生成された翻訳バージョンを読み込みます。コンパイラの出力は、エディタに表示されているものとあまりよく似ていません。コンパイラは、コードのインライン展開を含め、多くを変更(最適化)します。その結果、コードが小さくなるのではなくコードがさらに大きくなります。一般的なアドバイス:コードが実際に動作するまで、マイクロ最適化を行わないでください。それは時間の無駄です。全体的なプログラムの構造、ロジック、そしておそらくあなたの計算に取り組んでください(あなたがそれらに強く依存している場合)。たとえば、EAの構造を見てみると、OnTick()の多くの(不要な)計算は、そのルーチンが非常に頻繁に呼び出されるため、悪い考えです。

  7. #7

    Quote Originally Posted by ;
    あなたが取るべき最後の措置は、計算力の向上です。真の計算の減少は、アルゴリズムの最適化にあります。フィボナッチ数反復と再帰を計算しようとすると、アルゴリズム最適化の効果が実際にうまくいきます。そのうちの1つは、わずか1ミリ秒でもう1つは分です。 mql45エディタにはプロファイリングツールのビルドがあり、アルゴリズムのどの部分が長い時間を要するかを基本的に理解する必要があります。コードはどのくらいの頻度で実行されますか?すべてのダニが本当に重要なのですか?
    ハイキリアン、返事をありがとう。反復的な反復的なフィボナッチ:これを聞いたことがなく、私が読んでいくつもりです。 stackoverflowにいくつかのものが見つかりました。 mql5エディタのプロファイリングツール:前に使用したものではなく、いくつかの記事が見つかりました。明らかな解決策は、ありがとう! OnTick:私はこれをかなり心配して、OnBarの仕事の大半を維持しようとしましたが、取引タイプのうちの1つは、OnTickであり、これは処理時に食べることになります。これは、ぶら下がっている果物のように見えます。コードの部分は何度も何度も繰り返し実行されていますか?これは私がかなり考慮した領域ではありません。私はあなたが正しいと思うここに見つけるためにいくつかの良い効率があるはずです。マイクロ最適化:提案を大好きです。私がこれまでに得たことがあれば、私は間違いなく何かを試してみましょう。とても有難い。

  8. #8

    Quote Originally Posted by ;
    こんにちは、私が知っているから:MT5マルチコアは大丈夫​​かもしれませんが、それに応じてプログラムする必要があります。これは、同時に実行できる複数のスレッドでコードを分離することを意味します。より強力なCPU、はい、実行時間を短縮しますが、送信時間(インターネット)が遅い場合は意味がありません。整数の使用?私はこれを理解していない、倍精度浮動小数点型を整数に変換したいのですか?変換時間は、あなたが本当に重い計算をしない限り、それらを使用することの利得を失うことになります。 OOP、いいえ、それは再編成のみを可能にします...
    ちょっとBroketrader、MT5マルチコア:私はあなたがそのような別のスレッドにあなたのコードを分離することはできませんでした。これは大きな違いをもたらす可能性があります。現在のところ、オプティマイザを実行している場合にのみ、マルチコアの利点があります。 (これはmt4との壮大な違いです)。 CPU:現在、新しいマシンを取得しようとしています。新しいHaswellチップはかなり滑らかに見える。インターネット接続の速度は問題ではありません。私はちょうど実行中のコードに焦点を当てています。整数:私は完全に間違っているかもしれませんが、私の制限された理解で、機械はダブルを言うよりも整数が簡単です。例えばストップやターゲットのようなものを計算するときは、pipsまたは_Pointsでしか動作しません。整数とdoubleを前後に変換することには興味がありません。 int StopLoss = 300;/StopPoint in _Pointsすべての場所で実行することはできません。すべてのあなたのご意見ありがとうございます。

  9. #9

    Quote Originally Posted by ;
    {quote}私はMQLについてあまりよく分かりませんが、私は週末にそれを取り入れました。私は他の言語について多くの知識を持っています。事は:プログラミング言語はコンピュータ用ではなく、人間用に作られたものです。コンピュータは、コンパイラによって生成された翻訳バージョンを読み込みます。コンパイラの出力は、エディタに表示されているものとあまりよく似ていません。コンパイラは、コードのインライン展開を含め、多くを変更(最適化)します。その結果、コードが小さくなるのではなくコードがさらに大きくなります。一般的なアドバイス:マイクロ最適化のために行かないでください...
    一般的なアドバイスをありがとう。私はちょうどそれをします。より大きな問題(構造、論理、計算)に取り組んでから、ミクロレベルまで下げてください。 OnTick()は、簡単に利益を得るための素晴らしい場所のようです。 mqlを初めて使う?あなたの取引であなたに最高の運があります!あなたが一般的なプログラミングに精通しているなら、あなたはかなり速くmqlを解読するべきです。 Mql4は確かに選択の味ですが、もしあなたのことがmql5にまっすぐに行くのを知っていれば。テストのメリットは、mql4が提供できる利点を生かしています。その疲れた古い馬と誰もがそれを鞭打ち続ける。

  10. #10
    私はWindowsのタスクマネージャーを見て、私はmt4が最大25のCPUしか使用できないのを見た。その後、mt4が突っ込んだ。 mt4を高速に実行するには、mt4のCPUの使用率をどのように増やすのですか?

投稿権限

  • Youma新しいスレッドを投稿しない
  • Youmaは返信しない
  • あなたは添付ファイルを投稿しないかもしれない
  • Youma Notedityourposts
  •  
  • スマイリーはオンです
  • スマイリーはオンです
  • [IMG]コードがオンです
  • [VIDEO]コードがオンです
  • HTMLコードがオフです
This website uses cookies
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.