#define HR0900 14400//All times were changed for the test to see which is the Reference.#define HR1500 10800#define HR1900 7200#define HR2300 3600externstring Heures= "11:41;11:42;12:00;11:42;" ; // Times for my test today...string HeureSH[];
datetime TC = TimeCurrent ();
int times[]={HR1500, HR2300, HR0900, HR1900};
for ( int k= 0 ; k< ArraySize (HeureSH); k++)
{
datetime want= TC - times[k];
}
int iBar= iBarShift( Symbol (), PERIOD_H1 , want);
double OpenPrice= iOpen( Symbol (), PERIOD_H1 , iBar);
#define 중 하나만 고려됩니다. Array HeureSH[]가 올바르게 실행되고, 쓰여진 시간이 도래하면 그것은 사실이고, 맞고, 이것은 단지 시간[k]일 뿐이며 4개의 #define을 모두 고려하지 않습니다.
문자열 조작이 필요하다고 생각합니다. 문자열을 개별 시간으로 나누고, 각각을 날짜/시간으로 변환하고 HeureSH[] 배열에 저장해야 합니다. . . 이런 식으로 현을 다루는 것은 약간 까다로울 수 있으며, 쉽게 망칠 수 있는 것은 아닙니다. 그러면 코드가 약간 이해되기 시작할 수 있습니다. . .
그건 그렇고, 이것들은 당신이 작업하고, 주의 깊게 연구하고, 즐겨야 하는 문자열 함수 입니다.
externstring Heures= "09:00;15:00;19:00;23:00;" ;
string HeureSH[];
int start()
{
//---- int times[]= { 36000 , 21600 , 14400 , 14400 };
for ( int i= 0 ; i< ArraySize (Heures); i++)
{
datetime want = TC - times[i];
}
int iBar= iBarShift( Symbol (), PERIOD_H1 , want);
double OpenPrice= iOpen( Symbol (), PERIOD_H1 , iBar);
if (HeureSH(TimeToStr(iTime( Symbol (), PERIOD_H1 , 0 ),TIME_MINUTES)))
{
if (iOpen( Symbol (), PERIOD_H1 , 0 ) < OpenPrice)
{
OrderSend ( OP_SELL, .......);
}
if (iOpen( Symbol (), PERIOD_H1 , 0 ) > OpenPrice)
{
OrderSend ( OP_BUY, .......);
}
}
//----return ( 0 );
}
//+------------------------------------------------------------------+void UpdateHSeSpeciales()
{
string hour1 = "" ;
int count1 = 0 ;
for ( int k= 0 ; k< StringLen (Heures); k++)
{
if ( StringSubstr (Heures, k, 1 ) != ";" )
{
hour1= hour1+ StringSubstr (Heures, k, 1 );
}
else
{
ArrayResize (HeureSH, ArraySize (HeureSH)+ 1 );
HeureSH[count1] = hour1;
hour1 = "" ;
count1 += 1 ;
}
}
}
bool HeureSH( string now1)
{
for ( int k= 0 ; k< ArraySize (HeureSH); k++)
{
if (now1 == HeureSH[k])
{
return ( true );
}
}
return ( false );
}
예를 들어 09:00일 때 iBar는 TimeCurrent보다 10시간 적은 어제 23:00의 막대입니다. 15시가 되면 iBar는 오늘 09:00의 바, ....... 내가 원하는 것: 선택한 시간이 오면 Now(TimeCurrent) 이전의 참조 바를 가집니다. 내 문제는 프로그램이 "times[]"의 마지막 항목만 사용한다는 것입니다. HeureSH[0]이면 시간[0]을 사용하고 계속하고 싶습니다. 어떡해?
당신은 누군가가 당신을 쉽게 도울 수 있도록 만들지 않고 여기 저기에 코드의 일부를 게시합니다. . . 나는 당신의 코드를 이해하려고 노력하고 있습니다. 나는 전체 코드가 없기 때문에 그것이 무엇을 하는지 보기 위해 실행할 수 없습니다. 당신은 당신의 배열과 같은 이름의 함수 를 가지고 있습니다. 그것은 괜찮지만 도움이 되지 않습니다 가독성.
좋아, 내가 너에게 줄게:
#define 중 하나만 고려됩니다. Array HeureSH[]가 올바르게 실행되고, 쓰여진 시간이 도래하면 그것은 사실이고, 맞고, 이것은 단지 시간[k]일 뿐이며 4개의 #define을 모두 고려하지 않습니다.좋아, 내가 너에게 줄게:
#define 중 하나만 고려됩니다. Array HeureSH[]가 올바르게 실행되고, 쓰여진 시간이 도래하면 그것은 사실이고, 맞고, 이것은 단지 시간[k]일 뿐이며 4개의 #define을 모두 고려하지 않습니다.문제는 매우 분명합니다. . .
string HeureSH[];
그래서 이 배열은 당신이 그렇게 선언했기 때문에 0의 크기를 가집니다. . . 그래서 이 루프 . . .
0에서 시작하여 k >= 0일 때 끝남(0은 배열 크기임)
좋아, 나는 그 이유를 다음과 같이 생각했다.
좋아, 나는 그 이유를 다음과 같이 생각했다.
그건 그렇고, 이것들은 당신이 작업하고, 주의 깊게 연구하고, 즐겨야 하는 문자열 함수 입니다.
안녕
나는 그것에 대해 일하지만 나는 이것을 이해하지 못한다.
문제는 매우 분명합니다. . .
그래서 이 배열은 당신이 그렇게 선언했기 때문에 0의 크기를 가집니다. . . 그래서 이 루프 . . .
0에서 시작하여 k >= 0일 때 끝남(0은 배열 크기임)
좀 더 자세히 말씀해 주시겠습니까?
HeureSH[]의 경우 라인을 사용하여 4개의 다른 시간을 갖도록 4개의 스트링 부분으로 절단했습니다.
다시 편집:
인쇄 함수 에 ArraySize(HeureSH)를 작성했는데 다음과 같이 표시됩니다. 4
2013.01.19 13:57:21 2012.11.19 19:00 테스터 EURUSD,H1: 오픈:1.27701 ArraySise=4
나는 다시 테스트했고 이것의 마지막 만 선택합니다.
그래서 마지막 "14400". 배열 "HeureSH[]"와 같은 순서로 다른 것을 선택하지 않는 이유는 무엇입니까?
"For" 주기에 문제가 있습니까?안녕
나는 그것에 대해 일하지만 나는 이것을 이해하지 못한다:
좀 더 자세히 말씀해 주시겠습니까?
HeureSH[]의 경우 라인을 사용하여 4개의 다른 시간을 갖도록 4개의 스트링 부분으로 절단했습니다.
다시 편집:
인쇄 함수에 ArraySize(HeureSH)를 작성했는데 다음과 같이 표시됩니다. 4
2013.01.19 13:57:21 2012.11.19 19:00 테스터 EURUSD,H1: 오픈:1.27701 ArraySise=4
알았어 알았어 미안해
예를 들어 09:00일 때 iBar는 TimeCurrent보다 10시간 적은 어제 23:00의 막대입니다. 15시가 되면 iBar는 오늘 09:00의 바, ....... 내가 원하는 것: 선택한 시간이 오면 Now(TimeCurrent) 이전의 참조 바를 가집니다. 내 문제는 프로그램이 "times[]"의 마지막 항목만 사용한다는 것입니다. HeureSH[0]이면 시간[0]을 사용하고 계속하고 싶습니다. 어떡해?
추신: 그것이 내가 가지고 있고 필요한 전부입니다.
안녕,
오 아무도 나를 도울 수 있습니까?
안녕,
오 아무도 나를 도울 수 있습니까?
당신은 누군가가 당신을 쉽게 도울 수 있도록 만들지 않고 여기 저기에 코드의 일부를 게시합니다. . . 나는 당신의 코드를 이해하려고 노력하고 있습니다. 나는 전체 코드가 없기 때문에 그것이 무엇을 하는지 보기 위해 실행할 수 없습니다. 당신은 당신의 배열과 같은 이름의 함수 를 가지고 있습니다. 그것은 괜찮지만 도움이 되지 않습니다 가독성.
UpdateHSeSpeciales()는 언제 호출됩니까?
정말 죄송합니다.
나는 그것만 가지고 있지만 "UpdateHSeSpeciales"를 잊어 버린 것이 사실입니다.
프로그램이 시작될 때 "초기화"에서 호출됩니다.