MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 255

 
Alexey Viktorov :
현재 시간 17:08은 33을 나타냅니다. 즉, 01:00의 막대 번호는 32가 됩니다.
 datetime t= StringToTime ( "01:00" );

올바른 결정이 아닙니다. 테스트가 00.00에서 시작되면 이 옵션은 0개의 막대를 제공하고 다음 01.00까지 46개의 M30 막대가 있어야 합니다.

 
Nauris Zukas :

올바른 결정이 아닙니다. 테스트가 00.00에서 시작되면 이 옵션은 0개의 막대를 제공하고 다음 01.00까지 46개의 M30 막대가 있어야 합니다.

생각의 방향을 제시했는데 01:00에 00:59에 가장 가까운 바를 주려면 이것은 스스로 할 수 있어야 합니다. 이것에 어려운 것은 없습니다.

 
Alexey Viktorov :

생각의 방향을 제시했는데 01:00에 00:59에 가장 가까운 바를 주려면 이것은 스스로 할 수 있어야 합니다. 이것에 어려운 것은 없습니다.

누구에게나 주기를 사용하고 가장 가까운 지정된 시간을 찾아야 합니다. 그렇지 않으면 옵션이 표시되지 않습니다.

 
Alexey Viktorov :
유일한 문제는 지정된 시간의 막대를 고려하거나 1보다 적은 값을 고려하여 결과 값이 무엇인지와 같은 불필요한 것으로 메모리 셀을 채우지 않는다는 것입니다. 매번 확인합니다.


주기가 없는 막대에 대해 가장 가까운 지정된 시간을 찾는 방법을 모르겠습니다. 이것에 복잡한 것이 없다면 기능을 보여줄 수 있습니까?

 

전문가 여러분, MT-4의 테스트 결과 를 파일로 추출하는 방법을 알려주세요.

여기에 설명된 추가 처리를 위해 https://www.mql5.com/ru/articles/1467?

Автоматическая оптимизация торгового робота в процессе реальной торговли
Автоматическая оптимизация торгового робота в процессе реальной торговли
  • 2007.04.16
  • Igor Malcev
  • www.mql5.com
В статье описана и представлена библиотека функций, позволяющая проводить оптимизацию входных параметров советника, запуская оптимизацию непосредственно из советника.
 
Nauris Zukas :


주기가 없는 막대에 대해 가장 가까운 지정된 시간을 찾는 방법을 모르겠습니다. 이것에 복잡한 것이 없다면 기능을 보여줄 수 있습니까?

..... 그냥 말이 없다 ....

시간이 필요한 시간보다 짧으면 이 필요한 시간을 하루 줄여야 한다고 추측하기가 얼마나 어렵습니까?

 string st = "1:00" ; // можно и так писать "01:00"
 datetime t = StringToTime (st);

 if ( TimeCurrent () < t)
  {
   MqlDateTime mqlDateTime; 
   TimeToStruct (t, mqlDateTime);
   mqlDateTime.day -= 1 ;
   t = StructToTime (mqlDateTime);
  }
 int b = Bars ( _Symbol , PERIOD_M30 , t, TimeCurrent ());

출력을 고려하지 않고 만들어지고 가능한 런타임 오류를 확인합니다. 다른 구현이 가능하기 때문에 샘플 코드를 작성하지 않으려고 합니다. 오늘 나는 그렇게하기로 결정했고 내일은 다른 옵션을 더 편리하게 고려할 수 있습니다.

 
Alexey Viktorov :

시간이 필요한 시간보다 짧으면 이 필요한 시간을 하루 줄여야 한다고 추측하기가 얼마나 어렵습니까?

다음과 같은 이유로 추측하기 어렵습니다.

알렉세이 빅토로프 :

출력을 고려하지 않고 만들어지고 가능한 런타임 오류를 확인합니다.

마지막에 오류 없이 원하는 결과를 얻으려면 코드를 얼마나 복잡하게 해야 할까요?! 주말과 공휴일도 있으며 시장은 다른 시간에 열립니다. 조언과 예 덕분에 새로운 것을 배웠습니다. 분명히 어딘가에 유용할 것이지만 지금까지는 내 옵션이 가장 간단하고 신뢰할 수 있다는 것을 알았습니다.

 
Nauris Zukas :

다음과 같은 이유로 추측하기 어렵습니다.

마지막에 오류 없이 원하는 결과를 얻으려면 코드를 얼마나 복잡하게 해야 할까요?! 주말과 공휴일도 있으며 시장은 다른 시간에 열립니다. 조언과 예 덕분에 새로운 것을 배웠습니다. 분명히 어딘가에 유용할 것이지만 지금까지는 내 옵션이 가장 간단하고 신뢰할 수 있다는 것을 알았습니다.

왜 안 돼? 그리고 이 옵션에는 생명권이 있습니다. 그리고 나에게 관심을 갖기까지 했다. 일부 수정을 통해 지정된 시간 및 기간의 막대 수를 반환하는 함수를 얻었습니다.

 int findBar( string strTime, ENUM_TIMEFRAMES period = PERIOD_CURRENT )
 {
  MqlDateTime mqlTime, mqlFindTime;
  TimeToStruct ( StringToTime (strTime), mqlFindTime);
  datetime arrTime[];
  int copy = PeriodSeconds ( PERIOD_D1 )/ PeriodSeconds (period);
  CopyTime ( _Symbol , period, 0 , copy, arrTime);
  ArraySetAsSeries (arrTime, true );
    for ( int i = 0 ; i < copy; i++)
    {
      TimeToStruct (arrTime[i], mqlTime);
      if (mqlTime.hour == mqlFindTime.hour && mqlTime.min <= mqlFindTime.min)
      return (i);
    }
   return (- 1 );
} /********************************************************************/

.

 
Alexey Viktorov :

왜 안 돼? 그리고 이 옵션에는 생명권이 있습니다. 그리고 나에게 관심을 갖기까지 했다. 일부 수정을 통해 지정된 시간 및 기간의 막대 수를 반환하는 함수를 얻었습니다.

.

정말 감사합니다!
당신은 "메모리 셀"에 대해 언급했지만 내 지식은 아직 그것에 대해 제한적입니다. 내가 이해하는 한, 이것이 전문가 테스트의 속도에 영향을 줍니까? 그것은 어떻게 든 측정됩니까 아니면 테스트 속도에 의해 결정됩니까?

 
Nauris Zukas :

정말 감사합니다!
당신은 "메모리 셀"에 대해 언급했지만 내 지식은 아직 그것에 대해 제한적입니다. 내가 이해하는 한, 이것이 전문가 테스트의 속도에 영향을 줍니까? 그것은 어떻게 든 측정됩니까 아니면 테스트 속도에 의해 결정됩니까?

나는 내 자신의 메모리 칩에 대해 이야기하고 있었다. :)))

코드를 작성할 때 쉽게 다시 확인하고, 명확하게 하고, 해야 하는 대로 수행하고, 다시 잊어버릴 수 있는 그런 사소한 일을 기억하지 못한다는 사실.