エラー、バグ、質問 - ページ 2153

 
オプティマイザー・ジャーナルにロシア 語のエントリーがあります。
2018.03.03 15:48:04.722 Tester  Вы можете ускорить оптимизацию в сотни раз с помощью MQL5 Cloud Network
 
Andrii Djola:

FXシンボルの取引終了時刻を知るには?

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

mql5言語の特徴、TipsとTricks

fxsaber さん 2017.02.25 16:39

ENUM_DAY_OF_WEEK GetDayOfWeek( const datetime time )
{
  MqlDateTime sTime = {0};

  ::TimeToStruct(time, sTime);

  return((ENUM_DAY_OF_WEEK)sTime.day_of_week);
}

// true - находимся в торговой сессии
bool SessionTrade( const string Symb )
{
  datetime TimeNow = ::TimeTradeServer();

  const ENUM_DAY_OF_WEEK DayOfWeek = GetDayOfWeek(TimeNow);

  TimeNow %= 24 * 60 * 60;

  bool Res = false;
  datetime From, To;

  for (int i = 0; (!Res) && ::SymbolInfoSessionTrade(Symb, DayOfWeek, i, From, To); i++)
    Res = ((From <= TimeNow) && (TimeNow < To));

  return(Res);
}

// Возвращает true, если символ торгуемый. Иначе - false.
bool SymbolTrade( const string Symb )
{
  MqlTick Tick;

  return(::SymbolInfoTick(Symb, Tick) ? ((Tick.bid != 0) && (Tick.ask != 0) && SessionTrade(Symb) /* &&
         ((ENUM_SYMBOL_TRADE_MODE)::SymbolInfoInteger(Symb, SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_FULL) */
) : false);
}

使用方法

if (OrderCheck(Request, CheckResult) && SymbolTrade(Request.symbol))
  OrderSend(Request, Result);
 
fxsaber:

カスタムキャラクターで非常に不愉快なバグが発生しています。カスタムキャラクターのティック履歴が 完全に消えてしまうことがあります。

カスタムキャラクターのリアルチックにOptimizeをかける時間は数十時間でした。誰もパソコンに近寄らず、何もしない。

15時間のOptimizationの後、その結果を見に来た。テスターはすぐに開始され、すぐに終了します。

ログは

2018.03.03 15:48:04.696 Tester  file cache used 3010 times
2018.03.03 15:48:04.698 Tester  optimization finished, total passes 352000
2018.03.03 15:48:04.708 Statistics      optimization done in 41 hours 32 minutes 37 seconds
2018.03.03 15:48:04.708 Statistics      local 348990 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2018.03.03 15:48:04.708 Core 1  connection closed
2018.03.03 15:48:04.709 Core 2  connection closed
2018.03.03 15:48:04.710 Core 3  connection closed
2018.03.03 15:48:04.710 Core 4  connection closed
2018.03.03 15:48:04.711 Core 5  connection closed
2018.03.03 15:48:04.711 Core 6  connection closed
2018.03.03 15:48:04.712 Core 7  connection closed
2018.03.03 15:48:04.714 Core 8  connection closed
2018.03.03 15:48:04.716 Tester  348990 records written to file cache C:\Program Files\Alpari Limited MT5\tester\cache\Test.TESTER_EURUSD.M1.4.xml
2018.03.03 15:48:04.722 Tester  Вы можете ускорить оптимизацию в сотни раз с помощью MQL5 Cloud Network
2018.03.04 08:26:30.933 Tester  single pass 297022 started
2018.03.04 08:26:31.000 Tester  TESTER_EURUSD: history data begins from 2018.02.06 00:00
2018.03.04 08:27:36.409 Tester  single pass 297022 started
2018.03.04 08:27:36.491 Tester  TESTER_EURUSD: history data begins from 2018.02.06 00:00
2018.03.04 14:05:10.940 Tester  single pass 297022 started
2018.03.04 14:05:11.007 Tester  TESTER_EURUSD: history data begins from 2018.02.06 00:00

すべてのカスタムキャラクターのティックが削除されていることを発見。

 
最適化後、このテキストファイル
2018.03.03 15:48:04.716 Tester  348990 records written to file cache C:\Program Files\Alpari Limited MT5\tester\cache\Test.TESTER_EURUSD.M1.4.xml
は1GBを消費します。7zでは100倍に圧縮されます。なぜ、このような非効率的な方法でキャッシュを保存するのでしょうか?
 

XMLエクスポートを使用する場合

350,000のパスが320MBのXMLファイルに書き込まれます。これにより、なぜか自動的にXMLファイルが開かれます。このようなモンスターを読むとハングアップしてしまうメモ帳にやらせています。XMLメニューを選択する際に、ファイルの おおよそのサイズと、さらにそれを開く際に起こりうる結果をあらかじめ警告しておいてください。

 

コンパイル時のエラー

コード断片はまだ選択できません

 
fxsaber:

XMLエクスポートを使用する場合

350,000のパスが320MBのXMLファイルに書き込まれます。これにより、なぜか自動的にXMLファイルが開かれます。このようなモンスターを読むとハングアップしてしまうメモ帳にやらせています。XML-menuを選択する際に、ファイルのおおよそのサイズと、さらにそれを開いたときにどのような結果になるかをあらかじめ教えてください。

同意するが、警告する必要はなく、ファイルを開く ことを禁止する必要があり、どのようにファイルを開くかはユーザーが決めることである

 

コンパイル時のエラー

template<typename T>
class A { T t; };
void OnStart() { A<void *> a; } //Error: '<' - cannot to apply function template

それ以外は。

template<typename T>
class A { T t; };
void OnStart() { A<void *> a; }
class B {};

大丈夫です。どんな違いがあるのでしょうか?

 

コンパイルエラー

template<typename T>
struct A { T    *t; };
struct B { void *b; };
void OnStart()
{
        A<void> a; //Error: 'void' - expression of 'void' type is illegal
        B       b; //номально
} 
 
fxsaber:

数十時間、カスタムキャラクターのリアルチックにOptimisationが行われました。誰もパソコンに近寄らず、何もしない。

15時間のOptimizationの後、私は結果を見に来た。任意のパスでメニュー項目「シングルテストの実行」を使用することはできません - テスターはすぐに開始され終了します。

ログは

すべてのカスタムシンボルのティックが削除されていることを発見。

再現性がある。Tester/Optimizerの実行が必要です。終了後、数時間お待ちください。私はちょうど10時間後にすべてのカスタムキャラクターの ティックが削除されます。