지정된 시간에 지정된 기능을 사용하려면 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()
Application.OnTime TimeValue("09:00:00"), Procedure:=cRunWhat
End Sub
Public Sub TheSub()
Call Sheet1.자동매매
End Sub
지정된 시간 후에 수행
15초 후 my_Procedure 함수를 수행하는 코드는 아래와 같다.
Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"
댓글
댓글 쓰기