블로그 이사 합니다.

 안녕하세요, 공돌투자자 입니다. 애드센스를 통과했음에도 흥행에 참패하여 다시 네이버로 돌아갑니다 ㅜㅜ 네이버로 관련 콘텐츠들을 조금씩 이동하고 네이버 내에서 기존 주식 투자 관련 컨텐츠와 함께 운영하도록 할게요. 혹시나 구독하신 분들, 찾아주신 분들께 죄송한 마음입니다. https://blog.naver.com/gdtooza '공돌투자자, 부의 사다리'  이곳으로 찾아와주세요. 실제적인 경제교육 + 투자 블로그로 운영하도록 하겠습니다. 감사합니다.

엑셀 VBA 기본문법 : Timer

지정된 시간에 지정된 기능을 사용하려면 Timer를 사용합니다. 

자동매매 프로그래밍에 있어 Timer의 사용은 매우 빈번하다. 주식 시장이 시간 base로 움직이기 때문이다.

  • 8:30~8:40 : 장전 시간외
  • 8:40~9:00 : 장전 동시호가
  • 9:00~15:20 : 본장
  • 15:20~15:30 : 장마감 동시호가
  • 15:30~16:00 : 장후시간외
  • 16:00~18:00 : 시간외 단일가(10분마다 체결)

예를 들어 내가 만든 프로그램을 '9시에 시작' 하려면 Timer를 활용해야한다. 필자는 9시에 시작하거나 동시호가(15시 20분 이후)에 시작하는 코드등을 만들 때 주로 사용한다.

일반적으로 timer는 모듈 내에 만든다. 그 이유는 모듈 내 만든 코드는 모든 sheet에서 사용할 수 있기 때문이다.

엑셀 모듈 삽입 방법

모듈을 만들고 그 안에 timer 관련 코드를 만들면 어떤 sheet에서도 접근이 가능하다.

지정된 시간에 수행

9시가 되면 Sheet1 의 자동매매 함수를 수행하는 예제를 살펴보자

Public Const cRunWhat = "TheSub"    '선언

Public Sub StartTimer()             'Timer 시작 함수
' 9시에 cRunWhat(TheSub) 함수를 수행 
    Application.OnTime TimeValue("09:00:00"), Procedure:=cRunWhat '수능   
End Sub

Public Sub TheSub()
'Sheet1의 자동매매 함수를 호출
    Call Sheet1.자동매매
End Sub

지정된 시간 후에 수행

15초 후 my_Procedure 함수를 수행하는 코드는 아래와 같다.

Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"

댓글

이 블로그의 인기 게시물

희대의 작전주 새롬기술(feat. 재벌집 막내아들 뉴데이터테크놀로지)

홈택스 미성년자 증여 신고 방법

자동매매 환경 setting (엑셀 vba 사용 기준) : 증권사, 개발 언어의 선택