오류, 버그, 질문 - 페이지 2279

 
Vladislav Andruschenko :

나는 단지 대답하고 싶었지만 당신은 당신 자신의 질문에 대답했습니다.

확인 감사합니다)

 

안녕하세요,

함수 호출 을 전략 테스트에서 작동하게 만들 수 있습니까? 덕분에!

 bool scaleFix= false ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   ChartSetInteger ( ChartID (), CHART_SCALEFIX , true );
   scaleFix= ChartGetInteger ( ChartID (), CHART_SCALEFIX );
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const int begin,
                 const double &price[])
  {
//---
   if (rates_total!=prev_calculated)  
     {
       double max= iHigh ( _Symbol , _Period , iHighest ( _Symbol , _Period , MODE_HIGH , Period )); 
       double min= iLow ( _Symbol , _Period , iLowest ( _Symbol , _Period , MODE_LOW , Period ));
       if (scaleFix && ChartSetDouble ( ChartID (), CHART_FIXED_MAX ,max))
         printf ( "Chart fixed max is %f, should be %f" , ChartGetDouble ( ChartID (), CHART_FIXED_MAX ),max); 
       if (scaleFix && ChartSetDouble ( ChartID (), CHART_FIXED_MIN ,min))
         printf ( "Chart fixed min is %f, should be %f" , ChartGetDouble ( ChartID (), CHART_FIXED_MIN ),min); 
     }
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+
2018.09 . 06 12 : 54 : 55.757 2018.09 . 04 12 : 00 : 00    Chart fixed max is 1.171770 , should be 1.162740
2018.09 . 06 12 : 54 : 55.758 2018.09 . 04 12 : 00 : 00    Chart fixed min is 1.158410 , should be 1.155760
2018.09 . 06 12 : 54 : 55.765 2018.09 . 04 13 : 00 : 00    Chart fixed max is 1.171770 , should be 1.162670
2018.09 . 06 12 : 54 : 55.765 2018.09 . 04 13 : 00 : 00    Chart fixed min is 1.158410 , should be 1.155590
2018.09 . 06 12 : 54 : 55.772 2018.09 . 04 14 : 00 : 00    Chart fixed max is 1.171770 , should be 1.162280
2018.09 . 06 12 : 54 : 55.772 2018.09 . 04 14 : 00 : 00    Chart fixed min is 1.158410 , should be 1.154940
2018.09 . 06 12 : 54 : 55.781 2018.09 . 04 15 : 00 : 00    Chart fixed max is 1.171770 , should be 1.162070
2018.09 . 06 12 : 54 : 55.781 2018.09 . 04 15 : 00 : 00    Chart fixed min is 1.158410 , should be 1.154940
2018.09 . 06 12 : 54 : 55.789 2018.09 . 04 16 : 00 : 00    Chart fixed max is 1.171770 , should be 1.162020
2018.09 . 06 12 : 54 : 55.789 2018.09 . 04 16 : 00 : 00    Chart fixed min is 1.158410 , should be 1.154940
2018.09 . 06 12 : 54 : 55.799 2018.09 . 04 17 : 00 : 00    Chart fixed max is 1.171770 , should be 1.161980
2018.09 . 06 12 : 54 : 55.800 2018.09 . 04 17 : 00 : 00    Chart fixed min is 1.158410 , should be 1.153890

 
InstaForex-Server 에서는 어떤 이유로 모든 시장 주문이 1초 이상 실행됩니다.
 2018.09 . 06 14 : 08 : 22.754 Trades   '9424479' : instant buy 0.01 CADCHF at 0.7360 (deviation: 1000 )
2018.09 . 06 14 : 08 : 22.936 Trades   '9424479' : accepted instant buy 0.01 CADCHF at 0.7360 (deviation: 1000 )
2018.09 . 06 14 : 08 : 23.944 Trades   '9424479' : deal # 9539619 buy 0.01 CADCHF at 0.7360 done (based on order # 10514041 )
2018.09 . 06 14 : 08 : 23.944 Trades   '9424479' : order # 10514041 buy 0.01 / 0.01 CADCHF at 0.7360 done in 1195.200 ms
2018.09 . 06 14 : 08 : 23.944 Trades   '9424479' : modify # 10514041 buy 0.01 CADCHF sl: 0.0000 , tp: 0.0000 -> sl: 0.0000 , tp: 0.8350
2018.09 . 06 14 : 08 : 24.134 Trades   '9424479' : accepted modify # 10514041 buy 0.01 CADCHF sl: 0.0000 , tp: 0.0000 -> sl: 0.0000 , tp: 0.8350
2018.09 . 06 14 : 08 : 24.134 Trades   '9424479' : modify # 10514041 buy 0.01 CADCHF -> sl: 0.0000 , tp: 0.8350 done in 184.895 ms
2018.09 . 06 14 : 08 : 24.134 Trades   '9424479' : instant sell 0.01 CADCHF at 0.7350 , close # 10514041 buy 0.01 CADCHF 0.7360 (deviation: 1000 )
2018.09 . 06 14 : 08 : 24.314 Trades   '9424479' : accepted instant sell 0.01 CADCHF at 0.7350 , close # 10514041 buy 0.01 CADCHF 0.7360 (deviation: 1000 )
2018.09 . 06 14 : 08 : 25.323 Trades   '9424479' : deal # 9539620 sell 0.01 CADCHF at 0.7350 done (based on order # 10514042 )
2018.09 . 06 14 : 08 : 25.323 Trades   '9424479' : order # 10514042 sell 0.01 / 0.01 CADCHF at 0.7350 done in 1193.896 ms
2018.09 . 06 14 : 08 : 25.323 Trades   '9424479' : buy limit 0.01 CADCHF at 0.6360
2018.09 . 06 14 : 08 : 25.509 Trades   '9424479' : accepted buy limit 0.01 CADCHF at 0.6360
2018.09 . 06 14 : 08 : 25.510 Trades   '9424479' : order # 10514043 buy limit 0.01 / 0.01 CADCHF at market done in 181.861 ms
2018.09 . 06 14 : 08 : 25.510 Trades   '9424479' : cancel order # 10514043 buy limit 0.01 CADCHF at 0.6360
2018.09 . 06 14 : 08 : 25.691 Trades   '9424479' : accepted cancel order # 10514043 buy 0.00   at market
2018.09 . 06 14 : 08 : 25.691 Trades   '9424479' : cancel # 10514043 buy limit 0.01 CADCHF at market done in 181.474 ms
2018.09 . 06 14 : 08 : 25.692 Trades   '9424479' : buy stop 0.01 CADCHF at 0.8360
2018.09 . 06 14 : 08 : 25.878 Trades   '9424479' : accepted buy stop 0.01 CADCHF at 0.8360
2018.09 . 06 14 : 08 : 25.882 Trades   '9424479' : order # 10514044 buy stop 0.01 / 0.01 CADCHF at market done in 190.823 ms
2018.09 . 06 14 : 08 : 25.883 Trades   '9424479' : cancel order # 10514044 buy stop 0.01 CADCHF at 0.8360
2018.09 . 06 14 : 08 : 26.062 Trades   '9424479' : accepted cancel order # 10514044 buy stop 0.01 CADCHF at 0.8360
2018.09 . 06 14 : 08 : 26.062 Trades   '9424479' : cancel # 10514044 buy stop 0.01 CADCHF at market done in 183.056 ms

동시에 보류 중인 항목은 ping에 가깝습니다. 데모에 대한 그러한 편견의 이유는 무엇입니까?

 

시장에서 제품을 업데이트할 때 영어/러시아어 페이지에 변경된 내용에 대한 설명을 채우고 새 버전을 게시했지만 내 제품의 "새로운 기능" 섹션에 내 설명의 아무 것도 표시되지 않았습니다.

최신 버전에 대한 문서가 전혀 없기 때문에 이 설명을 편집할 방법조차 없습니다.

변경 사항에 대한 설명은 어디에 있습니까?

 
Tetyana Shcherba :

시장에서 제품을 업데이트할 때 영어/러시아어 페이지에 변경된 내용에 대한 설명을 채우고 새 버전을 게시했지만 내 제품의 "새로운 기능" 섹션에 내 설명의 아무 것도 표시되지 않았습니다.

최신 버전에 대한 문서가 전혀 없기 때문에 이 설명을 편집할 방법조차 없습니다.


똑같다. 나는 그것이 나를 괴롭힌다고 생각했다.

 

"단일 테스트 시작" 메뉴 항목을 선택한 후

그것이오고 해당하는 단일 실행이 완료된다는 것은 말할 것도 없습니다. 단일 실행이 성공적으로 실행된 경우 "그래프" 탭으로 전환하거나 중단된 경우 "저널" 탭으로 전환하는 것이 좋습니다.


사소한 화장품 문제처럼 보일 수 있습니다.

 
Nikolai Semko :

큰 배열의 일부를 단일 Z 값으로 채워야 할 때 다음 구성을 사용합니다.


많은 사람들이 말할 것입니다 - 그것이 더 쉬울 수 있기 때문에 왜 그렇게 어렵습니까?

그러나 알 수 없는 이유로 중간 배열을 사용하는 첫 번째 옵션은 두 번째보다 눈에 띄게 빠릅니다.

몇 년 전에 나는 이미 이 문제에 대해 SD에 썼습니다. 덕분에 문제가 발견되어 수정되었으며 다음 빌드에서는 괜찮을 것이라는 답변을 받았습니다.

그러나 문제가 남아 있습니다.

그리고 MT4에서 동일한 테스트:

Windows에서 메모리 기능을 만났습니다.

ArrayResize 추가 직후

 ArrayFill (arr, 0 ,size, 0 );
이것은 테스트에서 발생하지 않도록 실제 메모리 할당을 시작합니다.


다음은 내 컴퓨터의 결과입니다.

 2018.09 . 06 16 : 25 : 44.238 TestArrayFill (EURUSD,H1)       Время заполнения через ArrayFill = 94
2018.09 . 06 16 : 25 : 44.238 TestArrayFill (EURUSD,H1)       Время заполнения через ArrayInitialize + ArrayCopy = 147
 
Ilyas :

Windows에서 메모리 기능을 만났습니다.

ArrayResize 추가 직후

이것은 테스트에서 발생하지 않도록 실제 메모리 할당을 시작합니다.

그런 다음 ArrayResize에서 ME에 내장된 프로파일러 를 측정하는 것은 무엇입니까?

 
fxsaber :

그런 다음 ArrayResize의 내장 ME 프로파일러 를 측정하는 것은 무엇입니까?

ArrayResize 함수의 실행 시간을 측정합니다.

TestArrayFill 테스트 코드, "핫" 상태가 될 가능성 없이 "콜드" 메모리가 어레이에 할당되는 방식으로 구축됨


분명히 하기 위해 ArrayResize는 가상 메모리(또는 프로세스 메모리)를 할당하지만 가상 메모리가 물리적 페이지를 즉시 가져오거나 이미 갖고 있다는 보장은 없습니다.

Windows OS는 가상 메모리 페이지에 처음 액세스할 때 필요에 따라 물리적 메모리를 할당합니다.
페이지의 크기는 4KB입니다. "워밍업"하려면 ArrayFill(내가 쓴 대로)을 통해 모든 요소를 재설정할 수 없었지만 0에서 시작하는 각 4096/sizeof(배열 요소 유형)만 재설정할 수 있었습니다.


왜냐하면 MQL4에서는 변수의 제로화가 보장되고 MT4의 ArrayResize는 어레이를 통해 실행되어 제로화되므로 "콜드" 메모리 효과가 없습니다.

 
Ilyas :

그러나 미묘함. 고맙습니다! 문서에서 스포일러 "미묘함"은 아마도 오래 전에 기한이 지났을 것입니다.