두 번째 문제.
기능은 다음과 같습니다.
void MonitorTick() { string s; datetime dt= TimeCurrent (); int y1=TimeYear(dt); int m1=TimeMonth(dt); int d1=TimeDay(dt); string fn=y1+ "_" +m1+ "_" +d1+ "_Monitor_Tick_" + Symbol ()+ ".mon" ; { handleM= FileOpen (fn, FILE_BIN | FILE_WRITE | FILE_READ ); if (handleM< 0 ) { handleM= FileOpen (fn, FILE_BIN | FILE_WRITE ); } else { s= "Time;;Shift " + Symbol ()+ "\n" ; FileWriteString (handleM,s, StringLen (s)); } } s=TimeToStr( TimeCurrent (),TIME_DATE|TIME_MINUTES|TIME_SECONDS)+ ";;" ; s=s+DoubleToStr((Bid-iOpen( NULL , PERIOD_D1 , 0 ))/ Point , 0 )+ "\n" ; { FileSeek (handleM, 0 , SEEK_END ); FileWriteString (handleM,s, StringLen (s)); FileClose (handleM); } }
즉, 각 틱에서 현재 가격과 당일 시가 의 차이를 파일에 기록합니다.
어느 시점에서 파일에 가비지를 쓰기 시작합니다. 아래 내용:
2011.05 . 12 15 : 40 : 50 ;; 2 2011.05 . 12 15 : 40 : 50 ;; 1 2011.05 . 12 15 : 40 : 51 ;; 0 2011.05 . 12 15 : 40 : 51 ;; 1 2011.05 . 12 15 : 40 : 52 ;; 2 2011.05 . 12 15 : 40 : 53 ;; 2 2011.05 . 12 15 : 40 : 55 ;; 3 2011.05 . 12 15 : 53 : 54 ;; 15692 2011.05 . 12 15 : 53 : 54 ;; 15688 2011.05 . 12 15 : 54 : 05 ;; 15692 2011.05 . 12 15 : 54 : 28 ;; 15696 2011.05 . 12 15 : 54 : 42 ;; 15694 2011.05 . 12 15 : 54 : 56 ;; 15698 2011.05 . 12 15 : 55 : 40 ;; 15697 2011.05 . 12 15 : 56 : 40 ;; 15698 2011.05 . 12 15 : 56 : 47 ;; 15696 2011.05 . 12 15 : 57 : 17 ;; 15696 2011.05 . 12 15 : 57 : 34 ;; 15699
어떻게 설명할까요????
이 기능이 있는 EA는 세 줄의 코드만 수행합니다. 10개의 악기 위에 서서 주기적으로 5-7개의 악기가 이것을 제공합니다. 터미널을 다시 시작하는 것만으로도 도움이 됩니다. 그건 그렇고, 지표 (다중 통화)도 넌센스를 보이기 시작합니다.
즉, 이 데이터가 화면에 표시된다는 사실만으로는 충분하지 않습니까?
내 화면에는 몇 달 간의 기록이 있습니다. 또한 1초 전의 틱은 히스토리가 '갑작스럽게' 사라졌을 때와 재부팅 직후에 단말기가 켜지고 틱과 같은 초에 '갑작스럽게' 나타나는 경우가 현재 틱과 어떻게 다른지 설명 부탁드립니다. 오류 없이 추가로 작성됩니다.
다중 통화에서는 동일합니다. 넌센스는 모든 쌍에 대한 히스토리가 있을 때 제로 바에도 표시됩니다. 100% 히스토리를 갖기 위해 다른 창에서 특별히 열립니다.
이상한 상황. 자연스럽게 오늘을 보여주는 그래프가 열립니다. 1초 전 시가가 있었다가 사라졌다?
저는 터미널 개발자가 아니며 프로그래밍 방식으로 액세스 가능한 기록이 있는 열린 창의 막대 연결에 대해서만 추측할 수 있습니다.
나는 모호성을 피하기 위해 올바르게 프로그래밍하는 방법을 썼습니다.
GBPCAD 쌍의 경우 15000포인트는 RefreachRates() 명령으로 견적을 업데이트하지 않았거나 MarketInfo(Symbol(),MODE_BID)를 사용하지 않았기 때문에 Bid price = 0을 의미합니다.
아니요. 이 경우 결과 값이 음수가 되기 때문입니다(계산 공식 참조).
문제는 BID가 있었지만 이력이 없었다는 점이다. 그리고 이 이야기가 두 번째 이야기라는 사실에도 불구하고 프로그램 코드에 액세스할 수 없는 이유를 찾습니다.
- 그리고 나에게는 오늘(13-05-2011) 업데이트가 없었습니다. 내 DC가 새 빌드를 무시합니까?
어쨌든 업데이트 경고도 없었고 정상적인 재부팅도 없었습니다.
- 그리고 나에게는 오늘(13-05-2011) 업데이트가 없었습니다. 내 DC가 새 빌드를 무시하고 있습니까?
어쨌든 업데이트 경고도 없었고 정상적인 재부팅도 없었습니다.
MetaTrader 4 클라이언트 터미널 빌드 402
- 터미널: 히스토리 센터(F2 키)에 히스토리를 업로드할 때 시간대 수정이 수정되었습니다.
- 터미널: 5개의 문자가 있는 기호에 대해 1-1 스케일의 차트 표시를 수정했습니다.
- 포럼 게시물 및 crashlogs를 기반으로 수정합니다.
LiveUpdate 시스템을 통해 자동 업데이트 를 사용할 수 있습니다.