커뮤니티
내가 만든 전략들과 지식을 공유하고 토론합니다.

IQ Live 서비스 이용가이드 (개정판)

IntelliQuant 2018.11.28 09:57 조회수  5803
(2020.6.8, 2020.10.7, 2021.11.29 개정)

인텔리퀀트 실전투자 서비스(IQ Live)는  기존에 사용자가 매번 스크립트를 직접 실행해서 포트폴리오 변경내역을 확인하고 매매할 종목을 정리해야 했던 번거로움을 해소해 드리고자, 인텔리퀀트에서 서버를 별도로 할당하여 자동으로 실행해 드리는 서비스입니다.

사용자들이 기존에 작성하여 활용 중이신 전략 스크립트를 최소한의 변경 또는 추가만으로 자동 실행이 가능하도록 실전투자 서비스를 준비했습니다.

여기서, 자동 실행이란 알고리즘 스크립트를 자동으로 실행하는 것까지를 의미하고, 자동주문 기능은 나무증권과 연동을 통해 제공하고 있습니다.


본 이용가이드는 백테스팅용으로 작성된 스크립트를 실전투자용으로 바로 사용하기 위해 필요한 내용들을 안내하기 위함입니다.


IQ Live 자동주문 설정 매뉴얼로 바로 가시려면 -->  이곳을 클릭하세요!




*** 주의사항 (중요) ***

맨 끝 부분에 자세히 정리했지만, 많은 분들이 주의 깊게 안 보시는 것 같아서 앞 부분에 다시 강조해서 정리해 놓았습니다. 자세한 내용은 맨 아래 부분을 참고해 주세요.

반드시! 꼭! 숙지하고 따라 주셔야 정상적으로 동작할 수 있으니 확인하시고 그대로 따라 주시기 바랍니다.

  • 복수계좌 (Account) 사용 관련  
    --> onComplete() 함수에서 Live 포트폴리오로 지정하는 바스켓들이 동일 계좌에 속하는 경우 알고리즘에 복수계좌 사용 가능하도록 변경됨 (2021. 11. 29)
  • IQEnvironment.simulationMethod = SimulationMethod.day;  (블록 알고리즘에서는 거래가격 가정 : "당일 종가")   
    --> 사용 금지 (포트폴리오 생성이 제대로 되지 않습니다.)




1. 실전투자용 알고리즘 등록 및 실행


  - 실전투자용 알고리즘 개요

  • 실전투자에 등록한 알고리즘이 실제로 실행되는 시간은 매 거래일 장마감 후 오후 6시경입니다. 이 시점을 경계로 스크립트 등록 또는 수정사항 변경 등의 적용 날짜가 달라집니다.
  • 알고리즘 스크립트의 실행을 위한 투자 시작일과 투자금액 설정
    : 실전투자용 스크립트를 실행할 때 사용자의 실제 계좌 잔고나 투자금액의 변화를 정확히 반영할 수 없기 때문에항상 투자 시작일로부터 실행 당일까지의 기간에 대해 초기투자금액으로 스크립트를 실행시키는 방식을 택하였습니다. 이는 마치 백테스팅 할 때 시작일과 종료일을 지정하고 초기투자금액을 입력 받아서 실행을 하는 것과 같은 방식입니다. 따라서, 실전투자 도중 투자금액을 변경하거나 알고리즘을 수정하는 경우, 변경된 내용을 적용하는 첫 날을 새로운 시작일로 하고, 당시의 평가금액을 새로운 초기투자금액으로 대체하여 스크립트를 실행합니다.
  • 복수의 Basket 객체를 정의하여도 모든 Basket객체를 실제 투자에 사용하지는 않는 경우가 있기 때문에, 실제로 매매 목록으로 산출되어야 하는 포트폴리오를 어떤 Basket들로부터 구성할 것인지 사용자가 직접 명시해 주도록 했습니다.


- onComplete()에 포함시킬 스크립트 샘플

onComplete()는 스크립트를 모두 실행시키고 난 후 종료하기 직전에 호출되는 함수입니다백테스팅 시에는 사용자가 정의한 성과분석, 통계값 등을 로그 화면에 표출하는 식으로 활용될 수 있는데실전투자에서는 이 함수를 통해 어느 포트폴리오(Basket)를 매매 목록으로 저장시킬 것인지 아래와 같은 방법으로 지정하여야 합니다.


...
function onComplete() {
                ...
    IQLive.addPortfolio(basket1basket1_weight);
    IQLive.addPortfolio(basket2basket2_weight);
    IQLive.addPortfolio(basket3basket3_weight);
                ...
}
...

(붉은색으로 된 변수를 사용자 전략에 맞게 수정)


위의 예제는 하나의 계좌에 연결된 3개의 Basket 객체(basket1, basket2, basket3)를 실전투자에 적용할 포트폴리오들로 명시하고 있습니다.

이 때 해당 계좌의 투자금액 중에 각 Basket들이 할당 받은 예산(budget)의 비중(weight) 정보인 basket1_weight, basket2_weight, basket3_weight를 함께 명시해 주어야 전체 계좌 투자금액 중 개별 종목의 투자 비중을 제대로 산출할 수 있습니다. 

주의할 점은 각 Basket들의 비중을 합해서 1보다 크지 않도록 해야 한다는 것입니다. 합산 비중이 1보다 크면, 실제 매매 시 본인이 의도한 것보다 더 많은 수량을 보유하도록 매매 내역이 산출되어 매매 도중 현금이 부족할 수 있습니다.

--> 종목별 비중 계산 방식을 개선하여 반드시 정확하지 않아도 가능하게 되었습니다.



  - IQ Live 등록 전 사전검증 절차

위에서 설명한 대로 실전투자를 위한 필요한 코드들이 제대로 추가가 되었는지를 포함하여, 실전투자를 위해 자동으로 매일 알고리즘을 실행하는 것이 문제가 없는지 확인하기 위한 사전검증 절차를 도입했습니다.

  • '내 알고리즘' 메뉴의 알고리즘 중 하나를 실전투자에 등록하기 위해서는 해당 알고리즘의 '검증요청' 버튼을 눌러 검증과정을 시작해야 합니다.

          


  • '검증요청' 버튼을 누르면 '검증 중'이라는 표시가 나오며, 이 때 서버 측에서 해당 알고리즘이 실전투자에서 문제 없이 실행될 수 있는지 검증하기 위한 간단한 테스트를 수행합니다.
  • 잠시 후 페이지를 새로고침 해 보시면, '등록' 또는 '검증실패'라는 표시가 나오며, '검증실패' 인 경우에는 표시 부분을 클릭하면 오류가 난 원인을 확인할 수 있습니다. '검증실패' 표시가 나온 경우, 다시 알고리즘을 편집하여 오류를 수정하고 나오면 '검증요청' 버튼이 보입니다.

           


  • '등록' 버튼을 누르면 IQ Live에 해당 알고리즘의 실전투자용 실행 버전이 등록되며, '내 알고리즘'의 알고리즘 목록에는 아래와 같이 IQ Live에 등록된 알고리즘임을 표시합니다.

          



  - 등록 시 설정 화면




내 알고리즘’ 메뉴의 전략 알고리즘 목록 중 실전투자에 사용하려는 알고리즘의 등록’ 버튼을 누르면, 실전투자 목록에 알고리즘 등록이 먼저 되고위와 같은 설정 화면이 바로 나타납니다.

초기투자금액실전투자에 투입한 본인의 투자금액 입력

투자시작일: 알고리즘이 최초 실행되는 날짜로서 기본값으로 당일 날짜가 설정되어 있습니다.. 만일 등록 시점이 이미 오후 6시가 지났다면, 투자시작일은 당일이 아니라 익일(다음날)로 나타납니다.

투자변경일: 알고리즘의 '투자시작일'을 당일 이후의 날짜 중에서 선택하여 변경할 수 있습니다. 알고리즘이 실제로 실행 시작되기 전까지는 직접 설정창을 열어 재변경이 가능합니다.



  




 

- 실행 시작 및 중지

고리즘을 등록하고 초기 설정을 마쳤더라도, IQ Live 메뉴의 알고리즘 목록에서 실행 버튼을 눌러야 실제로 알고리즘이 실행됩니다또한알고리즘을 언제든지 중지시켰다가 다시 실행시킬 수 있습니다

    


- 실전투자 알고리즘 등록 해제

실전투자를 위해 IQ Live에 등록한 알고리즘을 더 이상 사용하지 않으려면, ‘등록해제’를 눌러서 IQ Live 목록에서 제거할 수 있습니다. 여기서 알고리즘을 제거하더라도, 내 알고리즘에 있는 스크립트 원본은 영향을 받지 않습니다.

 



 2. 알고리즘 변경스크립트 업데이트 및 투자금액 변경(증액/감액)


- 알고리즘 변경 시 주의사항

실전투자에 등록한 알고리즘 스크립트는 내 알고리즘’ 목록에 있는 해당 스크립트의 복사본입니다따라서등록 이후에 실전투자용 알고리즘을 수정하고 싶은 경우에도 내 알고리즘에 있는 해당 스크립트를 먼저 수정하고 '재검증' 버튼을 눌러 검증과정을 다시 거친 후, 업데이트를 해 주어야 실전투자 실행용 스크립트에도 반영이 됩니다.

알고리즘이 업데이트되거나 투자금액을 변경하는 경우마치 새로운 스크립트로 새로운 투자시작일('투자변경일')에 변경된 투자금액으로 투자하는 것과 마찬가지이므로해당 설정 값을 변경시켜 주어야 합니다.

알고리즘 변경 시 특히 주의할 점은만일 본인의 알고리즘 로직에서 투자시작일에 새 포트폴리오를 구성하도록 되어 있으면, 새로 설정한 투자변경일이 정기 리밸런싱 시점이 아니더라도 포트폴리오가 새로 산출될 수 있다는 점입니다.

 

- 설정 변경 화면

 




알고리즘을 업데이트하거나, 실전투자 메뉴에서 알고리즘의 설정 아이콘을 누르면 위와 같이 설정을 변경할 수 있는 화면이 나타납니다.

현재평가금액: 스크립트를 투자시작일부터 실행시켜온 결과로써 전일 또는 당일의 계좌 평가금액을 보여줍니다. 실전투자에 이용중인 실제 계좌의 총평가금액에 대한 추정치로 이해하면 되겠습니다.

투자금액변경: 투자금액을 변경하는 경우에 수정, 입력해 줍니다. 스크립트 소스코드 업데이트의 경우에도 현재의 평가금액을 새로운 투자금액으로 설정해 주어야 합니다. 실제 계좌의 총평가금액과 차이가 많이 나는 경우에는 실제 계좌의 총평가금액으로 설정해 주는 것을 권장합니다.

투자변경일: 알고리즘을 업데이트하거나 투자금액을 변경하는 시점에 따라 당일 또는 익일부터 변경되어 실행하도록 투자변경일이 강제 설정됩니다. 결과적으로, 변경된 투자금액이 새로운 투자원금으로, 투자변경일은 새로운 실행 시작일로 하여 스크립트가 실행됩니다.



 3. 알림 받기

       
      알림은 텔레그램과 이메일로 받으실 수 있습니다. 기본 설정은 두 채널 모두 알림이 꺼져있습니다.  

    이메일은 따로 설정할 필요없이 회원가입한 이메일로 알림이 전송됩니다.

    
    가적으로 텔레그램을 설정하고 싶으시다면 아래의 방법대로 진행하시면 됩니다.


- 텔레그램 설정 방법

(1) 텔레그램 앱을 실행하고 대화방에서 사용자명으로 @iqlivebot 검색

    


(2) 검색된 @iqlivebot의 시작 버튼 클릭 (또는 /start 전송)

    



(3) 인텔리퀀트 홈페이지 내 프로필>사용자 정보 에서 본인의 UID를  확인하여 입력

(4) 등록한 수신 이메일 주소가 맞는지 확인하고 본인의 추천인 코드 입력

(5) 추천인 코드가 맞으면텔레그램 설정 완료!


    


- 알림 서비스 내용

  • 매일 오후 8시 이후, 실전투자 알고리즘 실행 결과에 따른 포트폴리오 내역 메시지 발송
  • 사용자 별로 실전투자 실행 중인 모든 알고리즘에 대해 각각 포트폴리오 정보와 매매할 내역 제공
  • 초기투자금액과 당일 현재 평가금액 (추정치) 제공 -> 실제 증권계좌의 평가금액과 비교하면서 포트폴리오 관리할 수 있음
  • 리밸런싱이 발생하지 않아도 알고리즘대로 포트폴리오를 잘 관리할 수 있도록 목표 포트폴리오 내역은 매일 반복 발송


    - 알림 상태 확인 


 
   알림 상태는 알림채널에 표시된 아이콘 배경색으로 확인할 수 있습니다. (하늘색 : 켜져있음 / 회색 : 꺼져있음)
        
      텔레그램 알림을 의미하며 배경색이 회색인 경우는 알림이 꺼져있는 상태입니다.
      이메일 알림을 의미하며 배경색이 하늘색인 경우는 알림이 켜져있는 상태입니다.  

  

4. 실전투자용 스크립트에서 주의해야 할 점


   전략 알고리즘을 분석용으로 작성하여 백테스팅 할 때와 달리실전투자에 적용할 때 주의할 점을 정리해 보겠습니다.

  • 블록 알고리즘은 현재로서는 실전투자에 활용할 수 없습니다. (X) => 새로운 블록 개발환경이 적용되면서 실전투자에 바로 적용 가능해 졌습니다!
  • 알고리즘 스크립트에서 복수의 계좌(Account)를 사용하고 있는 경우에는 실전 매매에 이용하기에 곤란한 상황이 발생할 수 있습니다. 따라서, 분석 및 비교 테스트용으로 복수 계좌를 사용하여 검증을 마치셨다면, 실전용으로는 한 개의 계좌만을 사용한 전략으로 수정하신 후 적용하는 것을 권장합니다. 
  • 백테스트 실행시 매매 시뮬레이션을 위한 매매가격 가정에 대한 설정 옵션인 IQEnvironment.simulationMethod = SimulationMethod.day (블록 알고리즘에서는 거래가격 가정 : 당일 종가) 를 사용하시면 안 됩니다. 해당 옵션은 당일에 포트폴리오를 추출하고 바로 그 당일 종가에 매매까지 완료한 것으로 가정하고 시뮬레이션을 하는데, 이를 IQ Live에 그대로 적용하면 포트폴리오를 새로 추출한 뒤 매매할 내역이 발생했는지 확인하는 과정에서 이미 보유한 포트폴리오와 목표 포트폴리오가 같아져 버려서 리밸런싱 내역이 발생했다는 것을 인식하지 못하게 됩니다. 
  • 알고리즘을 실행하는 시간은 매 거래일 장마감 후 오후 6시경입니다. 만일 알고리즘을 새로 등록하거나, 소스코드 업데이트, 투자금액 변경 등을 당일 실행 때부터 적용하고자 한다면, 반드시 오후 6시 이전에 등록/수정을 완료해 주어야 합니다.


IQ Live 전략 등록을 마치셨나요? 그럼 이제 자동주문 설정에 대해서 알아볼까요?클릭! )


* 이용하시면서 궁금하시거나 이해되지 않는 부분 있으시면 자유게시판 또는 채팅 상담톡을 통해 질문해 주시면 감사하겠습니다.