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

IQDate.addRebalSchedule 함수 질문

소포클레스 2022.03.03 08:50 조회수  154 추천 0

안녕하세요.  IQ 라이브 자동매매에 관해 질문드립니다.


NH계좌가 2개이며 각각의 전략이 아래처럼 다릅니다.

전략1 : initialize 함수에 IQDate.addRebalSchedule(IQDate.setMonthlyStart(1)) 로 설정됨

전략2 : initialize 함수에 IQDate.addRebalSchedule(IQDate.setMonthlyStart(2)) 로 설정됨


위처럼 리발란싱 일자를 다르게 했습니다.

그런데 오늘 아침(2022-03-03)에 카카오톡에 아래와 같이 문자가 동시에 2개가 왔습니다.

 


리발란싱 일자를 다르게 했는데 동시에 자동매매가 되는 이유를 알려주세요.

그리고 같은 날 거래가 되는걸 방지하려면 어떻게 해야되는지도 알려주시기 바랍니다. 

통정거래가 될까 두렵습니다.


감사합니다.



PS

onDayClose 함수에서 두전략 모두  isFirst 글로벌변수는 사용하지 않았습니다. 

두전략 모두 아래처럼 사용하였습니다.

function onDayClose(now) {


    if (  IQDate.isRebalancingDay(now) ) {

        

        var universe = IQStock.filter(stockFilter);     

         ... 이후 생략


감사합니다.


 

댓글 3
통정거래가 될까 두려워 첫번째 전략은 자동 매매를 실행했고, 두번째 전략은 자동매매를 실행하지 않은 상태 입니다.
소포클레스 2022.03.03 08:52
도움말/API 의 isRebalancingDay() 설명에서 리밸런싱 지정일이 휴일인 경우, 각 지정방식 별로 처리하는 기준이 있습니다. 그 중에서
- setMonthlyStart(d): 해당 월의 d일이 휴일인 경우, 그 다음 영업일에 리밸런싱

라고 되어 있는 것을 참고하시면, 왜  매월 1일과 매월 2일로 설정한 두 전략이 오늘(3/3) 같은 날에 매매하게 되시는지 이해가 되실 것입니다.

따라서, 휴일인 경우에는 두 전략이 연이은 날짜로 지정되면 종종 같은 날에 매매하게 되실 것입니다.
이것을 피하기 위한 방법은 두 전략의 리밸런싱 날짜 간격을 3일 이상 벌려 놓으시는 것이 확실한 방법입니다.

그리고, 통정매매는 동일한 종목을 한 계좌에서는 팔고, 다른 계좌에서는 살 때 지적 받게 되니, 포트폴리오 종목을 살펴 보셔서 그런 일이 없다면 얼마든지 같은 날 매매하셔도 됩니다.
Joseph 2022.03.03 11:15
Joseph님 상세한 답변에 감사드립니다. 
소포클레스 2022.03.03 12:43
댓글 등록을 위해서 로그인해주세요.
 
최신 게시글