키움 api 초단타 자동매매를 위한 조건검색식 1번 전략 테스트 결과

    초단타 자동매매를 위한 전략이 총 3가지가 있는데 이 포스팅은 그 중 1번 전략에 관한 내용. 이 전의 포스팅에서 조건검색이 너무 루즈해서 잡히는 종목이 맘에 안들어서 수정하고 테스트 한 결과다.

     

    조건검색에 관한 내용은 이 전 포스팅에서 참고하면 되고 오늘은 테스트 결과를 리뷰한다.

     

    키움 api 초단타 자동매매를 위한 조건검색식 1번 전략 테스트 결과

    매매내역

    하이드로리튬과 어반리튬을 매매했다. 일단 짚고 넘어갈 게 코드 수정을 하면서 손절 매도조건을 -3으로 해야하는데 3으로 입력해놔서 두 종목 모두 사자마자 매도됐다. 그래서 주문시간을 보면 매수시간과 매도시간이 같거나 1초 차이가남을 알 수 있다. 아무리 그래도 정말 빠르긴하다.. ㄷㄷ 

     

    또한 어반리튬의 종목은 시장가 매도로 전량 주문했지만 그 주문한 수량이 한번에 매도가 되지 않을 때는 일부 매도된 수량외 나머지는 모의투자에서는 취소가 되는 것 같다. 그래서 내가 가지고 있다가 나중에 +가 될 때 팔아서 저렇게 된 것을 확인할 수 있다. 주문시간이 다른게 보인다.

     

    그러니 일단 이 포스팅에서 어떤 지점에서 잡았는지만 중점적으로 보고 보완해야 할 보완책을 찾는 것이 목표다.

     

    그럼 한 종목씩 보자.

     

    1.  하이드로리튬

    매수시간이 090021이다. 초봉을 보자.

     

    지난 포스팅에서 확인한 것 보다 매수시점이 훨씬 더 마음에 든다. 손절률 실패로 바로 매도되었지만 아마 수익률도 3퍼센트 정도로 넣은 것 같은데 19662가 매수평단이니 20700이면 5퍼센트 정도 이상 상승 수수료 제외해도 3퍼센트는 충분히 나온다. 

     

    이 전략은 사실 1퍼센트 이상만 되도 좋은 전략이긴 하다.  이렇게 나오는 종목은 무난한 케이스 혹은 베스트 케이스라 딱히 수정해야 할 것이 없고 손절 나간 종목을 보고 보완책을 찾아야 한다.

     

    그럼 손절 나간 어반리튬 종목을 보자.

     

    2. 어반리튬

    지나고 나면야 지금은 상종가지만 이 시점에서 보면 최고가에서 매수한 것을 확인할 수 있다.

     

    초봉인데 확실히 최고가다..;; 더할 나위없이 최고가다. 저 이후 밑으로 내려간 지점이 아마 12800원까지인데 -5.8프로다. 수수료 더하면 -6퍼가 거뜬히 넘어간다. 이런게 문제점이지 일단 산 부분의 로그를 보자.

     

    091048초까지 모두 확인하고 49에 딱 진입했는데 거기가 최고가 아래는 로그

     

    ERROR 2022-12-19 09:10:50,707 - strategy 1 START##############################################
    INFO 2022-12-19 09:10:50,707 - 073570 어반리튬
    INFO 2022-12-19 09:10:50,707 - time 1900-01-01 09:10:39 1900-01-01 09:10:48
    INFO 2022-12-19 09:10:50,707 - 체결강도만 찍기 : deque([117.44, 117.67, 117.66, 117.88, 117.97, 117.99, 118.2, 118.69, 118.89, 120.26], maxlen=10) 
    INFO 2022-12-19 09:10:50,708 - 1. each_bong_size_count 0.5 보다 큰게 8개 이하 9 True
    INFO 2022-12-19 09:10:50,708 - 2. _100_count 100이상의 체결강도가 3개 이상 10 True
    INFO 2022-12-19 09:10:50,708 - 3. more_120_count 120보다 큰 체결강도가 1개 이상 1 True
    INFO 2022-12-19 09:10:50,708 - 거래량비율만 찍기 : deque([1.16, 16060.0, 23.41, 651.06, 15.03, 75.0, 1023.19, 87.46, 60.89, 1245.35], maxlen=10) 
    INFO 2022-12-19 09:10:50,708 - 4. vol_rate_count 100퍼센트 이상의 거래량 2개 이상 4 True
    INFO 2022-12-19 09:10:50,708 - self.tic_info[sCode]["chobong_curr_price_rate"][9] 마지막 봉 자체의 시가대비 종가율이 0.5 이상이어야 함 혹은 1.1194029850746268
    INFO 2022-12-19 09:10:50,708 - self.tic_info[sCode]["chobong_curr_high_rate"][9] 마지막 봉 자체의 시가대비 고가율이 1 이상이어야 함 1.1194029850746268
    INFO 2022-12-19 09:10:50,708 - 5. last_09_deq_curr_rate_cond 마지막봉 자체의 시가대비 종가가 0.5 이상이거나 고가가 1 프로 이상이어야 함 True
    INFO 2022-12-19 09:10:50,708 - 오늘 시가 13150
    INFO 2022-12-19 09:10:50,708 - 마지막 초봉 종가 13550
    INFO 2022-12-19 09:10:50,708 - 6. compare_open_last_09_deq_cond 오늘의 시가보다 마지막봉의 종가가 커야함 True
    INFO 2022-12-19 09:10:50,708 - 7. self.tic_info[sCode][chobong_chegyulgangdo][9] 마지막봉의 체결강도가 120이 넘어야 함  120.26 True
    INFO 2022-12-19 09:10:50,708 - 8. self.tic_info[sCode][chobong_last_rate][9] 마지막봉의 전봉 종가대비 종가가 0.5이상이어야 함 1.12 True
    INFO 2022-12-19 09:10:50,708 - 9. chobong_rate 첫 초봉대비 마지막 초봉의 상승 갭은 1.5 ~ 3프로 사이여야 함 1.8796992481203008 True
    ERROR 2022-12-19 09:10:50,708 - 틱 데이타 갯수 찍어보기
    INFO 2022-12-19 09:10:50,708 - 10. deque([2, 3, 6, 8, 4, 4, 4, 8, 4, 17], maxlen=10)
    ERROR 2022-12-19 09:10:50,708 - ##############################################strategy 1 END

     

    조건이 잘 맞나 일일이 로그를 다 찍어놓도록 설정했다. 타임스탬프 및 모든 조건을 보면 만족된 것이 확인된다. 일단 이런 종목을 어떻게 피할 수 있나 곰곰히 생각해보아야 한다. 저 조건자체가 빡세다기 보단 이 종목도 그렇게 많이 상승한 종목이 아니기 때문에 (시초가대비) 이렇게 떨굴고 떨구고 상승하는건데 이것을 어떻게 더 잘 동작하게 알고리즘을 짜는것이 문제다.

     

    여기서 문제가 될만한 조건은 10초봉 마지막 종가가 오늘의 시가보다 커야한다. 이 조건은 상승하는 종목을 잡기 위해서 넣은 조건이다. 그럼 시초가보다 낮은 구간에 이 조건외 다른 조건들이 모두 만족하면 이 조건 떄문에 밑에서 매수가 안되고 상승할 떄 이처럼 고점에서 잡을수도 있다. 그럼 이 종목에서 밑에서 이 조건 외 다른 조건을 모두 만족할 만한 구간이 있는지 찾아보자.

     

     

    일단은 없다. 저 조건과 만족하는 것은 없다. 

     

     

    이렇게 거래량이 튀고 다시 상승하는 구간들 받히는 것 같긴한데 이런 구간들이 1번전략과는 상관관계가 없다. 즉, 바로 상승할 때와 밑으로 흐르고 위로 갈 때는 좀 다른느낌이긴하다. 아니 데이터 자체가 다르다. 느낌이 아니다.

     

    갭초 바로 상승할 때는 1번 종목처럼 상승할 때는 조건식대로 가는 경우가 있지만 밑에서 상승하지않고 밑으로 하락 후 재상승 하는 종목들은 일단 체결강도가 높지 않다. 그래서 조건식에 맞지 않는다. 이러다 올라버리면 2번 케이스처럼 그냥 전고를 만드는 최고점에서 잡힐 수가 있다.

     

    따라서 보아야 할 부분이 갭상승 이후 바로 상승을 하지 않고 밑으로 내려간 뒤 재상승하는 경우는 전략을 다시 짜야한다. 체결강도로는 안되고 딱히 눈에 띄는건 두가지밖에 없는데 하나는 거래량이고 다른하나는 주가변동폭이다. 

     

    받히고 올라가는 부분을 잘 봐야한다. 여기까지 대충 정리하면,

     

    1. 1번전략 사용시 바로 상승하지 못하고 하락 후 재상승 하는 경우에

    2. 밑에서 상승 전환시 특이점을 별도로 찾아야 한다.

    3. 1번 전략 그대로 사용하면 고점에서 걸리는 케이스가 발생한다.

    4. 그리고 시간제한을 두는 것도 좋은 방법일 수 있다. 이건 좀 더 지켜보자.

    5. 상승을 얼마나 한 뒤 하락하는 것에 대한 기준도 줘야한다. 이것도 생각이 더 필요하다.

     

     

    그럼 특이점 체크

     

    저가를 두고 생각하기에는 복불복이 많을 것이다. 

     

     

    첫번째 화살표처럼 상승이 아니라 두번째 세번째 화살표처럼 층층이 상승이 더 좋다?

     

    반등하는 시작점

     

    특이점이다. 위꼬리 음봉에 거래량 대량 상승 다음봉 1퍼센트 이상 상승 흠

    해당 시점의 로그를 보자.

     

    ERROR 2022-12-19 09:06:31,702 - strategy 1 START##############################################
    INFO 2022-12-19 09:06:31,702 - 073570 어반리튬
    INFO 2022-12-19 09:06:31,702 - time 1900-01-01 09:06:20 1900-01-01 09:06:29
    INFO 2022-12-19 09:06:31,702 - 체결강도만 찍기 : deque([80.09, 80.0, 79.91, 79.95, 80.05, 80.02, 80.02, 80.02, 80.02, 80.86], maxlen=10) 
    INFO 2022-12-19 09:06:31,702 - 1. each_bong_size_count 0.5 보다 큰게 8개 이하 10 True
    INFO 2022-12-19 09:06:31,702 - 2. _100_count 100이상의 체결강도가 3개 이상 0 True (로그를 잘못 찍음 ㅎ)
    INFO 2022-12-19 09:06:31,702 - 3. more_120_count 120보다 큰 체결강도가 1개 이상 0 False
    INFO 2022-12-19 09:06:31,703 - 거래량비율만 찍기 : deque([195.2, 1.7, 4611.11, 121.69, 39.41, 3.02, 150.0, 55.56, 240.0, 47150.0], maxlen=10) 
    INFO 2022-12-19 09:06:31,703 - 4. vol_rate_count 100퍼센트 이상의 거래량 2개 이상 6 True
    INFO 2022-12-19 09:06:31,703 - self.tic_info[sCode]["chobong_curr_price_rate"][9] 마지막 봉 자체의 시가대비 종가율이 0.5 이상이어야 함 혹은 0.0
    INFO 2022-12-19 09:06:31,703 - self.tic_info[sCode]["chobong_curr_high_rate"][9] 마지막 봉 자체의 시가대비 고가율이 1 이상이어야 함 0.7843137254901961
    INFO 2022-12-19 09:06:31,703 - 5. last_09_deq_curr_rate_cond 마지막봉 자체의 시가대비 종가가 0.5 이상이거나 고가가 1 프로 이상이어야 함 False
    INFO 2022-12-19 09:06:31,703 - 오늘 시가 13150
    INFO 2022-12-19 09:06:31,703 - 마지막 초봉 종가 12750
    INFO 2022-12-19 09:06:31,703 - 6. compare_open_last_09_deq_cond 오늘의 시가보다 마지막봉의 종가가 커야함 False
    INFO 2022-12-19 09:06:31,703 - 7. self.tic_info[sCode][chobong_chegyulgangdo][9] 마지막봉의 체결강도가 120이 넘어야 함  80.86 False
    INFO 2022-12-19 09:06:31,703 - 8. self.tic_info[sCode][chobong_last_rate][9] 마지막봉의 전봉 종가대비 종가가 0.5이상이어야 함 -0.39 False
    INFO 2022-12-19 09:06:31,703 - 9. chobong_rate 첫 초봉대비 마지막 초봉의 상승 갭은 1.5 ~ 3프로 사이여야 함 0.0 False
    ERROR 2022-12-19 09:06:31,703 - 틱 데이타 갯수 찍어보기
    INFO 2022-12-19 09:06:31,703 - 10. deque([11, 6, 10, 7, 8, 6, 7, 5, 7, 8], maxlen=10)
    ERROR 2022-12-19 09:06:31,703 - ##############################################strategy 1 END

     

    일단 없어져야 할 것이 밑으로 내려온 뒤에는 체결강도 필요없고 오늘의 시가보다 높은 가격에 사야 한다는 조건이 필요가 없고 이건 아예 삭제해야 하는게 맞는 듯 틱 데이타도 별 의미는 없네 

     

    이거를 말을 그럴싸하게 해석해보면,

     

    1. 일단 갭상승을 했기 때문에 초반에 거래량이 실림

    2. 거래량이 실리고 바로 상승하면 1번처럼 됨 하지만 상승하지 못하고 밑으로 내려오면

    3. 내려갈수도 있고 지지후 상승할 수 있는데 

    4. 지지 후 상승한다고 해도 체결강도가 100이상이 필요가 없음

    5. 그 이유로는 초반에 물량이 나왔기 때문에 그렇게 큰 수급이 필요치가 않은 것으로 생각됨 

    6. 그만큼 다 먹었다는 것임 이미 세력이 그렇기 때문에

    7. 틱 데이터도 급등할 때처럼 많지 않은 거임 이미 나왔으니까

    8. 그럼 결국 데이터는 상승률과 거래량 뿐이 없음 

     

    흠 그럼 밑에서 지지 후 상승할 때 특이점이 많지가 않으니.. 거래량 저거랑 주가 상승율 하나가지고 만들수는 있겠는데 저게 모든 종목이 다 저럴지 알수가 없으니..

     

    일단 킵해두고 그럼 분봉상 전고점을 만들고 진짜 본격적으로 상승하는 구간을 보자.

     

    분보상 이런 부근들 

     

     

    등락률로 일단 한번 보자.

     

    아.. 다 팔려서 찍힌 로그가 없네;

    댓글

    Designed by JB FACTORY