28!!! 통화 쌍, 1명의 전문가. 다시 성배, 그러나 아무도 이것을 나에게 보여주지 않았습니다. + 데모 계정 - 페이지 11

 
 
똑같은 표지입니다.
 
MetaQuotes :
소스코드도 증거도 없는 사진 퍼레이드...


2로쉬

다섯 번째 페이지에 표시된 Expert Advisor에서 모든 t/f의 Bid와 Close 사이의 불일치를 확인했습니다. 그러한 불일치가 없다는 것을 테스터에서 미래를 내다보는 것이 불가능하다는 확인으로 해석합니다. 그때도 이 연결은 나에게 이상하게 보였다. 내 관점에서는 Close의 동작이 아니라 높은 t/f의 High 및 Low 동작을 테스트해야 합니다. 그리고 위의 MQ에서 너무 공정하지 않은 비난을 받은 후, 나는 이것에 시간을 할애하기로 결정했습니다. 늦었지만.

아래는 자체적으로 분 차트에서 시간 또는 일의 현재 고가 및 저가를 형성하는 어드바이저의 코드입니다. 그런 다음 각 틱에서 H1 또는 D1 t/f에서 수신된 시간 또는 날짜의 높음 및 낮음과 비교합니다. 불일치하는 경우 데이터를 로그 및 파일로 출력합니다.

 
//+------------------------------------------------------------------+
//|                                           Simple Prospection.mq4 |
//+------------------------------------------------------------------+
#property copyright "Copyright c 2007, Yurixx"
#property link      ""
double curHi,curLo,HiH1,LoH1;
int    mm,hh,dd,curM1,curH1,curD1,kk,nn,handle;
string str,mHi,mLo,hHi,hLo;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
  handle = FileOpen("FU.csv",FILE_CSV|FILE_WRITE," ");
  if(handle<1) { Print("File FU.csv not found, Error:", GetLastError());
                 return(false);   }
  if (Period()>PERIOD_M1)
  {  Print("Период тестирования не соответствует задаче");
     return(-1);
  }
  Print("Период тестирования ",Period()," минут");
  FileWrite(handle,"Date","Time","curHi","HiH1","curLo","LoH1");
  nn=D'2007.07.12 23:58:59';
  FileWrite(handle,TimeToStr(nn,TIME_DATE|TIME_SECONDS),
                   TimeSeconds(nn),TimeMinute(nn),TimeHour(nn),TimeDay(nn));
  nn=D'2007.07.13 00:58:59';
  FileWrite(handle,TimeToStr(nn,TIME_DATE|TIME_SECONDS),
                   TimeSeconds(nn),TimeMinute(nn),TimeHour(nn),TimeDay(nn));
  nn=D'2007.07.13 00:02:00';
  FileWrite(handle,TimeToStr(nn,TIME_DATE|TIME_SECONDS),
                   TimeSeconds(nn),TimeMinute(nn),TimeHour(nn),TimeDay(nn));
  curHi=0.0;
  curLo=1000.0;
  curD1=-1;
  curH1=-1;
  curM1=-1;
  nn=0;//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {  
//----
  mm = TimeMinute(TimeCurrent());
  hh = TimeHour(TimeCurrent());
  dd = TimeDay(TimeCurrent());
  if (mm!=curM1)
  {  if (hh!=curH1)
     {  if (dd!=curD1)
        {  curHi=NormalizeDouble(Bid,Digits);
           curLo=NormalizeDouble(Bid,Digits);
           curD1=dd;
        }
        //curHi=NormalizeDouble(Bid,Digits);
        //curLo=NormalizeDouble(Bid,Digits);
        curH1=hh;
     }
     curM1=mm;
  }
  if (NormalizeDouble(Bid,Digits)>curHi) curHi=NormalizeDouble(Bid,Digits);
  if (NormalizeDouble(Bid,Digits)<curLo) curLo=NormalizeDouble(Bid,Digits);
  //HiH1 = iHigh(NULL,PERIOD_H1,0);
  //LoH1 =  iLow(NULL,PERIOD_H1,0);
  HiH1 = iHigh(NULL,PERIOD_D1,0);
  LoH1 =  iLow(NULL,PERIOD_D1,0);
  HiH1 = NormalizeDouble(HiH1,Digits);
  LoH1 = NormalizeDouble(LoH1,Digits);
  str = TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS);
  mHi = ", curHi=" + DoubleToStr(curHi,Digits);
  mLo = ", curLo=" + DoubleToStr(curLo,Digits);
  hHi = ", HiH1="  + DoubleToStr(HiH1, Digits);
  hLo = ", LoH1="  + DoubleToStr(LoH1, Digits);
  if (HiH1!=curHi||LoH1!=curLo)
  {  Print(str,mHi,hHi,mLo,hLo);
     FileWrite(handle,TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS),curHi,HiH1,curLo,LoH1);
  }
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
{  Print("Работа закончена");
   FileClose(handle);
//---- done
   return(0);
}

그리고 이것은 2007.07.10부터 2007.07.14까지 EURUSD, M1에서 이 Expert Advisor를 실행하는 동안 얻은 로그의 일부입니다. 상담원의 글에서 알 수 있듯이 일일 데이터로 비교한 것입니다. 그러나 시간별 데이터와 비교할 때 상황은 더 좋지 않습니다. 미래를 내다볼 수 있는 가능성을 확인하거나 그런 가능성이 존재하지 않는지 확인하고 싶었다. 그러나 그것은 완전히 세 번째로 밝혀졌습니다.

그림에서 알 수 있듯이 테스터가 로그에 출력하는 시간과 Expert Advisor가 주기적으로 표시하는 시간이 서로 다릅니다. 또한 이해할 수없는 반환이 있습니다. 주어진 조각에서 테스터의 시간 2007.07.13 00:58은 시간 2007.07.12 00:58, 2007.07.13 00:02, 2007.07 사이에 네 번 발생합니다. 13 00:04, 2007.07.13 00:06 및 2007.07.13 00:07. 그리고 이 순간 어드바이저가 2007.07.12 23:58:59를 표시할 때마다.

이 순간에 높음과 낮음에 대한 데이터 사이의 동반된 불일치는 이러한 시간 실패로 인해 유발될 수 있습니다.

또한 init() 함수에 있는 파일로 테스트 인쇄하는 데 주의를 기울이는 것이 좋습니다. 이 인쇄는 테스터에서 초가 작동하지 않음을 보여줍니다. 따라서 초 모드의 TimeToStr () 및 TimeSeconds() 함수는 작동하지 않습니다. 이것이 의도한 방식일 수도 있지만 테스터와 어드바이저가 모두 몇 초 만에 데이터를 인쇄하는 이유는 무엇입니까?

나는 이 데이터가 이 이해할 수 없는 시기에 어디에서 가져왔는지 완전히 이해할 수 없기 때문에 높음과 낮음에 대한 데이터 사이의 불일치에 대한 질문을 제기하지 않습니다.

그리고 더. 어떤 이유로 2007.07.09에서 2007.07.14 사이가 아니라 2007.07.10 에서 2007.07.14 사이에서 테스트할 때 이해할 수 없는 말도 안되는 말이 쏟아지고 있습니다. 즉, 이전 전화 번호의 데이터는 전혀 얻지 못했습니다. HiH1 및 LoH1 변수는 모두 시간이 0입니다.

아마도 이것이 내가 잘못한 곳입니까?

 
안녕하세요 유릭스입니다.
코드를 변경하지 않고 Expert Advisor를 실행했습니다. 다음은 파일의 모든 데이터입니다. 그가 꺼낸 것:
날짜 시간 curHi HiH1 curLo LoH1
2007.07.12 23:58:00 0 58 23 12
2007.07.13 00:58:00 0 58 0 13
2007.07.13 00:02:00 0 2 0 13
다음은 로그입니다.
2007.08.13 09:54:51 2007.07.13 22:59 Simple Prospection EURUSD,M1: 완료
2007.08.13 09:54:48 2007.07.10 00:00 Simple Prospection EURUSD,M1: 테스트 기간 1분
2007.08.13 09:54:48 Simple Prospection 테스트 시작
2007.08.13 09:54:45 단순 전망: 성공적으로 로드됨
2007.07.10부터 2007.07.14까지 테스트 중 불일치 오류 없음. 사실, 나는 지난 주에 시험 특별 집회가 있었던 것을 기억했습니다. 8월 1일의 일반적인 빌드 208(이제 LibeUpdate를 사용하여 하나의 터미널을 업데이트함)에서도 오류가 없습니다.
2007.08.13 10:13:04 2007.07.13 22:59 Simple Prospection EURUSD,M1: 완료
2007.08.13 10:13:04 2007.07.10 00:00 Simple Prospection EURUSD,M1: 테스트 기간 1분
2007.08.13 10:13:04 Simple Prospection 테스트 시작
사실은 테스트하기 전에 히스토리 센터에서 누락된 데이터를 다운로드한 다음(몇 달 동안 이 터미널을 실행하지 않았습니다) 모든 기간을 다시 계산했습니다. 히스토리 센터에서 "다운로드"를 클릭했습니다. 두 번째로 이 경우 모든 t/f를 자동으로 다시 계산하고 기간 변환기가 필요하지 않습니다(갑자기 사람들이 이 속성에 대해 알지 못합니다).


그러나 그 전에는 로그에 오류 출력이 있었습니다.

2007.08.13 10:08:19 1999.05.26 02:01 Simple Prospection GBPUSD,M1: 완료
2007.08.13 10:08:18 1999.01.04 09:31 단순 전망 GBPUSD, M1: 1999.01. 04 09:31:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:30 Simple Prospection GBPUSD, M1: 1999.01. 04 09:30:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:29 Simple Prospection GBPUSD, M1: 1999.01. 04 09:29:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:28 Simple Prospection GBPUSD, M1: 1999.01. 04 09:28:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:27 단순 전망 GBPUSD, M1: 1999.01. 04 09:27:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:26 Simple Prospection GBPUSD, M1: 1999.01. 04 09:26:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:25 Simple Prospection GBPUSD, M1: 1999.01. 04 09:25:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:24 단순 전망 GBPUSD, M1: 1999.01. 04 09:24:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:23 Simple Prospection GBPUSD, M1: 1999.01. 04 09:23:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:22 단순 전망 GBPUSD, M1: 1999.01. 04 09:22:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:21 단순 전망 GBPUSD, M1: 1999.01. 04 09:21:00, curHi=1.6702, HiH1=1.6702, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:20 Simple Prospection GBPUSD, M1: 1999.01. 04 09:20:00, curHi=1.6702, HiH1=1.6702, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:19 단순 전망 GBPUSD, M1: 1999.01. 04 09:19:00, curHi=1.6702, HiH1=1.6702, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:18 단순 전망 GBPUSD, M1: 1999.01. 04 09:18:00, curHi=1.6702, HiH1=1.6702, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:17 단순 전망 GBPUSD, M1: 1999.01. 04 09:17:00, curHi=1.6701, HiH1=1.6701, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:16 Simple Prospection GBPUSD, M1: 1999.01. 04 09:16:00, curHi=1.6701, HiH1=1.6701, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:15 Simple Prospection GBPUSD, M1: 1999.01. 04 09:15:00, curHi=1.6687, HiH1=1.6687, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:14 단순 전망 GBPUSD, M1: 1999.01. 04 09:14:00, curHi=1.6687, HiH1=1.6687, curLo=1.6682, LoH1=1. 6686
2007.08.13 10:08:18 1999.01.04 09:13 Simple Prospection GBPUSD, M1: 1999.01. 04 09:13:00, curHi=1.6682, HiH1=1.6697, curLo=1.6682, LoH1=1. 6597
2007.08.13 10:08:15 1999.01.04 09:13 Simple Prospection GBPUSD,M1: 테스트 시간 1분
2007.08.13 10:08:15 Simple Prospection 테스트 시작

나는 EURUSD에 대한 데이터를 다운로드하고 펌핑 및 재계산되지 않은 GBPUSD에 대한 테스트를 시작했습니다. 이것이 불일치의 이유였습니다.
동일한 작업을 시도하십시오 - 데이터를 업로드하고 자동으로 또는 기간 변환기 스크립트와 동기화하십시오.

몇 초 후에 살펴보겠습니다. 감사합니다.
 

헤이 로쉬!

답변 해주셔서 감사합니다. 내가 당신을 이해하는 한 당신은 다른 전화 회사의 높음 및 낮음 데이터 간의 불일치가 견적 스트림의 품질과 관련이 있다고 생각합니다. 즉, 양초는 TF마다 다르게 형성되어 결과적으로 1-2-3 포인트 차이가 있을 수 있습니다. 꽤 가능합니다.

MQ 데모 서버 데이터에서 테스트했습니다. 게다가 실시간으로 쓰지는 않고 일주일에 한 번, 주말에 모든 t\f를 업로드합니다. 사실, 나는 모든 TF에 대한 양초 구성이 최소한 서버에서 프로그래밍 방식으로 서버 소프트웨어에 의해 모든 TF에 대해 동기식으로 단일 따옴표 스트림을 기반으로 수행되므로 이러한 불일치가 불가능하다고 생각했습니다. 그게 아니라면 안타까운데 어떻게든 감안하셔야 할텐데... 데이터 브러싱, 동기화 등.. 모든 것을 아름답게 보이게 하기 위해 - 제 생각에 이것은 잘못된 방법입니다. 귀하의 서버, 브로커의 서버가 제공된 형식으로 데이터를 제공합니다. 그리고 이러한 데이터가 시간이 지남에 따라 변하는 것이 아니라 정확하게 거래해야 합니다. 이것은 테스트 프로세스에서 특히 중요합니다. 결국, 모두는 성배 의 문제를 알고 있습니다. 테스터의 공간과 실제 생활의 배수. 그녀는 어디에서 왔습니까? MQ는 미래를 내다보는 것은 불가능하며 틱 모델링은 하나의 과정이라고 주장합니다. 그렇다고 가정해야 합니다. 따라서 실제로 문제는 데이터에 있습니까? MQ는 이 문제를 해결할 수 없으며 데이터는 이에 의존하지 않습니다. 그런 다음 테스터가 깔끔하게 빗질 된 데이터뿐만 아니라 모든 데이터에서 올바르게 작동하는지 확인해야합니다.

그러나 내 게시물은 다른 전화 번호의 데이터 불일치가 아니라 시간이 지남에 따라 오해에 전념했습니다. 그리고 게시한 내용은 문제를 제거하지 않습니다. 오히려 귀하의 게시물과 관련하여 다음과 같이 묻고 싶습니다.

내 로그에서 테스터와 EA 시간 데이터 모두 초를 포함합니다. 귀하의 경우 테스터의 데이터에는 초가 전혀 포함되지 않고 어드바이저의 데이터에는 0초만 포함됩니다. 이와 관련하여 어떤 모드에서 테스트를 수행했는지에 대한 질문이 발생합니다. 명확히 하고 싶습니다. 이 Expert Advisor는 "모든 틱" 모드에서만 테스트하기 위한 것입니다. 그리고 내가 우연히 발견한 오류는 이 모드에서만 재현할 수 있습니다. 따라서 다른 모드에서 테스트한 경우 몇 초가 걸리므로 테스트를 반복하십시오.

원칙적으로 테스트할 날짜의 쌍과 날짜 범위는 중요하지 않습니다. 그리고 상담원은 M1 이외의 전화번호로는 일하지 않습니다. 그러나 우리의 결과를 비교할 수 있도록 2007.07.10에서 2007.07.14까지 EURUSD를 테스트하고 별도의 테스트로 2007.07.09 에서 2007.07.14 까지 범위에서 EURUSD를 테스트해 보시기 바랍니다.

미리 감사드립니다.

 
Yurixx :

헤이 로쉬!

내 로그에서 테스터와 EA의 시간 데이터에는 초가 포함됩니다. 귀하의 경우 테스터의 데이터에는 초가 전혀 포함되지 않고 어드바이저의 데이터에는 0초만 포함됩니다. 이와 관련하여 어떤 모드에서 테스트를 수행했는지에 대한 질문이 발생합니다. 명확히 하고 싶습니다. 이 Expert Advisor는 "모든 틱" 모드에서만 테스트하기 위한 것입니다. 그리고 내가 우연히 발견한 오류는 이 모드에서만 재현할 수 있습니다. 따라서 다른 모드에서 테스트한 경우 몇 초가 걸리므로 테스트를 반복하십시오.

원칙적으로 테스트할 날짜의 쌍과 날짜 범위는 중요하지 않습니다. 그리고 상담원은 M1 이외의 전화번호로는 일하지 않습니다. 그러나 우리의 결과를 비교할 수 있도록 2007.07.10에서 2007.07.14까지 EURUSD를 테스트하고 별도의 테스트로 2007.07.09 에서 2007.07.14 까지 범위에서 EURUSD를 테스트해 보시기 바랍니다.

미리 감사드립니다.


사실, 지금 나는 시간이 없다는 것을 보았고 보았다. 이것은 GBPUSD에 대해 처음 테스트할 때 자동으로 다운로드된 몇 시간 및 며칠 동안 의 데이터가 없었지만 (저는 일반적으로 해당 터미널에 차트가 열려 있지 않음) 두 번째 경우에는 연결되어 있습니다(제 생각에는). 지금은 단일 오류가 아닌 확인하고 싶었습니다. 첫 번째 테스트 실행 중에 필요한 데이터가 다운로드되었습니다.

즉, 처음으로 GBPUSD에 대한 H1 및 D1 기간에 대한 데이터가 없었으므로 모델링에 오류가 있었습니다.
 
나는 "2007.07.10에서 2007.07.14 까지 EURUSD에 대해 테스트했고, 별도의 테스트로 2007.07.09에서 2007.07.14 까지" 범위에서 질문했는데 차이가 없습니다.
 
Rosh :

몇 초 후에 살펴보겠습니다. 감사합니다.


초 버그가 수정되었습니다(컴파일러에서). 수정된 빌드는 곧 사용할 수 있습니다.
 
Rosh :
초 버그가 수정되었습니다 (컴파일러에서). 수정된 빌드는 곧 사용할 수 있습니다.
희망할 수 있습니다. 테스터 grail77 이 수정된 빌드에서 더 이상 작동하지 않을 것이라고?
 
granit77 :
로쉬 :
초 버그가 수정되었습니다 (컴파일러에서). 수정된 빌드는 곧 사용할 수 있습니다.
희망할 수 있습니다. 테스터 grail77이 수정된 빌드에서 더 이상 작동하지 않을 것이라고?

내일 확인하겠습니다.