아직 테스터에서 GetTickCount를 테스트하지 않았습니다. 나는 이 기능이 테스터에 의해 에뮬레이트될 것이라고 가정했는데, 어떤 상황에서는 논리적일 수 있습니다.
그건 그렇고, 최대 ms의 정확도로 테스터의 현재 시간 을 이해하는 방법은 무엇입니까? SymbolInfoTick+Tick.time_msc를 통해 메인 심볼의 OnTick 호출 시간을 알아낸다. 따라서 테스터 슬립 모드가 올바르게 작동하는지 확인하십시오. 하지만 다른 방법은 없는 것 같습니다.
사실, 나는 다른 것에 대해 묻고 싶었습니다. 첫 번째 값과 마지막 값을 버리고 옵티마이저에서 벤치를 자동화하려면 프레임을 통해 작업해야 합니까(OnTester 결과를 전송하기 위해), 아니면 결과가 왜곡됩니까?
잔액 거래의 PositionIdentifier는 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 결과를 전송하기 위해), 아니면 결과가 왜곡됩니까?
사실, 나는 다른 것에 대해 묻고 싶었습니다. 첫 번째 값과 마지막 값을 버리고 옵티마이저에서 벤치를 자동화하려면 프레임을 통해 작업해야 합니까(OnTester 결과를 전송하기 위해), 아니면 결과가 왜곡됩니까?
대량 측정의 경우 마이크로초 타이머를 사용하지 마십시오. 일반 밀리초 GetTickCount를 사용합니다.
GetMicrosecondCount가 GetTickCount보다 테스터의 속도를 더 느리게 합니까 (또는 에뮬레이트합니까)?
아니면 EventSetMillisecondTimer를 포기한다는 뜻입니까?
GetMicrosecondCount가 GetTickCount보다 테스터의 속도를 더 느리게 합니까(또는 에뮬레이트합니까)?
아니면 EventSetMillisecondTimer를 포기한다는 뜻입니까?
GetMicrosecondCount 를 의미합니다. 서버가 느려지는지 여부를 확실히 말할 수는 없습니다. 간접적인 영향을 미칠 수 있습니다. 따라서 시스템 기본 GetTickCount를 사용하는 것이 좋습니다.
GetMicrosecondCount는 코드 실행의 짧은 섹션을 측정하는 데 사용됩니다. 대규모 OnTick 집합의 실행을 측정하려면 GetTickCount가 여전히 더 좋습니다.
안정적인 결과를 얻은 후 GetTickCount 대신 GetMicrosecondsCount를 사용해 보십시오. 그럼 여기서 말하세요. 어쩌면 나는 아무렇지도 않게 걱정하고 있습니다.
해당 내용은 HistorySelect 기능을 통해서만 영향을 받을 수 있습니다. 그리고 이렇게 됩니다
이러한 거래의 DEAL_ENTRY는 DEAL_ENTRY_IN (0)과 같습니다.