MetaTrader 5 전략 테스터의 테스트 결과 분석 및 최적화 - 페이지 5

 
Anatoli Kazharski :

똑같은 일이 지금 일어나고 있습니다. 테스트 프로세스 중에 기호를 로드합니다.

또는 테스트 시작 직전에 목록에서 테스트를 위해 선택한 문자를 확인하고 이러한 목록이 있는 경우 이를 보완합니다. 또는 캐시에 있는 기호가 더 이상 필요하지 않다고 판단한 경우 테스터에서 사용하지 마십시오.

어쨌든 나는 명확한 대답을 할 수 없지만 옵션의 가정과 제안 수준에서만.

확인.

Expert Advisor는 거래하지 않습니다. 그러나 분명히 진입 가능성이 확인되고 있기 때문에 기본 쌍과 함께 다른 쌍이 로드되어 마진 요구 사항을 계산합니다. 두 쌍의 데이터는 캐시되어 재테스트할 때 데이터를 풀고 준비하는 데 시간을 낭비하지 않습니다.

EA가 거래를 시작했습니다. 이익을 계산하기 위해 두 번째 누락된 쌍이 로드됩니다. 다시 말하지만, 이 데이터는 다시 테스트할 때 데이터 압축을 풀고 준비하는 데 시간을 낭비하지 않도록 캐시됩니다.

개인적으로, 당신은 역사에 적용된 "불필요한" 틱에 시간을 낭비하는 것을 좋아하지 않습니다. 다른 사람들은 데이터를 다시 포장하고 준비하는 데 훨씬 더 많은 시간을 소비하는 것을 좋아하지 않을 것입니다.

좋아, 당신은 대답합니다. 요청이 없을 때까지 "추가" 도구의 틱을 적용하지 않는 이유는 무엇입니까? "좋은 질문" (c) 그리고 이 순간, 요청의 순간까지 기록을 작성해야 합니다(그리고 누군가가 요청할 수도 있기 때문에 진드기가 있도록). 시간의 손실은 우리가 점진적으로 역사를 구축하는 것보다 훨씬 더 클 것입니다(지금 구축하고 있는 것처럼).

일부 기록을 사용하는 Expert Advisor가 다른 패스에서 이 기록을 사용하지 않을 것이라고 확실히 예측하는 것은 불가능합니다. 후속 테스트 통과의 기록이 이전 통과와 동일한 기록이 필요하다는 사실에 대해 99%

 
나는 Slava에 동의합니다. 예는 구형입니다.
 
Slava :

확인.

Expert Advisor는 거래하지 않습니다. 그러나 분명히 진입 가능성이 확인되고 있기 때문에 기본 쌍과 함께 다른 쌍이 로드되어 마진 요구 사항을 계산합니다. 두 쌍의 데이터는 캐시되어 재테스트할 때 데이터를 풀고 준비하는 데 시간을 낭비하지 않습니다.

EA가 거래를 시작했습니다. 이익을 계산하기 위해 두 번째 누락된 쌍이 로드됩니다. 다시 말하지만, 이 데이터는 다시 테스트할 때 데이터 압축을 풀고 준비하는 데 시간을 낭비하지 않도록 캐시됩니다.

개인적으로, 당신은 역사에 적용된 "불필요한" 틱에 시간을 낭비하는 것을 좋아하지 않습니다. 다른 사람들은 데이터를 다시 포장하고 준비하는 데 훨씬 더 많은 시간을 소비하는 것을 좋아하지 않을 것입니다.

좋아, 당신은 대답합니다. 요청이 없을 때까지 "추가" 도구의 틱을 적용하지 않는 이유는 무엇입니까? "좋은 질문" (c) 그리고 이 순간, 요청의 순간까지 기록을 작성해야 합니다(그리고 누군가가 요청할 수도 있기 때문에 진드기가 있도록). 시간의 손실은 우리가 점진적으로 역사를 구축하는 것보다 훨씬 더 클 것입니다(지금 구축하고 있는 것처럼).

일부 기록을 사용하는 Expert Advisor가 다른 패스에서 이 기록을 사용하지 않을 것이라고 확실히 예측하는 것은 불가능합니다. 후속 테스트 통과의 기록이 이전 통과와 동일한 기록이 필요하다는 사실에 대해 99%

나는 정말로 주장하지 않는다. 이 설명으로 바로 시작할 수 있습니다. 자신의 선택이 최선임을 확실히 알고 있다면 토론에 시간을 낭비하지 않음으로써 시간을 절약할 수 있습니다. 그러나 가능하다면 무엇을 이해했는지 확실하지 않기 때문에 설명이 필요합니다.

이 설명이 최적화 프로세스에 대한 모든 것입니까?

그리고 우리가 단일 테스트의 과정에 대해서만 이야기한다면? EURUSD만 테스트할 때 이전 테스트에서 GBPUSD 및 AUDUSD가 틱하는 이유는 무엇입니까?

단 하나(EURUSD)만 필요한 경우 다른 기호(GBPUSD 및 AUDUSD)의 틱이 어떤 경우에 필요할 수 있는지 알 수 없습니다. 구체적인 예와 수치가 필요합니다.

그리고 그 전에 동시에 20자를 테스트했다면? 지금 하나만 테스트해야 하는 경우 이 모든 기호에서 틱을 표시하는 이유는 무엇입니까? 이전 단일 테스트에서 사용된 문자가 많을수록 테스트는 하나만 수행하는 데 더 오래 걸립니다. 결국 완전히 다른 캐릭터 그룹에서 캐릭터 테스트로 전환할 수 있습니다. 그리고 이전 기호 그룹의 데이터가 전혀 필요하지 않습니다.

그리고 우리가 말하는 시간 비용(포장 풀기/준비)은 무엇입니까? 데이터 압축을 풀고 준비하는 데 얼마나 걸립니까? 그리고 다중 문자 테스트 후 단일 테스트 시간이 얼마나 늘어나나요?

지금 테스트해보고 결과를 보여드리겠습니다. 구체적인 예에 대한 설명이 필요하다.

 
Anatoli Kazharski :
"캐시 지우기" 확인란이 없습니다.
 

1 기호: EURUSD

 2018.01 . 29 19 : 30 : 33.875 Core 1   EURUSD,M5: 26169180 ticks, 74266 bars generated. Environment synchronized in 0 : 00 : 00.078 . Test passed in 0 : 00 : 27.266 (including ticks preprocessing 0 : 00 : 01.282 ).
2018.01 . 29 19 : 30 : 33.875 Core 1   EURUSD,M5: total time from login to stop testing 0 : 00 : 27.344 (including 0 : 00 : 00.078 for history data synchronization)
2018.01 . 29 19 : 30 : 33.875 Core 1    837 Mb memory used including 8 Mb of history data, 512 Mb of tick data

//---

5개 기호: EURUSD,GBPUSD,USDJPY,AUDUSD,USDCAD

 2018.01 . 29 19 : 59 : 39.750 Core 1   EURUSD,M5: 26169180 ticks, 74266 bars generated. Environment synchronized in 0 : 00 : 00.078 . Test passed in 0 : 11 : 52.156 .
2018.01 . 29 19 : 59 : 39.750 Core 1   EURUSD,M5: total time from login to stop testing 0 : 11 : 52.234 (including 0 : 00 : 00.078 for history data synchronization)
2018.01 . 29 19 : 59 : 39.750 Core 1    130637614 total ticks for all symbols
2018.01 . 29 19 : 59 : 39.750 Core 1   AUDUSD: passed to tester 20717720 ticks
2018.01 . 29 19 : 59 : 39.750 Core 1   EURUSD: passed to tester 26169180 ticks
2018.01 . 29 19 : 59 : 39.750 Core 1   GBPUSD: passed to tester 27742039 ticks
2018.01 . 29 19 : 59 : 39.750 Core 1   USDCAD: passed to tester 23409978 ticks
2018.01 . 29 19 : 59 : 39.750 Core 1   USDJPY: passed to tester 32598697 ticks
2018.01 . 29 19 : 59 : 39.750 Core 1    1574 Mb memory used including 44 Mb of history data, 1088 Mb of cached tick data (total memory for tick data 2495 Mb)

//---

이제 한 캐릭터에 대해 다시 테스트해야 했습니다.

1 기호: EURUSD

 2018.01 . 29 20 : 04 : 25.737 Core 1   EURUSD,M5: 26169180 ticks, 74266 bars generated. Environment synchronized in 0 : 00 : 00.078 . Test passed in 0 : 01 : 34.203 .
2018.01 . 29 20 : 04 : 25.737 Core 1   EURUSD,M5: total time from login to stop testing 0 : 01 : 34.281 (including 0 : 00 : 00.078 for history data synchronization)
2018.01 . 29 20 : 04 : 25.737 Core 1    130637614 total ticks for all symbols
2018.01 . 29 20 : 04 : 25.737 Core 1   AUDUSD: passed to tester 20717720 ticks
2018.01 . 29 20 : 04 : 25.737 Core 1   EURUSD: passed to tester 26169180 ticks
2018.01 . 29 20 : 04 : 25.737 Core 1   GBPUSD: passed to tester 27742039 ticks
2018.01 . 29 20 : 04 : 25.737 Core 1   USDCAD: passed to tester 23409978 ticks
2018.01 . 29 20 : 04 : 25.737 Core 1   USDJPY: passed to tester 32598697 ticks
2018.01 . 29 20 : 04 : 25.737 Core 1    1288 Mb memory used including 44 Mb of history data, 1024 Mb of cached tick data (total memory for tick data 2495 Mb)

//---

이 경우 이러한 기호의 눈금이 여기에 있는 이유는 무엇입니까? 이 추가 로드로 인해 한 캐릭터에 대한 테스트 시간 이 3배 이상 증가했습니다 . 기간은 1년입니다. 5년 동안 시험을 봐야 한다면?

 
fxsaber :
"캐시 지우기" 확인란이 없습니다.
체크 표시가 전혀 없는 옵션이 있을 수 있습니다. 그를 찾기만 하면 됩니다.
 
fxsaber :
"캐시 지우기" 확인란이 없습니다.

우리는 상위 4위 안에 그런 (유사한) 갈까마귀가 있었습니다. 그녀를 제거했습니다. 많은 유저분들 오해와 질문이 있었기 때문입니다.

 
Slava :

우리는 상위 4위 안에 그런 (유사한) 갈까마귀가 있었습니다. 그녀를 제거했습니다. 많은 유저분들의 오해와 질문이 있었기 때문입니다.

항상 terminal.ini가 있습니다. :)
 

3개의 게시물이 이어집니다.

  1. Strategy Tester에서 Expert Advisor 의 한 테스트는 얼마나 걸립니까?
  2. 컴퓨터에서 설정을 최적화하는 데 얼마나 걸립니까?
  3. 클라우드에서 매개변수를 최적화하는 데 얼마나 걸립니까?

테스트를 위해 Expert Advisor를 사용할 것입니다. 동일한 일련의 테스트를 실행하고 결과를 제출할 수 있습니다. 제 경우에는 1년 동안 수만 건의 거래가 이루어집니다.


1. Strategy Tester에서 Expert Advisor의 1회 테스트는 얼마나 걸립니까?

예를 들어 Open price only 모드에서 테스트 결과를 살펴보겠습니다. 타임프레임 M5 (5분 데이터). 헤지 계정 유형. 기간은 1년( 2017.01.01 - 2018.01.01 )입니다.

기호 : EURUSD

EURUSD,M5: 281877 ticks, 74300 bars generated. Test passed in 0 : 00 : 01.453 .
282883 total ticks for all symbols
EURUSD: passed to tester 282883 ticks
466 Mb memory used including 8 Mb of history data, 64 Mb of tick data

위의 테스트 결과에 따르면 1년이라는 기간 동안 한 캐릭터에 대한 테스트는 1~1.5초 지속되는 것을 알 수 있다.

이제 계정 통화가 없는 통화 쌍을 테스트해 보겠습니다. 예를 들어, 미국 달러(USD)로 된 계정이 있는 경우 테스트를 위해 USD가 포함되지 않은 기호를 사용합니다. 예를 들어 EURCHF. 사실 이 경우 증거금 요구 사항과 이익을 올바르게 계산하기 위해 EURUSD 및 USDCHF 기호가 테스트에 사용되며, 이는 차례로 테스트 시간을 증가시킵니다.

기호 : EURCHF

EURCHF,M5: 281063 ticks, 74273 bars generated. Test passed in 0 : 00 : 01.860 .
846826 total ticks for all symbols
EURCHF: passed to tester 282468 ticks
EURUSD: passed to tester 282883 ticks
USDCHF: passed to tester 281475 ticks
467 Mb memory used including 8 Mb of history data, 64 Mb of tick data

보시다시피 교차율 테스트는 약 2배의 시간이 소요됩니다. 이 경우 테스트는 1.5-2초가 소요 되었습니다. 이제 여러 문자를 테스트해 보겠습니다.

기호 : EURUSD,GBPUSD,USDJPY

EURUSD,M5: 282881 ticks, 74300 bars generated. Environment synchronized in 0 : 00 : 00.031 . Test passed in 0 : 00 : 07.172 .
EURUSD,M5: total time from login to stop testing 0 : 00 : 07.203 (including 0 : 00 : 00.031 for history data synchronization)
853054 total ticks for all symbols
EURUSD: passed to tester 282883 ticks
GBPUSD: passed to tester 285067 ticks
USDJPY: passed to tester 285104 ticks
628 Mb memory used including 26 Mb of history data, 64 Mb of tick data

기호 : EURCHF,AUDCAD,AUDNZD

EURCHF,M5: 282465 ticks, 74273 bars generated. Environment synchronized in 0 : 00 : 00.031 . Test passed in 0 : 00 : 12.109 .
EURCHF,M5: total time from login to stop testing 0 : 00 : 12.140 (including 0 : 00 : 00.031 for history data synchronization)
2264405 total ticks for all symbols
AUDCAD: passed to tester 284995 ticks
AUDNZD: passed to tester 285398 ticks
AUDUSD: passed to tester 282069 ticks
EURCHF: passed to tester 282468 ticks
EURUSD: passed to tester 282883 ticks
NZDUSD: passed to tester 282153 ticks
USDCAD: passed to tester 282964 ticks
USDCHF: passed to tester 281475 ticks
854 Mb memory used including 26 Mb of history data, 192 Mb of tick data

여러 문자를 테스트할 때 테스트 속도가 느려집니다. 불행히도 이제는 테스트의 정확성을 잃지 않고 다르게 수행하는 것이 불가능합니다. 그러나 앞서 언급했듯이 다음 업데이트에서 터미널 개발자는 다중 문자 테스트를 몇 배 더 빠르게 수행할 수 있는 기능을 추가하여 MQL5 언어의 기능을 확장할 것입니다.

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 

2. 컴퓨터에서 설정을 최적화하는 데 얼마나 걸립니까?

예를 들어 Open price only 모드에서 다른 기호에 대한 Alpari 브로커 데이터의 매개변수를 최적화해 보겠습니다. 타임프레임 M5 (5분 데이터). 헤지 계정 유형. 기간은 1년( 2017.01.01 - 2018.01.01 )입니다.

기호 : EURUSD

result cache used 7953 times
genetic optimization finished on pass 15616 (of 504330836375520000 )
optimization done in 28 minutes 56 seconds
local 7663 tasks ( 100 %), remote 0 tasks ( 0 %), cloud 0 tasks ( 0 %)

기호 : EURCHF

result cache used 2507 times
genetic optimization finished on pass 8704 (of 504330836375520000 )
optimization done in 32 minutes 50 seconds
local 6197 tasks ( 100 %), remote 0 tasks ( 0 %), cloud 0 tasks ( 0 %)

기호 : EURUSD,GBPUSD,USDJPY

result cache used 9892 times
genetic optimization finished on pass 18176 (of 504330836375520000 )
optimization done in 2 hours 15 minutes 03 seconds
local 8284 tasks ( 100 %), remote 0 tasks ( 0 %), cloud 0 tasks ( 0 %)

기호 : EURCHF,AUDCAD,AUDNZD

result cache used 7281 times
genetic optimization finished on pass 13312 (of 504330836375520000 )
optimization done in 3 hours 13 minutes 37 seconds
local 6031 tasks ( 100 %), remote 0 tasks ( 0 %), cloud 0 tasks ( 0 %)

가까운 장래에 MetaTrader 5 터미널이 업데이트되고 테스트 및 최적화 속도가 몇 배 빨라질 것입니다. 그러면 All ticks 모드에서도 최적화를 수행할 수 있습니다. 또한 MQL5 클라우드 네트워크 서비스를 사용하면 최적화 속도가 빨라져 수익성이 높아진다.

Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Большую часть времени современные компьютеры простаивают и не используют всех возможностей процессора. Мы предлагаем задействовать их с пользой. Вы можете сдавать мощности вашего компьютера другим участникам нашей сети для выполнения разнообразных...
사유: