오늘 MT5 단말기가 업데이트되어 테스트 중 "최적화" 창이 표시되지 않습니다. - 페이지 5

 
Texnolog :

오래된 좋은 알고리즘을 깨고 3배 더 느리게 작동하는 새 알고리즘으로 교체하는 이유는 무엇입니까?

유전자 검사자의 알고리즘은 변경되지 않았습니다. 그리고 3번 정도의 진술은 전혀 근거가 없습니다.

이전 결과의 캐시가 작동하는 방식을 변경했습니다. 그리고 그것은 이전 것보다 근본적으로 더 좋고 더 완벽해졌습니다.

유전적 방법에 대한 새로운 접근 방식을 구현해야 하는 경우 "최적화" 탭에 새 항목을 추가하고,

설명 및 작업 방법을 작성하십시오.

내가 위에 준 링크를 보십시오. 이 모든 것은 우리 사이트의 기사입니다. 유전자 최적화는 수년에 걸쳐 길게 논의되었습니다.

검색에서 "전략 테스터", "유전자 최적화"를 검색 하십시오.

그리고 내 반복되는 조언을 들어보십시오. 유전학에서 단일 회복 인자에 대한 최적화는 금기입니다. 당신은 단순히 거대한 가치를 쉽게 생성하는 완전히 불안정하고 기만적인 (자동화의 경우) "이익 / 최대 손실" 비율로 알고리즘을 오도하고 있습니다. 방법과 이유를 스스로 생각해 보십시오.


월요일에 최적화 그래프 그리기를 수정하겠습니다.

 
시장을 통과하는 수량에 따라 지정가 주문의 부분 실행이 구현됩니까?
 
pivomoe :
시장을 통과하는 수량에 따라 지정가 주문의 부분 실행이 구현됩니까?

역사상 유리잔에 담긴 양을 본 적이 있습니까? 유리 틀 없이 이것을 실현하는 것은 비현실적입니다.

 
Aleksey Vyazmikin :

역사상 유리잔에 담긴 양을 본 적이 있습니까? 유리 틀 없이 이것을 실현하는 것은 비현실적입니다.

저는 그런 꿈을 꾸지 않습니다. 예를 들어 가격이 89이고 볼륨이 1인 SELL 틱이 있는 경우 가격이 90이고 많은 10인 Buy Limit가 부분적으로 작동하기를 바랍니다. 이제 일반적으로 안타깝습니다. 가격이 90이고 1이 많은 BUY 틱이 있으면 주문이 작동합니다.

 
Renat Fatkhullin :

유전자 검사자의 알고리즘은 변경되지 않았습니다. 그리고 3번 정도의 진술은 전혀 근거가 없습니다.

이전 결과의 캐시가 작동하는 방식을 변경했습니다. 그리고 그것은 이전 것보다 근본적으로 더 좋고 더 충만해졌습니다.


테스터의 신품과 구품을 비교 테스트했습니다.

결과는 다음과 같습니다. 게시물 #34의 로그 및 설명.

열하나

 

다음은 제안된 조건을 사용한 테스트입니다.

  • https://www.mql5.com/ru/forum/241285/page4#comment_7271206의 설정
  • 테스터의 모든 파일 캐시는 테스트를 시작하기 전에 디스크에서 한 번 삭제됩니다.
  • Windows 10, Intel Xeon E5-2630 v4 @ 2.20GHz, 8개의 에이전트 코어 사용

끝까지 통과한 다음 터미널을 다시 시작하십시오.
1000(대략) 통로에서 정차
정지 후 계속
메타트레이더 5 빌드 1755
38초, 4780 패스
15초, 1105 패스
25초, 3487 패스
메타트레이더 5 빌드 1809 33초, 5549회 통과
9초, 1126 패스
36초, 5863회 통과


메타트레이더 5 빌드 1755:

  • build 1755 full pass, 총 8960개의 옵션이 통과되었고, 그 중 4780개는 실제로 계산되었고 4180개는 같은 세션에 누적된 캐시에서 가져왔습니다.

    그 후 메모리에 있는 핫 캐시의 직접적인 영향을 피하기 위해 터미널을 다시 시작합니다.
    2018.04.30 11:20:46.867	Tester	Best result 3391.17 produced at generation 22. Next generation 33
    2018.04.30 11:20:47.118	Tester	genetic calculation is over
    2018.04.30 11:20:47.126	Tester	4697 records written to file cache C:\Users\sys\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\tester\cache\Moving Average.EURUSD.M5.1.xml
    2018.04.30 11:20:47.338	Tester	result cache used 4180 times
    2018.04.30 11:20:47.338	Tester	genetic optimization finished on pass 8960 (of 49644595)
    2018.04.30 11:20:47.349	Statistics	optimization done in 0 minutes 38 seconds
    2018.04.30 11:20:47.349	Statistics	local 4780 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    

  • 1337 통로에서 멈춘 1755를 만드십시오. 그 중 216개는 캐시에서 가져옵니다(216 / 1337 = 16% 캐시 적중, 시작 임의성 및 작은 샘플 크기로 인해 낮음).
     2018.04.30 11:24:15.913	Tester	Best result 3254.53 produced at generation 0. Next generation 4
    2018.04.30 11:24:16.775	Tester	file cache used 19 times
    2018.04.30 11:24:16.775	Tester	result cache used 216 times
    2018.04.30 11:24:16.775	Tester	genetic optimization finished on pass 1337 (of 49644595)
    2018.04.30 11:24:16.775	Statistics	optimization done in 0 minutes 15 seconds
    2018.04.30 11:24:16.775	Statistics	local 1105 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    
  • Stop에서 중지한 후 계속해서 빌드 1755, 터미널이 다시 시작되지 않고 계속됩니다.

    테스트는 1809 빌드에서와 같이 처음부터가 아니라 중지된 위치에서 계속됩니다. 그런 다음 제안된 10496 패스 중에서 3487이 계산되고 캐시에서 66+3814가 제거되었습니다(66+3814 / 10496 = 36% 캐시 적중 )
     2018.04.30 11:26:27.931	Tester	Best result 3363.35 produced at generation 15. Next generation 32
    2018.04.30 11:26:28.104	Tester	genetic calculation is over
    2018.04.30 11:26:28.111	Tester	3422 records written to file cache C:\Users\sys\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\tester\cache\Moving Average.EURUSD.M5.1.xml
    2018.04.30 11:26:28.539	Tester	file cache used 66 times
    2018.04.30 11:26:28.539	Tester	result cache used 3814 times
    2018.04.30 11:26:28.539	Tester	genetic optimization finished on pass 8704 (of 49644595)
    2018.04.30 11:26:28.550	Statistics	optimization done in 0 minutes 25 seconds
    2018.04.30 11:26:28.550	Statistics	local 3487 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    





메타트레이더 5 빌드 1809:

  • 빌드 1809 전체 패스, 총 8960 옵션이 전달되었으며 이 중 5549는 실제로 계산되었고 3411은 동일한 세션에 누적된 캐시에서 가져왔습니다.

    그 후 메모리에 있는 핫 캐시의 직접적인 영향을 피하기 위해 터미널을 다시 시작합니다.
     2018.04 . 30 10 : 50 : 58.997 Tester  Best result 3391.17 produced at generation 22 . Next generation 33
    2018.04 . 30 10 : 50 : 59.485 Tester  genetic calculation is over
    2018.04 . 30 10 : 50 : 59.485 Tester  result cache used 3411 times
    2018.04 . 30 10 : 50 : 59.485 Tester  genetic optimization finished on pass 8960 (of 49644595 )
    2018.04 . 30 10 : 50 : 59.495 Statistics      optimization done in 0 minutes 33 seconds
    2018.04 . 30 10 : 50 : 59.495 Statistics      local 5549 tasks ( 100 %), remote 0 tasks ( 0 %), cloud 0 tasks ( 0 %)
    

  • 1348 통로에서 멈추고 1809를 만듭니다. 그 중 222개는 캐시에서 가져옵니다(222 / 1348 = 16% 캐시 적중, 시작 임의성 및 작은 샘플 크기로 인해 낮음).
     2018.04 . 30 11 : 00 : 59.532 Tester  Best result 3263.17 produced at generation 0 . Next generation 4
    2018.04 . 30 11 : 00 : 59.742 Tester  result cache used 222 times
    2018.04 . 30 11 : 00 : 59.742 Tester  genetic optimization finished on pass 1348 (of 49644595 )
    2018.04 . 30 11 : 00 : 59.742 Statistics      optimization done in 0 minutes 09 seconds
    2018.04 . 30 11 : 00 : 59.742 Statistics      local 1126 tasks ( 100 %), remote 0 tasks ( 0 %), cloud 0 tasks ( 0 %)
    
  • 1809 빌드에서 중지 후 계속, 터미널이 다시 시작되지 않고 계속됩니다.

    테스트가 처음부터 시작되었기 때문에 제안된 10240개의 패스 중 5863개가 정리되었고 4377개가 캐시에서 제거되었습니다(4377 / 10240 = 42% 캐시 적중).
     2018.04 . 30 11 : 04 : 28.046 Tester  Best result 3391.17 produced at generation 27 . Next generation 38
    2018.04 . 30 11 : 04 : 28.477 Tester  genetic calculation is over
    2018.04 . 30 11 : 04 : 28.477 Tester  result cache used 4377 times
    2018.04 . 30 11 : 04 : 28.477 Tester  genetic optimization finished on pass 10240 (of 49644595 )
    2018.04 . 30 11 : 04 : 28.488 Statistics      optimization done in 0 minutes 36 seconds
    2018.04 . 30 11 : 04 : 28.488 Statistics      local 5863 tasks ( 100 %), remote 0 tasks ( 0 %), cloud 0 tasks ( 0 %)
    



이제 결론:

  1. "3배 느리다"는 귀하의 주장은 거짓으로 판명되었습니다.

  2. 실제로 1809 빌드 테스터는 내부 프로세스의 최적화 및 재작성으로 인해 더 빠르게 작동하기 시작했습니다.

    이는 풀패스 시점부터 알 수 있는데, 38초가 아닌 33초가 됐다. 그리고 더 많은 패스와 함께 33초.

    초당 패스 수를 계산하면 다음을 얻습니다.
    - 빌드 1755는 4780 패스 제공/38초 = 초당 125 패스 제공
    - 빌드 1809는 5549 패스 제공 / 33초 = 초당 168 패스 제공

  3. 새로운 인구 계획 생성과 함께 유전자 최적화 프로그램의 새로운 "중지 후 계속" 계획은 정확합니다.

    우리는 테스터 개념을 재평가하고 오래된 잘못된 결정을 수정하고 있습니다.

    검색 영역을 더 완전히 다루려면 유전자 테스트를 여러 번 실행해야 하므로 캐시에서 이전 실행을 시각화한 새 모델을 사용하면 유전학 작업의 역학을 더 잘 이해할 수 있습니다.

    이전에 계산된 캐시의 모든 데이터를 테이블에 추가하여 최적화 결과 를 표시하는 새로운 모델을 사용하면 그림을 더 완벽하게 볼 수 있습니다. 전략을 청크로 계산하고 이전 출시를 포함하여 매번 전체 결과를 볼 수 있습니다.

    결과 목록의 실시간 표시를 비활성화하고 모든 이전 결과를 결합한 후 누적 결과를 표시한 것은 결합된 결과 테이블이 정말 크기 때문입니다.
 

런타임과 디버그 모두에서 초기화 중에 로봇이 충돌합니다. 정상적으로 컴파일이 진행됩니다.

코드에 정적 멤버 가 있는 클래스가 있습니다. 분명히 그 멤버 때문입니다. 이전에는 모든 것이 잘 작동했습니다. 그리고 이제 그는 전역 초기화 중에 오류가 발생했다고 씁니다.

클래스에서 정적 요소를 제거했는데 정상적으로 시작되었습니다.

 
Dennis Kirichenko :

런타임과 디버그 모두에서 초기화 중에 로봇이 충돌합니다. 정상적으로 컴파일이 진행됩니다.

코드에 정적 멤버 가 있는 클래스가 있습니다. 분명히 그 멤버 때문입니다. 이전에는 모든 것이 잘 작동했습니다. 그리고 이제 그는 전역 초기화 중에 오류가 발생했다고 씁니다.

클래스에서 정적 요소를 제거했는데 정상적으로 시작되었습니다.

서비스 데스크에 요청서를 작성하고 전문가를 첨부하십시오(ex5 파일 가능).

 
Aleksey Vyazmikin :

이 모든 것이 훌륭합니다!

그러나 "최적화" 탭으로 돌아가십시오. 운영 분석 없이는 작업할 수 없습니다! 큰 테이블은 속도가 느려집니다. 필터를 만들어 보겠습니다. 각 기준에 대해 상위 20개를 표시합니다. 리소스를 많이 사용하는(?) 것은 아니지만 그림을 보는 데 도움이 됩니다. 그리고, 이 수십억 개의 패스 - 누가 그것을 하고 있습니까? 이들은 거대한 용량을 가진 단위입니다. 당신은 유전학 사용의 합리성에 대해 이야기하지만 그러한 발보가 없습니다. 저것들. 10,000개 이상의 패스는 드뭅니다.


슬프게도.

예비 데이터에 따르면 적어도 최적화가 진행되는 동안 그림을 구축할 수 있었습니다.

 
Renat Fatkhullin :

우리는 테스터의 대규모 성능 업그레이드와 과부하 상태에서 작업 모드를 다시 실행하느라 바쁩니다. 주요 개선이 이루어졌으며 새로운 가속 방법이 곧 구현될 것입니다.

지속적으로 변경되는 패스 목록을 유지 관리, 재정렬 및 표시하는 데 많은 리소스를 소비하지 않도록 계산 끝에 패스 목록 창을 표시하기로 결정했습니다.

리소스와 브레이크에 대한 막대한 지출이 있었습니다. 특히 수십만 개의 라인, 수백만 및 수천만 개의 패스에 대해 이야기 할 때. 예비 데이터의 족보를 눈으로 보는 것은 의미가 없습니다.


우리는 최적화 테스트를 수행하고 1억 개의 전체 패스로 작업합니다.

이러한 숫자를 사용하면 2-5-10-50백만 값의 테이블을 실시간으로 재정렬하고 표시하는 것에 대해 이야기할 수 없다는 것이 분명합니다. 모든 것을 빠르고 경제적으로 수집하고, 마지막으로 정렬하고 모든 깊이까지 보기를 제공하는 단 하나의 옵션이 있습니다.

모든 정보를 알려주세요