셀을 반짝이게 만드는 방법 EXCEL/VBA


매매시그널(위의 그림에선 B컬럼)이 뜨면 셀을 반짝 반짝 거리면서 알려주는 기능을 만들어 달라고 하는데, 사실 촌스러운 건데 의외로 촌스러워도 효과적인 방법이기는 하다. 처음엔 간단히 조건부 서식에 그런 기능이 있을 줄 알았는데, 그런 기능이 아직 없다. 그냥 정적인 서식만 있을 뿐 시골장터 각설이 퍼포먼스 같은 싼 맛나는 건 없다. 이런 걸 VBA로 만들면 되지만 매초마다 프로시저를 실행하면 행여 부하가 걸리지 않나 고민했는데 그런 일은 없는 듯...

일단 대강 정리하자면 해당 시트의 Change이벤트 프로시저를 만들고 시그널이 바뀌는 셀을 모니터링하게 한다. 그리고 일정 값 이상이면 셀서식을 바꿔주는 프로시저와 셀 서식을 지워주는 프로시저를 번갈아 실행하도록 OnTime메소드를 이용하는 것이다.
'//[시트1의 이벤트 프로시저]
Private Sub Worksheet_Change(ByVal Target As Range)
If Application.Intersect(Target, [B1]) Is Nothing Then
Else
If Target.Value >= 80 Then
Me.Range("E1") = "TRADE"
If UCase(Me.Range("A1")) = "BUY" Then
Me.Range("F1") = "LONG"
ElseIf UCase(Me.Range("A1")) = "SELL" Then
Me.Range("F1") = "SHORT"
End If
Call StartBlinking("E1:F1")
Else
Call StopBlinking("E1:F1")
End If
End If

If Application.Intersect(Target, [B2]) Is Nothing Then
Else
If Target.Value >= 80 Then
Me.Range("E2") = "TRADE"
If UCase(Me.Range("A2")) = "BUY" Then
Me.Range("F2") = "LONG"
ElseIf UCase(Me.Range("A2")) = "SELL" Then
Me.Range("F2") = "SHORT"
End If
Call StartBlinking("E2:F2")
Else
Call StopBlinking("E2:F2")
End If
End If
End Sub

'[모듈의 서식변경 프로시저]
Public NextBlink As Double

'Start blinking
Sub StartBlinking(BlinkCell As String)
'Application.Goto Range("A1"), 1
'If the color is red, change the color and text to white
If Sheet1.Range(BlinkCell).Interior.ColorIndex = 3 Then
Sheet1.Range(BlinkCell).Interior.ColorIndex = 0
'If the color is white, change the color and text to red
Else
Sheet1.Range(BlinkCell).Interior.ColorIndex = 3
End If
'Wait one second before changing the color again
NextBlink = Now + TimeSerial(0, 0, 1)
Application.OnTime NextBlink, "'StartBlinking """ & BlinkCell & """" & "'", , True
End Sub

'Stop blkinking
Sub StopBlinking(BlinkCell As String)
'Set color to white
Sheet1.Range(BlinkCell).Interior.ColorIndex = 0
'Clear the value in the cell
Sheet1.Range(BlinkCell).ClearContents
On Error Resume Next
Application.OnTime NextBlink, "'StartBlinking """ & BlinkCell & """" & "'", , False
Err.Clear
End Sub

금융공학 프로그래밍 금융공학

지난 번 금융공학 프로그래밍에 사용한 강의자료를 공유합니다. 이제 이 책도 절판이 되어 아쉽네요.



[공유자료보기]금융공학 프로그래밍

[책 소개] 처음 만나는 금융공학 금융공학

늘 기본이 튼튼해야 한다는 구닥다리 같은 생각을 하고 사는데, 지난 여름 금융공학 강의를 하면서 나의 기본기는 그리 탄탄하지는 않구나 하는 걸 느꼈습니다( 내가 아는 걸 보다 쉽게 전달하고, 소화하지 못할 100개를 주는 것보단 소화할 수 있는 10개를 주는 게 낫다고 생각하고 있죠. ) 

그런 기본기를 보완해주는 빠르고 가장 경제적인 방법은 책입니다. 금융공학을 처음 하시는 분에게는 추천하고 싶은 책이라, 책을 사서 책의 일부 내용을 타이핑하여 보조자료로 주었는데, 좋은 책을 여기 블로글에도 소개하고 싶더군요.

다음은 ‘처음 만나는 금융공학’(이진재, 진경철)이라는 책에서 발췌한 내용입니다.
금융공학에 입문하는 여러분에게 도움이 되었으면 합니다.



금융공학을 위한 기초통계학은 이 정도만 알면 된다.
금융공학을 전공하는 학생들이나 금융공학으로 밥 먹고 사는 사람들은 복잡한 통계학을 반드시
이해하고 활용할 줄 알아야 한다. 하지만 이제 금융공학에 입문해 막 공부를 시작한
사람들이라면 금융공학을 위한 기초통계학만 이해하면 된다. 그리고 그것도 중요한 개념위주로
이해하면 된다. 금융공학을 공부하기 위해 알아두어야 할 기초통계학 개념은 평균, 분산,
표준편차, 베르누이 시행, 이항분포, 정규분포, 브라운운동 등이다...

책에서 발췌한 내용중에 금융공학 입문자에게 가장 핵심적인 글이라고 생각됩니다. 가을에 책 많이 보세요. ㅎㅎㅎ(저는 저자나 출판사와 관련없어요~)



까다로운 PyMC 설치 PYTHON


프로그램 개발은 윈도우 보다 우분투에서 많이 하고 있는데, PyMC 는 우분투에서도 제대로 설치하기가 어려웠다. 3버전은 그나마 검색하면 정확한 설치방법을 알 수 있는데, 문제는 2버전이다. PyMC(https://pymc-devs.github.io/pymc/) 깃허브를 가봐도 "conda install -c https://conda.binstar.org/pymc pymc"와 같이 망가진 URL에서 다운받는 conda명령을 안내하고 있다.

최근에 찾은 설치 방법은 아나콘다에서 다운받는 것이다. 이것 역시 conda명령을 사용하고 있는데,
conda install -c anaconda pymc

이 한 줄이 구세주이다. 그런데 설치에 너무 오래 걸린다.

온오프믹스와 한빛미디어

얼마 전 블록체인과 암호화 화폐(비트코인 같은)에 관심이 있는 형님이 있어 온오프믹스를 통해 '비지니스 블록체인' 세미나에 모시고 갔죠. 사실 그 분야에는 영 관심이 없는 데, 촉이 좋은 양반이라 믿어볼려구 합니다.  

어제 세미나를 통해 나름 새로운 것도 배웠는데, 놀라운 건 참석한 분들의 열의입니다.  여러 다양하고 경쟁적인 질문들을 보니 전문적인 것들이라 사전학습을 많이 하신 듯하더군요.

장소가 한빛미디어 출판사인데, 신사옥이더군군요. 예전에 아담한 건물에서 멋진 건물로 옮겼는데, 출판업도 돈을 많이 벌 수 있구나 하는...






 

1 2 3 4 5 6 7 8 9 10 다음