거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Telegram에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
스크립트가 흥미로우신가요?
그렇다면 링크 to it -
하셔서 다른 이들이 평가할 수 있도록 해보세요
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
조회수:
32
평가:
(3)
게시됨:
\MQL5\Include\Tools\Custom\ \MQL5\Expert\Test\DateTimeMsc\
MQL5 프리랜스 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

최근에 CopyTicksRange()의 기능을 집중적으로 테스트하기 시작했을 때 밀리초를 처리할 때 몇 가지 좋지 않은 문제가 발생했습니다:

  1. 저는 실제로 CDateTime을 사용하고 싶었는데, 이는 MqlTimeStruct에서 파생되었고 포함된 증분 및 감소 메서드를 사용하여 다양한 시간 단위를 매우 쉽게 편집할 수 있기 때문입니다.
  2. 동시에 밀리초 시간(1970년 1월 1일 이후 초에 울롱 형식의 1000을 곱한 값)을 원활하게 앞뒤로 변환할 수 있는 방법이 필요했습니다.

여기서 밀리초라는 숫자는 정확한 날짜를 알려주지 않는 매우 모호한 숫자라는 어려움에 부딪혔습니다. 그러나 CDateTime 또는 TimeStruct를 사용하면 모든 시간 단위를 변경하기는 쉽지만 형식이 찢어지고 결과도 매우 불분명합니다. 이 CDateTimeMsc 클래스는 이 문제를 해결하기 위해 만들어졌습니다.

#include <Tools\DateTime.mqh>

struct CDateTimeMsc: public CDateTime
  {
public:
   int               msc;               // additional variable for msc storage
   datetime          check_datetime;    // 편리한 관찰을 위해 약간의 오버헤드가 필요합니다.

   //--- CDateTimeMsc 메서드

   ulong             MscTime(void) {return(ulong(double(CDateTime::DateTime()) * 1000) + msc);}
   void              MscTime(ulong a_msc_time);  // 입력 (날짜*1000)
   void              Msc(int value);
   //bool IsNumInt(const int num);
   void              MscDec(int delta = 1);
   void              MscInc(int delta = 1);
   void              SecTime(int a_int_time);
   ulong             SecTime(void);
   void              UpdateDateTime();   // 관찰 변수 check_datetime을 업데이트합니다.
   void              DateTime(datetime a_datetime) {CDateTime::DateTime(a_datetime); UpdateDateTime();}
   datetime          DateTime(void) {return(CDateTime::DateTime());}

  };

새로운 메서드는 이전 구조의 상속 아래에 삽입되었습니다.

이제 실제로 구조체(구조체/클래스 참조)인 이 클래스는 정확한 시간을 사용할 수 있는 경우 밀리초 단위로도 작동할 수 있습니다.



이제 특정 오버헤드를 발생시키는 추가 변수 "check_datetime"이 정말 필요한지(어떤 사람들에게는 이것이 매우 중요하기 때문에) 논쟁의 여지가 있을 수 있습니다. 하지만 일반적으로 CDateTime 객체는 많이 사용되지 않고 시간, 분, 초 또는 일과 같은 시간 단위를 변경해야 하는 중요한 위치에서 몇 개만 사용된다고 가정했습니다. 또한 증감할 때마다 불필요하게 호출되는 UpDateTime() 메서드에 대해서도 몇 가지 의구심이 들었습니다.

그러나 대체로 처리 요소가 주요 초점이었습니다.


테스트
정확한 날짜를 알고 싶은 경우 더 이상 추가 datetime 변수로 시간을 쿼리할 필요 없이 "check_datetime" 변수를 감독 아래에 배치하면 됩니다(위의 TestEA 참조).


obs2

밀리초 시간이 자동으로 날짜/시간 형식으로 변환되었습니다.


MetaQuotes Ltd에서 독일어로 번역함.
원본 기고글: https://www.mql5.com/de/code/48156

일중 3배 성능 일중 3배 성능

세 개의 십자가를 설정하고 지정된 시간(설정 가능)부터 시작하여 일일 백분율 성과를 모니터링합니다.

완벽한 지그재그 완벽한 지그재그

가장 간단한 원리의 초고속 지그재그. 매달린 정점이 없습니다. 시간에 최적화된 정점 찾기를 지원합니다.

졸리 로저의 어드바이저 버전 졸리 로저의 어드바이저 버전

2011년 자동 트레이딩 챔피언십 참가자였던 Pirat을 기준으로 합니다.

Triangle Hedge Triangle Hedge

메타트레이더 5에서 가상 헤지 포지션을 엽니다.