// Возвращает true, если полностью выполнился OnTick() на последнее событие NewTick в тестере - окончание бэктеста. Иначе - false.staticbool BACKTEST::IsEnding(void)
{
return(::TesterStatistics(STAT_BALANCEMIN) > 0);
}
// Возвращает сумму всех балансовых не торговых операций (начисления + списания)double GetSumBalanceOperations( void )
{
double Res = 0;
if (HistorySelectByPosition(0))
for (int i = HistoryDealsTotal() - 1; i >= 0; i--)
Res += HistoryDealGetDouble(HistoryDealGetTicket(i), DEAL_PROFIT);
return(Res);
}
測定開始が最初のOnTickの開始であることを指定するのを忘れています。測定終了はOnDeinitの開始時です。
// После окончания бэктеста сначала вызывается OnTester, затем OnDeinit
トピック
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
バグ、バグ、質問
fxsaber さん 2016.08.25 11:13
ライフサイクルあるいは、OnTesterの開始時に、次のように
そして、測定結果をOnTesterのリターンコードとして返します。
GetTickCountは まだテスターで テストしていません。私は、この機能をテスターでエミュレートすることを想定していましたが、これは状況によっては論理的なことかもしれません。
ところで、テスターで現在時刻を ms単位で把握するにはどうしたらよいのでしょうか?SymbolInfoTick+Tick.time_mscを使用すると、OnTickメインシンボルの呼び出し時刻を知ることができる。そうして、テスターのスリップモードが正しいかどうかを確認するためにも。しかし、それ以外に方法はないようです。
本当は、別のことを聞きたかったんです。オプティマイザで最初と最後の値を削除してバッチを自動化するために、フレームを介して(OnTester-resultを渡すために)動作する必要があります、またはそれは結果を歪めるのでしょうか?
本当は、別のことを聞きたかったんです。オプティマイザで最初と最後の値を破棄してベンチを自動化するためには、フレームを介した動作(OnTester-resultを渡す)が必要ですが、結果が歪んでしまうのでしょうか?
質量測定にマイクロセカンドタイマーを使わないで ください。通常のミリ秒のGetTickCountを使用します。
GetMicrosecondCountは GetTickCountよりもテスターの速度を低下させますか(エミュレートされますか)?
それともEventSetMillisecondTimerの失敗が意味したのでしょうか?
GetMicrosecondCountはGetTickCountよりもテスターの速度を低下させますか(エミュレートされますか)?
それともEventSetMillisecondTimerの失敗が意味したのでしょうか?
GetMicrosecondCountの ことです。サーバーの速度が遅くなるかは何とも言えません。間接的な効果があるかもしれません。そのため、システムネイティブのGetTickCountを使用するのがよいでしょう
GetMicrosecondCountは、短時間のコード実行を測定するために使用します。大量の OnTick 実行を測定するには、GetTickCount を使用するのがよいでしょう。
安定した結果が得られる場合は、GetTickCountの代わりにGetMicrosecondsCountを使用するようにしてください。ここで教えてもらうことになる。心配しすぎかもしれませんね。
その内容は、HistorySelect機能によってのみ影響されます。そして、それは次のように起こります。
このような取引のDEAL_ENTRYはDEAL_ENTRY_IN(0)となる。