アルゴリズム、解法、性能比較 - ページ 21

 

プロファイラを 信じるなら、同じTCでOrderSend(5ウェイ)に私の時間の88%がかかっていることになります。

仮想マシンに移せば2%で済む。

なぜ、このような違いがあるのか、私には理解できません。

 
fxsaber:

プロファイラを 信じるなら、同じTCでOrderSend(5ウェイ)に私の時間の88%がかかっていることになります。

仮想マシンに移せば2%で済む。

なぜ、このような違いがあるのか、私には理解できません。

推測するしかない。

OrderSendはMQLサイトにメッセージを送りますが、仮想マシンはOrderSendに触れないため、高速に動作します))

最新のビルドでは、テスターエージェントを除き、最適化とテストの際に端末自体が過負荷になります。

これまでのビルドにはなかった!

 
Sergey Chalyshev:

憶測でしかないのですが

OrderSend - MQLサイトにメッセージを送信し、バーチャルはOrderSendに触れないため、より速く動作します )))。

最新のビルドでは、テスターエージェントを除く最適化およびテスト時に、端末自体に過負荷がかかるようになっています。

これまでのビルドには、そのようなタスクはありません

過去のデータでプロファイラーを 実行しました。したがって、どこかに送信することは除外されます。

 
新しいビルドでは、テストや最適化の際に端末そのものをロードするのですか?タスクマネージャーで、どのくらい食っているのか?
 
fxsaber:

プロファイラーを 信じるなら、同じTCでOrderSend(5番目のパーティ)は88%の時間を要します。

仮想マシンに移せば2%で済む。

なぜ、このような違いがあるのか、私には理解できません。

88%って何?2%からなら、問題ないでしょう。

 
fxsaber:

プロファイラを 信じるなら、同じTCでOrderSend(5ウェイ)に私の時間の88%がかかっていることになります。

仮想マシンに移せば2%で済む。

なぜ、このような違いがあるのか、私には理解できません。

証拠金などの取引条件を確認する。

VirtualをMT5テスターにアップグレードしても、ほぼ同じになります。

 
まあ、そうですね、まあ、そうですね。
 
Andrey Khatimlianskii:

マージンなど取引条件の確認

VirtualをMT5のテスター状態にアップグレードすれば、ほぼ同じになります。

ピップスモード。プロファイラーが 嘘をついている可能性が高い。

 
Andrey Khatimlianskii:

VirtualをMT5テスターにアップグレードしても、ほぼ同じです。

数字で見ると2桁以上の差があります。

 
Andrei Trukhanovich:

この数字を信じるなら、その差は2桁以上にもなる。

Optimiserでレースをしている私の大きなEAからの数字を引用しました。しかし、ブレーキの位置を理解するようになったようです。ここでは、簡単なExpert Advisorを紹介します。

#include <MT4Orders.mqh>

//#define VIRTUAL_TESTER // Запуск в виртуальном торговом окружении
//#include <fxsaber\Virtual\Virtual.mqh>

#define  Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

input int Offset = 10000;
input int inFakeRange = 0;

void OnTick()
{
  static bool FirstRun = true;
  static int Sign = 1;
  
  if (FirstRun)
    FirstRun = (OrderSend(_Symbol, OP_BUYLIMIT, 1, Ask - Offset * _Point, 0, 0, 0) == -1);
  else if (OrderSelect(0, SELECT_BY_POS))  
  {
    OrderModify(OrderTicket(), OrderOpenPrice() + Sign * _Point, 0, 0, 0);
    
    Sign = -Sign;
  }    
}

ティックのプロファイリングを待つのはほぼ不可能で、あまりにも時間がかかりすぎます。そのため、オプティマイザーモードで起動させています。

optimization finished, total passes 11
optimization done in 0 minutes 55 seconds
shortest pass 0:00:04.300, longest pass 0:00:06.442, average pass 0:00:05.058


ハイライトされた2行のコメントを解除し、入力パラメータ Virtual = true を設定すると、このようになります。

optimization finished, total passes 11
optimization done in 0 minutes 07 seconds
shortest pass 0:00:00.355, longest pass 0:00:01.208, average pass 0:00:00.590


その差は一桁です。プロファイラーでは、さらに大きな差があることがわかります。私はすべてpipsとリアルティクだけで、やっています。