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

 
Igor Makanu :

할 수 없다

iBars()를 사용하여 사용 가능한 기록 보기

추신: 내가 틀리지 않았다면 어드바이저를 시작할 때 테스터에서 1000개의 막대를 사용할 수 있으며 새 데이터가 생성되면 막대의 수가 증가합니다. 테스터는 액세스되는 모든 TF에 대한 기록을 모델링합니다. H1에서 테스트를 시작하고 테스트 과정에서 M1 TF 데이터에 액세스하면 시작 시 H1의 1000개 막대 기록에 액세스할 수 있으므로 60 * 1000 = 60,000 M1 막대를 사용할 수 있습니다.

자세한 내용은 https://www.mql5.com/ru/articles/1511 과 같은 기사를 읽어야 합니다.

나는 그것을하는 방법을 알아 냈습니다.

당신은 고문을 시작하고 한 달 동안 거래하지 않을 수 있습니다.

그리고 다음 달부터 거래를 시작했습니다.

그리고 역사는 계속 축적될 것입니다. 거래 전에 분산 계수를 계산합니다.


방법은 어떠세요?



그러나 "첫 달이 거래되지 않도록"쓰는 방법 ...

나는 다른 시간에 테스트 할 것입니다.

손으로 날짜를 지속적으로 수정하는 것을 꺼림.

카운터를 켜거나, 일을 ...

 
multiplicator :

나는 그것을하는 방법을 알아 냈습니다.

고문을 시작하고 한 달 동안 거래하지 않도록 할 수 있습니다.

이와 같은 것이 작업에 필요하지만 다시 iBars()를 사용 하면 테스터에서 고문이 사용할 수 있는 기록이 얼마나 되는지 알 수 있습니다.

 

multiplicator :
счётчик, что ли включить, дней...

이고르 마카누 :

그러나 다시 iBars()를 사용하면 테스터에서 EA가 사용할 수 있는 기록이 얼마나 되는지 알 수 있습니다.

바로 그거죠!

iBars() 가 > 30,000이 되면 - 분산을 계산한 다음 EA가 거래하도록 합니다 .

응답해주신 모든 분들께 감사드립니다.

 

안녕하세요! 미숙한 초보 트레이더 를 도와주세요! 어드바이저는 있지만 스톱로스는 없다! 어드바이저에 손절매를 추가할 수 있는 사람(가능한 경우 무료로!)

 
Tem4ik :

안녕하세요! 미숙한 초보 트레이더 를 도와주세요! 어드바이저는 있지만 스톱로스는 없다! 어드바이저에 손절매를 추가할 수 있는 사람(가능한 경우 무료로!)


여기에 코드를 게시하고(디컴파일되지 않은 경우) 누군가가 도움을 줄 수 있습니다.

 
#define list "Cryptocurrency Market\\List.csv"

enum FILE_LOCATION
{
   LOCATE_TERMINAL = 0 ,
   LOCATE_COMMON = FILE_COMMON ,
};

void GetLocalSource(FILE_LOCATION &dir)
{
   GetLocalList(FileOpenEx(list, FILE_WRITE | FILE_READ | FILE_CSV |dir));
}

int FileOpenEx( const string fname, int flags, int delimeter = ';' , uint codepage = CP_ACP )
{
   bool ex;
   if (flags > 4095 )
      ex = FileIsExist (fname, FILE_COMMON );
   else
      ex = FileIsExist (fname);
   if (!ex) return - 1 ;
   return FileOpen (fname, flags, delimeter, codepage);
}

bool GetLocalList(const int handle)
{
   if(handle == INVALID_HANDLE) {Print("Handle err: ", handle, " | ", GetLastError()); return false;}
...
}

FileIsExist 를 통해 파일을 찾을 수 없습니다. 함수가 파일을 보고 싶어하지 않습니다. 나는 이미 이 파일을 일반 디렉터리와 터미널 디렉터리에 모두 넣었습니다. 결과는 변경되지 않았습니다.

2019.01.06 16:11:14.957 CoinMarketCap EURUSD,일일: 핸들 오류: -1 | 5020

List.csv를 작성하는 함수는 동일한 목록 매크로 대체를 통해 이를 엽니다.

실수는 어디에 있습니까?

 
Ilya Prozumentov :

FileIsExist를 통해 파일을 찾을 수 없습니다. 함수가 파일을 보고 싶어하지 않습니다. 나는 이미 이 파일을 일반 디렉터리와 터미널 디렉터리에 모두 넣었습니다. 결과는 변경되지 않았습니다.

2019.01.06 16:11:14.957 CoinMarketCap EURUSD,일일: 핸들 오류: -1 | 5020

List.csv를 작성하는 함수는 동일한 목록 매크로 대체를 통해 엽니다.

실수는 어디에 있습니까?

#define 목록 "File\\Cryptocurrency Market\\List.csv"를 사용해 보십시오.

파일은 Files 폴더에 있어야 합니다.

 
Vladimir Pastushak :

#define 목록 "File\\Cryptocurrency Market\\List.csv"를 사용해 보십시오.

파일은 Files 폴더에 있어야 합니다.

도움이되지 않았다


추신: 문제가 발견되었습니다. 기존 파일 이름 끝에 공백이 있습니다.

 

안녕하세요.

주의 시작과 끝의 날짜(날짜 형식)를 결정하는 방법을 알려주실 수 있습니까? 오실레이터는 주의 끝에서 0으로 재설정되고 새로운 주의 시작에서 0부터 계산을 시작해야 합니다. 현재로서는 매일 0으로 재설정하는 방법을 알고 있지만 매주 0으로 재설정하는 방법을 모릅니다. 그래서 매일 리셋합니다.

 void Calculate( int i)
  {
   double summ;
   datetime startTime  = StringToTime ( TimeToString ( Time [i], TIME_DATE )+ " " +StartTime); // StartTime=00:10
   datetime endTime    = StringToTime ( TimeToString ( Time [i], TIME_DATE )+ " " +EndTime);   // EndTime=23.50
   datetime currentTime= StringToTime ( TimeToString ( Time [i], TIME_DATE )+ " " + TimeToString ( Time [i], TIME_MINUTES ));
//Print("Start = ",TimeToString(startTime,3));
//Print("End = ",TimeToString(endTime,3));
   if (CheckTimer(i,startTime,endTime,currentTime, 0 ))
     {
      summ = MainBuffer[i+ 1 ];
      summ+= InfluenceBuffer[i];
      MainBuffer[i]=summ; 
     }
   else
     {
      summ= 0.0 ;
      MainBuffer[i]=summ;
      }
  }

감사해요

 
Gerkl :

주의 시작과 끝의 날짜(날짜 형식)를 결정하는 방법을 알려주실 수 있습니까?

 //1. для времени datetime t
if ( TimeDayOfWeek (t))== 1 ) // Понедельник
if ( TimeDayOfWeek (t))== 5 ) // Пятница

//2. для текущего времени
if ( DayOfWeek () = 1 ) // Понедельник
if ( DayOfWeek () = 5 ) // Пятница

옵션 번호 1이 필요할 가능성이 높으며 막대를 정렬하는 계산 주기의 표시기에서 다음 구성과 같은 것을 사용합니다.

 if ( TimeDayOfWeek ( Time [i]))== 1 ) // Понедельник
if ( TimeDayOfWeek ( Time [i]))== 5 ) // Пятница
상태를 확인한 후 원하는 시간[i]으로