[인공지능 주식매매] 3단계 S/W 동작 모니터링

[기능 안전 필수 요소 선택]
지난 글에서 제안했듯이 주식 자동 매매프로그램의 안정적인 운용을 위해서는 안전성이 확보된 s/w를 안정적인 환경에서 실행할 필요가 있다.
https://ai-trader.tistory.com/35
그리고 안정적인 s/w운용을 위해 필수적인 요소는 한 가지 더 있다. 바로 모니터링 기능이다. 모니터링 기능이란 모니터링 대상 s/w의 정상 동작 여부를 계속해서 감시하고 이상이 발견됐을 때 적절한 조치를 취해주는 기능을 말한다. 매우 높은 수준의 기능 안전을 요구하는 분야는 차량용 제어기 s/w 분야이며, 해당 분야의 기능 안전관련 일부 개념을 도입하고자 한다.
차량 분야에서의 기능 안전을 위한 기능안전 국제표준은 ISO26262이며 해당 표준의 인증을 위해서는 s/w의 설계 단계에서부터 생산 단계에 이르기까지 모든 활동이 검증되고 기록되어야 하며 s/w 기능적인 면에서도 안전 문제와 관련된 모듈에 대해서는 모든 문제 발생 가능 취약점에 대한 분석과 문제 발생시 회피 또는 감시 및 조치 가능 로직의 존재 여부에 관한 검사(inspection)이 있어야 한다. 그리고 모듈 별 기능 안전 등급을 지정하여 각 등급별 관리 정도를 구분하게 되는데 기능 안전과 관련된 모듈들의 경우 매우 상세하고 집중적인 관리를 요하게 된다. 기능 안전 모듈의 경우 예를 들어 액셀 또는 브레이크와 같이 직접적으로 안전과 관련된 모듈과 해당 모둘의 동작에 영향을 미치는 모든 모듈들로 정해지게 된다. 해당 기능 안전 모듈들은 기본적으로 pfc(program flow control), wdg(watch-dog), instruction check, torque monitoring, memory test, sop(shut off path) 테스트 및 test pulse 등의 기능으로 안전성을 보장해주어야 한다.
- pfc: s/w 의 실행 순서 확인
- wdg: s/w 실행 여부 주기적 확인
-instruction check: 동일한 instruction을 두 번 실행시키고 그 결과 비교를 통한 마이컴 정상 동작 여부 확인
-memory test: 주기적으로 램 영역에 임의 값을 강제 write 및 read시 정상 적으로 읽혀지는지 확인 (ram 영역 정상 동작 확인 이후 s/w실행에 사용하던 값으로 다시 복원) + Rom 영역에 대한 check sum 확인
-torque monitoring: 토크 제어 관련 출력을 내보내면서 해당 출력으로 발행하게 될 토크를 s/w적으로 시뮬레이션 해보아서 실재 토크 값과 예상 토크 값을 비교하여 정상 출력 여부 확인
-sop 및 test pulse: 문제 발생시 출력 라인을 강제로 끊는 h/w의 정상 동작 여부 확인 테스트로서 임의로 문제를 일으키고 해당 문제 발생에 대한 대처로서 실제 h/w 차단이 되는지 여부 확인
그 외 추가적인 기능 안전을 위한 각종 장치들과 s/w 로직들이 차량의 안전을 지키기 위해 빼곡히 도입되어 있다. 이에 반해 주식 자동매매 프로그램의 경우 차량용 s/w 정도의 기능 안전성을 요하지는 않기에 굳이 위 기능들을 도입할 필요는 없다. 하지만 그렇다고 안정적인 s/w 동작을 위한 기능이 전무하다면 안정적인 주식 투자 활동이 힘들 수 밖에 없다. 이에 3단계 wdg 기능을 주식 자동매매 프로그램에서의 필수 모니터링 요소를 뽑아 해당 기능에 대해서만 기능 구현해서 적용시키고 있다.
[3단계 모니터링; WDG]
차량용 제어기의 경우 s/w의 정상 동작 여부를 확인하는 WDG 기능을 크게 2가지로 구성한다. 첫 번째로는 마이컴 내부의 s/w 동작 감시 모듈인 내부 wdg 모듈을 사용해서 s/w에서 일정 시간 내 해당 모듈의 특정 레지스터를 셋 하지 않으면 내부적으로 h/w reset을 발생시키도록 한다. 두 번째로는 마이컴 외부에 모니터링용 반도체와의 통신을 통한 s/w 동작을 감시하게 된다. 해당 감시 기능에서는 s/w의 정상 기능 여부 및 정상 주기 여부가 확인 가능하도록 하고 있다.
차량용 WDG 기능을 간소화 하고 주식 자동매매 프로그램에 적합한 형태로 변형 적용하여 3단계 모니터링으로 기능 구현 하였다.
- 1단계: S/W 내부 모니터링
s/w 내부에서 thread 등이 잘 실행되고 있는지... s/w가 순차적으로 잘 실행되고 있는지... s/w 내 실행 값들이 정상적인 범위 내 있는지 여부 등을 s/w 곳곳에서 확인하고 문제가 있는 경우 알람을 하도록 한다.
- 2단계: PC 내부 모니터링
s/w 자체가 멈춘 상태라면 문제 상황 여부를 바로 바로 알아챌 수 없게 된다. 그렇기 때문에 메인 프로그램 외 메인 프로그램 정상 동작 여부를 계속해서 확인하는 또 다른 프로그램이 존재해야 한다.
-3단계: 외부 네트워크 모니터링
네트워크를 통한 주식 정보 획득 및 매매를 진행하는 주식 자동매매 프로그램의 경우 해당 프로그램이 실행되고 있는 환경의 네트워크 정상 동작 여부 확인이 중요하다. 주식 자동매매 프로그램에서 외부 네트워크를 사용하는 웹 서버에 주기적으로 s/w 동작 사항을 업데이트 하도록 한다. 그리고 일정 기간 이상 업데이트 되지 않거나 전달 받은 정보 내 오류 정보 확인 시 문제 발생에 관한 로그를 관리자에게 발송하여 즉시 문제 상황 대처 가능하도록 한다.
'인공지능 매매 > 인공지능 매매 전략' 카테고리의 다른 글
[서적] 인공지능 투자가 퀀트 (0) | 2020.12.07 |
---|---|
[인공지능 주식매매] 인공지능 자동매매를 위한 3대 요소 (승률,수익률,투자비율) (0) | 2020.12.05 |
[인공지능 주식매매] 용도별 증권사 API 추천 (2) | 2020.11.28 |
[인공지능 주식매매] 매매 주기에 대한 고찰: 하루 단위 3구간 매매 (0) | 2020.11.26 |
[인공지능 주식매매] 프로그램 구성 및 운용 방안 (0) | 2020.11.23 |