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

 

예, 하지만 코딩해야 합니다.

예시:

현지 시각 브로커 A 브로커 B
00:00
(그리니치 표준시)
01:00
(그리니치 표준시+1)
02:00
(GMT+2)

PERIOD_D1을(를) 사용할 수 없습니다.

  • 중개인 A의 D1 바는 현지 23:00에 시작합니다. (1시간 일찍)
  • B브로커의 D1바는 현지 22시에 시작합니다 (2시간 일찍)

따라서 iBarShift 및 iHighest/iLowest(또는 CopyHigh/CopyLow)와 함께 H1 막대를 사용하여 원하는 대로 "일"을 수동으로 생성해야 합니다.

----

다음은 요점을 설명할 수 있는 빠른 스크립트입니다.

차트에 놓으면 서버 시간 23:00부터 '하루' 주위에 사각형이 그려지는 것을 볼 수 있습니다.

#define strict
#property show_inputs

#define DAY 86400
#define HOUR 3600

extern int time_shift = - 1 ; // Hours to shift server time by

void OnStart ()
  {
   time_shift*=HOUR;

   datetime oldest_bar = Time [ Bars - 1 ],
            midnight   = oldest_bar-(oldest_bar%DAY);

   while (midnight<= TimeCurrent ())
     {
       datetime day_begin = midnight + time_shift,
               day_end   = day_begin + DAY - 1 ;
       double high[],
             low[];
       int high_cnt = CopyHigh ( _Symbol , PERIOD_H1 , day_begin, day_end, high),
          low_cnt  = CopyLow ( _Symbol , PERIOD_H1 , day_begin, day_end, low);
       if (high_cnt> 0 && low_cnt> 0 )
        {
         double day_high = high[ ArrayMaximum (high)],
                day_low  = low [ ArrayMinimum (low)];
         string obj_name = TimeToString (day_begin, TIME_DATE );
         ObjectCreate ( 0 , obj_name, OBJ_RECTANGLE , 0 , day_begin, day_high, day_end, day_low);
        }
      midnight+=DAY;
     }
  }  


 
honest_knave :

예, 하지만 코딩해야 합니다.

나는 이 예를 연구해야 한다.

정말 감사합니다.

 

다시 한 번 귀하의 훌륭한 모범에 감사드립니다.
귀하의 의견 후 나는 쉽게 내 문제를 해결했습니다.

---

다른 브로커에 대해 자동으로 설정된 시간 오프셋을 위해 무언가를 시도했지만 불행히도 작동하지 않았습니다.

Q: 다른 브로커에 대해 자동으로 시간 오프셋을 설정하는 코드를 작성할 수 있습니까?
(나는 여전히 그것을 위해 무언가를 시도한다)

정말 감사합니다.

 

아래 코드를 시도했지만 올바른 값을 제공하지 않습니다.

Q: 아래 코드에서 잘못된 것은 무엇입니까? (나는 알아내지 못했다)

datetime start=( datetime ) SymbolInfoInteger ( Symbol (), SYMBOL_START_TIME );

정말 감사합니다.

 
Max Enrik :

아래 코드를 시도했지만 올바른 값을 제공하지 않습니다.

Q: 아래 코드에서 잘못된 것은 무엇입니까? (나는 알아내지 못했다)

datetime start=( datetime ) SymbolInfoInteger ( Symbol (), SYMBOL_START_TIME );

정말 감사합니다.

모든 브로커가 이것을 올바르게 설정하는 것은 아닌 것 같습니다. 여기를 참조 하십시오
 
honest_knave :
모든 브로커가 이것을 올바르게 설정하는 것은 아닌 것 같습니다. 여기를 참조 하십시오

기회가 없다 !
그냥 전문 프로그래머와 코드를 포기한 생각?! 물론 아닙니다 . : / ( 하지만 나는 )

정말 감사합니다.

(나는 적어도 그것을 시도할 것이라는 생각이 있다 - 나중에)
 
Max Enrik :

기회가 없다 !
그냥 전문 프로그래머와 코드를 포기한 것 같아요?! 물론 아닙니다 . : / (하지만 나는)

정말 감사합니다.

(나는 적어도 그것을 시도할 것이라는 생각이 있다 - 나중에)

항상 해결 방법이 있습니다.

예를 들어, H1 또는 M30 막대를 통해 1 막대의 시간 범위보다 큰 시간 간격을 찾을 수 있습니다(즉, 이 간격 동안 시장이 닫혔습니다).

그러나 주말과 공휴일, 불완전한 역사에주의해야합니다.

 
honest_knave :

항상 해결 방법이 있습니다.
예를 들어, H1 또는 M30 막대를 통해 1 막대의 시간 범위보다 큰 시간 간격을 찾을 수 있습니다(즉, 이 간격 동안 시장이 닫혔습니다).
그러나 주말과 공휴일, 불완전한 역사에주의해야합니다.

귀하의 유용한 의견 에 감사드립니다.
 

지금까지 날짜 시간과 관련된 코드를 작성하려고 할 때 항상 코드의 해당 부분에 많은 시간을 보냈기 때문에 날짜 시간에 대해 배워야 합니다. (심지어 스크립트를 성공적으로 완료했지만 더 명확하게 이해하지 못했습니다)
그래서 이제 오늘의 첫 번째 막대(현재 날짜의 첫 번째 막대 1m, 5m, 15m, 30m, 1h 등) 데이터를 얻으려고 하지만 할 수 없습니다.

(나는 구글 크롬 브라우저에 이것과 관련된 많은 탭을 가지고 있다 - 그냥 넌센스다)

누군가 예를 들어 오늘의 첫 번째 막대(M1, 5M 등)에 대한 코드를 작성하고 설명하는 방법을 도와줄 수 있습니까?

물론 내일 나는 이 문제에 대해 계속 연구할 것입니다.

많은 감사드립니다.

 

오늘의 첫 번째 막대는 TimeHour()가 계산과 함께 시작된 후 첫 번째 막대여야 합니다.

그것은 물론 모든 M1 , M5 , M15 등의 첫 번째 막대가 될 것이며 모두 새 막대를 시작합니다.

사유: