다른 옵션을 시도했습니다. 결과는 동일합니다. 이것이 어떻게 완전히 이해할 수 없습니다. 어떤 시점에서 iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); 갑자기 더 넓은 범위의 막대를 계산하기 시작합니다. 누가 이해했는지 말해줘, 그는 머리 전체를 부러뜨렸다. 고맙습니다.
다른 옵션을 시도했습니다. 결과는 동일합니다. 이것이 어떻게 완전히 이해할 수 없습니다. 어떤 시점에서 iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); 갑자기 더 넓은 범위의 막대를 계산하기 시작합니다. 누가 이해했는지 말해줘, 그는 머리 전체를 부러뜨렸다. 고맙습니다.
staticint PrevTime= 0 ;
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+int start()
{
if (Time[ 0 ]<=PrevTime) return ( 0 );
PrevTime=Time[ 0 ];
//////////////// CheckForLongetivityClose_Sell();double pBid= NormalizeDouble (Bid, Digits ),Low_Now=Low[ 1 ];
////////////int n_beg= 1 ; // индекс дня, в данном случае 1 - вчерашний деньdatetime DayTime_beg=iTime( NULL , PERIOD_D1 ,n_beg); // Начало дня "n" в секундахint NumberLastBar_beg=iBarShift( NULL , 0 ,DayTime_beg);
int n_end= 0 ; // индекс дня, в данном случае 1 - вчерашний деньdatetime DayTime_end=iTime( NULL , PERIOD_D1 ,n_end); // Начало дня "n" в секундахint NumberLastBar_end=iBarShift( NULL , 0 ,DayTime_end);
Print ( " NumberLastBar_beg= " ,NumberLastBar_beg, " NumberLastBar_end= " ,NumberLastBar_end);
//---------------------------------------------------------------------datetime Time_Check_Low_Day=Time[iLowest( NULL , 0 ,MODE_LOW,NumberLastBar_beg,NumberLastBar_end)];
int i=iLowest( NULL , 0 ,MODE_LOW,NumberLastBar_beg,NumberLastBar_end);
Print ( " i=" ,i);
string time_check_low_day=TimeToStr(Time_Check_Low_Day,TIME_MINUTES);
/////////////Print ( " time_check_low_day=" ,time_check_low_day);
datetime time_check_verify=StrToTime( "H_check_beg:M_check_beg" );
return ( 0 );
}
이 라인에주의하십시오
datetime Time_Check_Low_Day=Time[iLowest( NULL , 0 ,MODE_LOW,NumberLastBar_beg,NumberLastBar_end)];//iLowest раз
int i=iLowest( NULL , 0 ,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); //iLowest два
1. 이 줄을 바꾸는 것이 좋습니다.
int i=iLowest( NULL , 0 ,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); // исправлять не стал
datetime Time_Check_Low_Day=Time[i];
2. NumberLastBar_beg는 어제 첫 번째 막대의 번호이며 , 검색을 수행해야 하는 막대의 수 대신 이 값을 설정합니다.
다른 옵션을 시도했습니다. 결과는 동일합니다. 이것이 어떻게 완전히 이해할 수 없습니다. 어떤 시점에서 iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); 갑자기 더 넓은 범위의 막대를 계산하기 시작합니다. 누가 이해했는지 말해줘, 그는 머리 전체를 부러뜨렸다. 고맙습니다.
14:08:36 2004.09.29 00:00 시간+i최저 EURUSD,H1: NumberLastBar_beg= 24 NumberLastBar_end= 0
14:08:36 2004.09.29 00:00 시간+i최저 EURUSD,H1: i=18
14:08:36 2004.09.29 00:00 시간+i최저 EURUSD,H1: time_check_low_day=06:00
14:08:39 2004.09.29 01:00 시간+i최저 EURUSD,H1: NumberLastBar_beg= 25 NumberLastBar_end= 1
14:08:39 2004.09.29 01:00 시간+i최저 EURUSD,H1: i=19
14:08:39 2004.09.29 01:00 시간+i최저 EURUSD,H1: time_check_low_day=06:00
14:08:39 2004.09.29 02:00 시간+i최저 EURUSD,H1: NumberLastBar_beg= 26 NumberLastBar_end= 2
14:08:39 2004.09.29 02:00 시간+i최저 EURUSD,H1: i=20
14:08:39 2004.09.29 02:00 시간+i최저 EURUSD,H1: time_check_low_day=06:00
14:08:40 2004.09.29 03:00 시간+i최저 EURUSD,H1: NumberLastBar_beg= 27 NumberLastBar_end= 3
14:08:40 2004.09.29 03:00 시간+i최저 EURUSD,H1: i=21
14:08:40 2004.09.29 03:00 시간+i최저 EURUSD,H1: time_check_low_day=06:00
14:08:41 2004.09.29 04:00 시간+i최저 EURUSD,H1: NumberLastBar_beg= 28 NumberLastBar_end= 4
14:08:41 2004.09.29 04:00 시간+i최저 EURUSD,H1: i=31
14:08:41 2004.09.29 04:00 시간+i최저 EURUSD,H1: time_check_low_day=21:00
코드:
정적 정수 PrevTime=0;
//+----------------------------------------------- --------------------+
//| |
//+----------------------------------------------- --------------------+
정수 시작()
{
if(시간[0]<=이전시간) return(0);
PrevTime=시간[0];
///////////////
// CheckForLongetivityClose_Sell();
double pBid=NormalizeDouble(입찰가,자리수),Low_Now=낮음[1];
/////////////
정수 n_beg=1; // 오늘의 인덱스, 이 경우 1 - 어제
datetime DayTime_beg=iTime(NULL,PERIOD_D1,n_beg); // "n"일의 시작(초)
int NumberLastBar_beg=iBarShift(NULL,0,DayTime_beg);
정수 n_end=0; // 오늘의 인덱스, 이 경우 1 - 어제
datetime DayTime_end=iTime(NULL,PERIOD_D1,n_end); // "n"일의 시작(초)
int NumberLastBar_end=iBarShift(NULL,0,DayTime_end);
Print(" NumberLastBar_beg= ",NumberLastBar_beg," NumberLastBar_end= ",NumberLastBar_end);
//------------------------------------------------ ----------------------
datetime Time_Check_Low_Day=시간[iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end)];
int i=iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end);
인쇄("i=",i);
string time_check_low_day=TimeToStr(Time_Check_Low_Day,TIME_MINUTES);
//////////////
Print(" time_check_low_day=", time_check_low_day);
datetime time_check_verify=StrToTime("H_check_beg:M_check_beg");
리턴(0);
}
코드가 실생활이나 데모 계정에서만 사용된다면 귀하와 유사한 옵션이 더 편리합니다. 그러나 전략 테스터를 사용할 때 문제가 발생할 수 있습니다.
예를 들어 무엇? 왜 나에게는 아무 문제 도 일으키지 않지만 당신에게는 "발생할 수 있습니다".
이해가 안되는 부분이 있습니다
여기 인쇄물에서 5e-005.0과 같은 쓰레기로 밝혀졌습니다.
가격이전 값
다 더하는 것이 정상인데 빼면 왜 그럴까?가장 이해할 수 없는 것은 이것이 역사의 이 부분에서 정확히 발생하고 다른 부분에서는 정상이라는 것입니다.
다른 옵션을 시도했습니다. 결과는 동일합니다. 이것이 어떻게 완전히 이해할 수 없습니다. 어떤 시점에서 iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); 갑자기 더 넓은 범위의 막대를 계산하기 시작합니다. 누가 이해했는지 말해줘, 그는 머리 전체를 부러뜨렸다. 고맙습니다.
4:08:36 시간+i최저 테스트 시작14:08:36 2004.09.29 00:00 시간+i최저 EURUSD,H1: NumberLastBar_beg= 24 NumberLastBar_end= 0
14:08:36 2004.09.29 00:00 시간+i최저 EURUSD,H1: i=18
14:08:36 2004.09.29 00:00 시간+i최저 EURUSD,H1: time_check_low_day=06:00
14:08:39 2004.09.29 01:00 시간+i최저 EURUSD,H1: NumberLastBar_beg= 25 NumberLastBar_end= 1
14:08:39 2004.09.29 01:00 시간+i최저 EURUSD,H1: i=19
14:08:39 2004.09.29 01:00 시간+i최저 EURUSD,H1: time_check_low_day=06:00
14:08:39 2004.09.29 02:00 시간+i최저 EURUSD,H1: NumberLastBar_beg= 26 NumberLastBar_end= 2
14:08:39 2004.09.29 02:00 시간+i최저 EURUSD,H1: i=20
14:08:39 2004.09.29 02:00 시간+i최저 EURUSD,H1: time_check_low_day=06:00
14:08:40 2004.09.29 03:00 시간+i최저 EURUSD,H1: NumberLastBar_beg= 27 NumberLastBar_end= 3
14:08:40 2004.09.29 03:00 시간+i최저 EURUSD,H1: i=21
14:08:40 2004.09.29 03:00 시간+i최저 EURUSD,H1: time_check_low_day=06:00
14:08:41 2004.09.29 04:00 시간+i최저 EURUSD,H1: NumberLastBar_beg= 28 NumberLastBar_end= 4
14:08:41 2004.09.29 04:00 시간+i최저 EURUSD,H1: i=31
14:08:41 2004.09.29 04:00 시간+i최저 EURUSD,H1: time_check_low_day=21:00
코드:
이 라인에주의하십시오
1. 이 줄을 바꾸는 것이 좋습니다.
int i=iLowest( NULL , 0 ,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); // исправлять не стал datetime Time_Check_Low_Day=Time[i];
2. NumberLastBar_beg는 어제 첫 번째 막대의 번호이며 , 검색을 수행해야 하는 막대의 수 대신 이 값을 설정합니다.
3. 코드를 붙여넣을 때 텍스트 입력 창의 툴바에서 SRC 버튼을 찾습니다.
예를 들어 무엇? 왜 나에게는 아무 문제 도 일으키지 않지만 당신에게는 "발생할 수 있습니다".
묵상 중에도. 기존 지표의 코드가 명확하게 보이는 곳(테스터에 대해 별도의 조건을 적용하지 않는 경우) - 퍼뜨리고 싶지 않습니다. 뿐만 아니라 명확성을 위해 별도의 처방을 기준으로 무엇을 처방할지 생각합니다.
그러나 당신이 주장한다면 - 물론, 아마도, 나는 그가 거기에 다른 것을 처방해야 하는 복잡한 "채움"을 대체하는 방법에 대해 생각할 것입니다.iLowest() 도움말을 주의 깊게 읽으십시오. 검색할 요소의 수는 무엇이어야 합니까? 그리고 당신은 무엇을 가지고 있습니다.
이 라인에주의하십시오
1. 이 줄을 바꾸는 것이 좋습니다.
2. NumberLastBar_beg는 어제 첫 번째 막대의 번호이며 , 검색을 수행해야 하는 막대의 수 대신 이 값을 설정합니다.
1. 여기에서 변수 i는 순전히 제어용, 인쇄용 입니다. 그리고 막대를 교체하면서 나는 엉망이 되었습니다. 팁 고마워!