표시기 기타 질문 - 페이지 8

 
Marco vd Heijden :

오늘의 첫 번째 막대는 TimeHour()가 계산과 함께 시작된 후 첫 번째 막대여야 합니다.
그것은 물론 모든 M1 , M5 , M15 등의 첫 번째 막대가 될 것이며 모두 새 막대를 시작합니다.

나는 곧 그것을 시도하고 또한 나는이 문제에 대해 노력하고 있습니다.

정말 감사합니다.

 

나는 여전히 포럼을 읽고 조사하고 있습니다. 비슷한 포럼을 찾을 수는 있지만 정확히 원하는 것을 찾을 수 없습니다. (아마도 나는 그들의 코드 스타일을 이해하지 못하거나 ... )
빠르게 스크린샷을 만들었습니다. 이해하는 데 도움이 되었으면 합니다.

오늘의 주먹밥

미리 감사드립니다.

 
datetime open;

open= iOpen ( Symbol (), PERIOD_D1 , 0 );

// put in ontick

if ( iOpen ( Symbol (), PERIOD_D1 , 0 )!=open)
{
   if ( TimeHour (open)== 0 )
   {
     Alert ( "New Day !!" );
   }
  open= iOpen ( Symbol (), PERIOD_D1 , 0 ); // assign new value every hour
}

Ive는 약간의 맥주를 마셨기 때문에 당신이 가능한 모든 면에서 그것이 틀렸다고 확신하기를 바랍니다.

나는 open이 시간에 의해 대체되어야 한다고 생각한다.

iTime (

또는 다음을 수행할 수도 있습니다.

if ( TimeHour ( TimeCurrent ())== 0 )
{
   Alert ( "NEw DAy m8" );
}
추신. 다른 스레드는 어떻게 되나요? 거의 40페이지였나?
 
Marco vd Heijden :

Ive는 약간의 맥주를 마셨기 때문에 당신이 가능한 모든 면에서 그것이 틀렸다고 확신하기를 바랍니다.
또는 다음을 수행할 수도 있습니다.

추신. 다른 스레드는 어떻게 되나요? 거의 40페이지였나?
Mr. William - (나는 당신과 당신의 의견을 존중합니다. ) 나는 당신이 이 문장을 쓴 것을 몇 번이나 직면 했습니다. 여기에는 마음의 독자가 없습니다.
이제 내 문제에 대해 더 명확하게 쓸 수 없다면 사람들이 어떻게 나를 명확하게 이해할 수 있습니까?

---

Mr. Marco - 귀하의 의견에 감사드립니다. 나는 이미 그것을 알고 있으며 내 지표에 비슷한 코드를 사용했습니다.

(코드 소스 섹션에서 내 문제를 설명하려고했습니다)

iTime ( Symbol (), PERIOD_D1 , 0 )
// this code gives me Hour 00:00 - but actually D1 time should show Hour 01:00 | this mean my broker shows absolutely wrong Hour for period PERIOD_D1
// But I need to write code to get first H1 bar Time of the day ( e.g: if first H1 bar 00:00 or 01:00 or ... ) instead of PERIOD_D1
// But I really struggle to write code for get today first H1 time

---

추신

내가 하위 주제를 열지 않는 이유를 생각하십니까?
아직 작업 중입니다. 포럼에서 솔루션을 찾을 수 있습니다. 이제 조금씩 조금씩 나아지고 있습니다.

추가로:
내가 Trade Panel EA를 쓰기 시작했을 때 나는 4개의 기능 스크립트를 작성해야 한다고 생각했습니다. Sell, Buy, Close all Order, EXIT ( remove ) EA.
작업하는 동안 EA의 라인이 3,000개가 넘으니... 많은 아이디어를 얻었습니다.
그래도 내가 결정했다면 거의 10개의 유용한 기능을 더 작성해야 합니다.

또한 Trade Panel EA를 마치면 Trade Panel EA의 스크립트를 작성하기 시작한 방법에 대한 약간의 이야기를 쓸 것입니다. (심지어 나는 그것을 끝내지 않았다 - 정말로 나는 그것을 보게 될 대부분의 사람들이 말할 것이라고 믿습니다. 와우 굉장합니다! ) 헤헤 :)

---

감사합니다 . 마르코 씨 .

(내 의견에 답장을 보내주신 모든 분들께) 많은 도움을 주셔서 감사합니다.

 
#property strict
#property show_inputs
#define HOUR 3600
#define DAY 86400
extern int local_offset = 1; // local time offset from broker (hours)

void OnStart()
  {
   local_offset*=HOUR;

   int D1_shift = (TimeCurrent()%DAY > local_offset) ? 0 : 1;

   datetime broker_midnight = iTime(_Symbol,PERIOD_D1,D1_shift);
   datetime local_midnight  = broker_midnight + local_offset;

   int      M5_shift = iBarShift(_Symbol,PERIOD_M5,local_midnight);
   datetime M5_time  = iTime(_Symbol,PERIOD_M5,M5_shift);
   double   M5_open  = iOpen(_Symbol,PERIOD_M5,M5_shift);

   printf("M5_time: %s M5_open: %f", TimeToString(M5_time),M5_open);
  }
 
honest_knave :

당신의 좋은 예를 들어 주셔서 감사합니다.
아마 시간이 된다면 내일 영상/이미지로 설명해 보도록 하겠습니다.

이 문제에 대해 열심히 조사합니다.

(또한 google seo에서 이 키워드와 같이 검색합니다(seo에서는 지금까지 유용한 설명 이 아님): site:mql4.com | site:mql5.com 오늘의 첫 번째 막대 )

 

로컬 > 브로커 시간 오프셋을 자동으로 감지하는 방법을 찾고 있습니까? 예: +1시간

수동 설정을 사용하려는 경우(때로는 현지 시간 을 사용하지 않고 다른 시간대를 모두 사용하고 싶기 때문에 이 방법이 더 좋습니다) 따라야 할 단계는 위의 스크립트와 같습니다.

1. 중개인 시간에 자정을 얻습니다 (iTime을 사용하거나 계산을 통해)

2. 오프셋 설정을 사용하여 현지 자정으로 변환

3. iBarShift를 통해 현지 자정을 입력하여 선택한 시간대에 올바른 막대를 가져옵니다.

 
honest_knave :

로컬 > 브로커 시간 오프셋을 자동으로 감지하는 방법을 찾고 있습니까? 예: +1시간
수동 설정을 사용하려는 경우(때로는 현지 시간을 사용하지 않고 다른 시간대를 모두 사용하고 싶기 때문에 이 방법이 더 좋습니다) 따라야 할 단계는 위의 스크립트와 같습니다.
1. 중개인 시간에 자정을 얻습니다 (iTime을 사용하거나 계산을 통해)
2. 오프셋 설정을 사용하여 현지 자정으로 변환
3. iBarShift를 통해 현지 자정을 입력하여 선택한 시간대에 올바른 막대를 가져옵니다.

당신은 나를 완전히 이해하고 있습니다 - 내가 자동으로... - 그래서, 왜? 수동 방식을 선택하면 중요한 지표가 거의 없습니다(자체 제작 - 다른 포럼이 도움이 됨) - 설정을 변경할 수 있습니다... 그건 먼 길입니다 - 저는 게으릅니다. :)
훨씬 더 감사합니다!
아마도 솔루션을 찾았을 것입니다 (이 시점에서 작동하는 것처럼 보입니다. 이미 2개의 다른 브로커를 시도했는데 정확한 시간을 얻었습니다).

나는 질문이 경험 부족에서 나온다고 생각합니다.

Q: 아래 결과에서 1시간만 유지하려면 어떻게 해야 합니까?
(실제로 나는 아래 결과에서 "1"만 유지할 수 있는 방법을 찾았지만 전문적인 방법이 필요합니다. )
(예: 결과: 2017.02.27 0 1:00:00 - 하지만 다음만 유지해야 함 : 1 )

2017.00 . 00 00 : 00 : 00.000 Custom Indicator EURUSD,M5:  Bar Time : 2017.02 . 27 01 : 00 : 00

모든 것에 감사드립니다.

(해결 방법을 공유하겠습니다. - 도움이 되지 않았다면 해결책을 찾을 수 없습니다. - 한 번 더 감사합니다. )

 

나는 바로 아래 코드를 찾고 있었다.
하지만 아직 테스트해야 합니다.

Period_Look= iTime ( Symbol (), PERIOD_W1 , 0 ); // actually I need PERIOD_D1 - but did not work correctly - I still need to see first Hour of Monday for test.
Period_Shift= iBarShift ( Symbol (), PERIOD_H4 ,Period_Look);
Period_Time= iTime ( Symbol (), PERIOD_H4 ,Period_Shift- 1 );

GMT_Offset=(Period_Time- iTime ( Symbol (), PERIOD_W1 , 0 )- PeriodSeconds ( PERIOD_D1 ))/ PeriodSeconds ( PERIOD_H1 ); // result: 1

위의 코드가 옳지 않다면 알려주십시오.

@honest_knave@Marco 에게 감사드립니다.

 

Max는 이것을 고려하십시오. 패턴을 스캔하고 패턴이 형성되면 타임 스탬프에 관계없이 트리거가 꺼집니다.

따라서 트리거는 다른 브로커에 대해 여러 타임스탬프를 가질 수 있지만 트리거의 정확한 순간은 모든 브로커에서 거의 동일합니다.

정확하지는 않지만 충분히 가깝습니다.

사유: