본문 바로가기

전체 글225

[Python] is/==/not - True/False/None value를 각각 True, False, None으로 지정하고 각각 8개의 표현식을 돌려보면 결과는 아래 같다. for value in [True, False, None]: print(value) if value is True: print('1. if value is True') if value is False: print('2. if value is False') if value is None: print('3. if value is None') if value == True: print('4. if value == True') if value == False: print('5. if value == Fals.. 2025. 1. 11.
BTCUSD Short 전략 시장 자체가 엄청나게 부진한 2022년 같은 경우에 성과를 보완해 줄 수 있는 성격이라 생각하지만 거래 횟수가 너무 적어서 실전에 투입할지 말지 고민 중이다. 2025. 1. 10.
Rolling.mean/max/in - Talib vs Pandas 50부터 10000까지 period에 대해서 전체 데이터를 rolling하면서 mean, max, min을 계산해봤다.내가 사용할 범위 내에서는 Talib가 대부분 빠르지만 Max, Min 의 경우 rolling하는 peirod가 늘어날수록 talib 소요시간이 선형으로 증가하는 경향이 있다. 2025. 1. 9.
백테스트 프로그램 개선 (feat. ChatGPT) 며칠째 백테스트 프로그램의 코드를 리팩터링 하고 최적화하는 작업을 했고 거의 마무리 작업에 이르렀다. 코드 한줄한줄 시간을 측정해 가면서 어떤 함수를 개선할 수 있을지 고민했다. ChatGPT의 도움이 없었다면 단 며칠 만에 가능했을까? 애초에 여기까지 오는 것도 불가능했을지도?       아래는 작업하던 과정에서 기억에 남는 것들을 정리해봤다. 물론 대부분 단일 작업들로만 보면 차이는 0.n초 이내이지만 백테스트의 성격 상 그 과정에서 수백 ~ 수천번 반복하는 경우에는 꽤 큰 차이를 만들어냈다.  1. ZeroDivisionError 처리 try / except 로 처리를 했었는데 분모가 0인지를 확인하는 방법이 더 빠르다.# beforedef zerodiv_cover(value1, value2): .. 2025. 1. 8.
2024년 연간 성과 이 글을 올릴까 말까 고민이 많았다. 보잘것없는 블로그지만 지인들도 가끔 들어오기도 해서 언제부터인가 투자규모나 손익 규모가 노출되는 것이 부담스러워지기 시작해서 한동안 트레이딩 성과를 올리는 것이 꺼려졌다. 사실 교과서처럼 정해진 답이 있는 것도 아니고 누군가에게 조언을 구할 수 있는 일도 아니기 때문에 대부분 오롯이 혼자서 다 하고 있기 때문에 금방 지쳐버릴 때도 많았다. 실제로 자주 아이디어가 고갈돼서 트레이딩 연구나 포스팅도 소홀히 한 채로 주야장천 캠핑이나 다니던 때도 많았다. 그럴 때마다 포스팅이 뜸하다면서 큰 손실을 입은 것이 아닌가 하고 주변에 걱정을 하시는 분들도 있었다.       작년 중순 국내 선물 거래 시간이 늘어나고 하반기에 공매도가 전격 금지되고 정책적인 모멘텀이 0에 가까운 .. 2024. 12. 31.
메인프로그램 코드 리팩토링 내년부터는 몇 가지 ETF상품의 거래도 시작할 예정이고 기존의 전략들과 조금 성격이 다른 선물 전략들도 추가할 생각이다. 그런데 가장 큰 문제는 현재 메인프로그램의 구조 위에 새로 추가할 아이템들을 구겨 넣을 방법이 마땅치 않다는 점이었다. 결국 메인프로그램의 코드 전체를 뜯어고치기로 했다. 19년 말에 프로그램을 처음 만들고 그동안 열심히 수정을 거듭해 왔는데 몇 가지 해묵은 숙제 같은 것들도 이번에 함께 수정했다.    그러다가 우연히 백업폴더에서 초기 메인프로그램 코드를 발견했다. 전체 코드를 스크롤해가며 살펴보니 재미있는 표현과 방식들이 많았다. 이런 형태로 대략 반년 가까이 프로그램을 돌렸었다는 것이 신기하다. 돌이켜보면 그 시절은 어쩔 수 없이 장중에 잦은 디버깅 상황이 벌어졌었는데 그건 내게.. 2024. 12. 26.
E-Mini Nasdaq 100 - 이동평균선 전략 간단한 아이디어의 전략들은 가끔 엑셀로 대충 스케치해 볼 때가 있다. 이 전략도 머릿속에 구상만 해두고 성과를 뽑아보지는 않았는데 나스닥 자체가 워낙 상승 추세가 좋으니까 그럭저럭 나쁘지 않은 결과가 나온 것 같다.  대상: E-Mini Nasdaq 100진입조건: 이동평균선 2개(20, 60)가 상승으로 전환될 때 익일 시가에 진입청산조건: 이동평균선 2개의 상승추세가 하나라도 깨질때 익일 시가에 청산그외: 단리투자가정, 슬리피지 미고려     여러 가지 이동평균선의 조합을 테스트해봤는데 포지션을 보유하고 있는 동안의 미실현손실까지 평균 drawdown에 넣어서 생각해 보면 20 - 60 조합이 제일 좋아 보인다. 물론 로그수익률 기준으로 시장보다는 못하지만 drawdown이 낮은 것에 의미가 있을 것.. 2024. 12. 14.
잡생각들 1. 성과가 안정적인 전략들의 비중을 조금 늘렸고 최근 한 두 달 동안 지지부진한 전략들은 멈추거나 비중을 줄였다. 그런데 이런 방향이 올바른 선택이 아닐 수도 있다. 전략의 성격에 따라서 underwater period가 길거나 수익이 어떤 시점에 집중되는 경향이 있을 수도 있다. 시간이 필요한 문제다. 그걸 알지만 남은 2024년은 수익을 포기하더라도 손실을 최소화하는 방향을 유지하기로 했다.  2. 시스템이 아니거나 백테스트된 전략이 아닌 위험자산 투자는 내년부터는 그만두기로 했다. 전체 포트폴리오 중에서 비중이 얼마 되지도 않지만 그 작은 비중이 여러모로 신경이 쓰인다. 그 에너지를 새로운 전략을 개발하는 데 쓰는 것이 맞는 것 같다.   3. 어떠한 투자 전략을 사용하든지 간에 항상 머릿속에 염.. 2024. 12. 11.
코스닥150 장중 추세 (24년 11월 현재) 마지막으로 지표를 산출해 본 지 거의 2달 반이 지났다. 2024.08.27 - [시스템트레이딩] - 코스닥 150 장중 추세 (24년 8월 현재)  코스닥150 장중 추세 (24년 8월 현재)8월 5일에 역대급 하락이 터졌지만 아직 추세가 강해지고 있다는 판단을 내리기는 어려울 것 같다.   2024.07.01 - [시스템트레이딩] - 코스닥150 장중 추세 (24년 6월 현재) 코스닥150 장중 추세 (24년toniteifly.tistory.com      9월, 10월 두 달간 생각보다 괜찮은 흐름이었다. 비중이 매우 낮긴 했지만 살려놓은 전략들에서 수익을 기록했다. 11월이 되자마자 전략을 세 개로 늘리고 비중을 2배로 늘렸는데 마침 금투세 폐지 이야기가 흘러나오면서 큰 상승이 나왔는데 증거금 문.. 2024. 11. 10.