본문 바로가기
728x90

전체 글131

무차별 가격(Indifference Price) Indifference Price(무차별 가격)는 금융이나 경제학에서 사용되는 개념으로,특정 투자자의 입장에서, 리스크를 감수하지 않든 리스크를 감수하든 상관없이 동일한 효용(utility)을 제공하는 가격을 의미합니다. 오늘은 무차별 가격의 정의와, 현실 세계에서의 무차별 가격 예시 두 가지로 자세히 무차별 가격의 계산 방법에 대해 알아보겠습니다.  무차별 가격의 정의무차별 가격은, 투자자가 어떤 리스크를 가진 자산(예: 주식옵션)을 포트폴리오에 포함할지 말지를 결정할 때, 해당 자산을 보유함으로써 얻는 효용과 그 자산을 보유하지 않을 때의 효용이 동일하도록 하는 가격이 바로 무차별 가격입니다.즉, 어떤 자산의 가격이 A일 때, 이 자산을 샀을 때랑 사지 않았을 때 얻을 것으로 기대되는 효용(utili.. 2024. 8. 11.
매일 자동으로 전략 프로그램 재실행하기 본인이 만든 트레이딩 시스템을 사용할 때 고민해야 할 부분이 하나 있습니다. 바로 아래 질문이죠. "어떻게 매일 내 프로그램을 재실행할 수 있을까?" 재시작해야 하는 이유는 명확합니다. 주식시장의 경우 매일 장 시작/종료 시점이 있고, 그 시점 전후로 증권사 API도 리셋되기 때문이죠.즉, API를 제대로 연결하기 위해선 매일 아침 프로그램을 재시작해야 합니다.  재시작을 위한 가장 단순무식한 방법은 매일 아침 내가 직접 파이썬 코드를 실행시켜 주는거겠죠. 하지만, 힘듭니다. 늦잠자거나 전날 과음이라도 했다면 그날 전략은 돌아가지 않겠죠. 때문에, 우린 자동으로 프로그램이 재실행되도록 코드를 짜야합니다. 이를 하는 방법을 알아봅시다. 자동실행을 위한 프로그램 구조자동실행 코드는 아래 3가지 부분으로 나눠.. 2024. 8. 5.
[Python] 텍스트 파일(txt) 읽고 쓰기 가끔 logging 같은 패키지를 쓰지 않고, 텍스트 파일에 바로 메세지를 기록하고 싶은 경우가 있습니다.이 경우, .txt 파일을 바로 불러와서 읽고(r), 쓰고(w), 덧붙이는(a) 방법이 가장 간편합니다. 오늘은 각각의 사용 방법을 간략하게 알아보도록 합시다. 파일 준비먼저, 테스트를 위해 파일을 하나 만들어둘까요? msg.txtthis is my messagemessage ended! 이렇게 두 줄의 문장으로 이뤄진 msg.txt 파일을 만들어둡니다.  파일 읽기그럼, 바로 파일을 읽어볼게요.읽기, 쓰기, 이어붙이기 기능 모두 먼저 파일을 열어줘야 합니다. 이때 with open() 이라는 파이썬의 기능을 사용할 수 있습니다.아래처럼 msg.txt 파일을 읽고, 한 줄씩 출력합니다.with ope.. 2024. 6. 30.
헷지 포지션을 잡은 후 주가가 변하면, 리밸런싱을 해야 할까요? 안녕하세요, 쿼카퀀트입니다. 헷징(Hedging)이 무엇인지 아시나요?간단하게 설명하면, 내가 가진 종목 포지션의 변동성을 줄이기 위해 내 포지션에 반대되는 포지션(숏 포지션 등)을 취하는 것이죠. 시장에 큰 변동이 발생할 때(보통 하락 변동을 의미하겠죠), 헷징을 통해 이러한 위험을 줄이고 자산을 보호할 수 있습니다.헷징이 필요한 이유는 크게 두 가지를 뽑을 수 있습니다.리스크 관리: 주식 시장은 예측하기 어려운 다양한 요소에 의해 영향을 받습니다. 경제 상황, 정치적 변화, 자연 재해 등 여러 요인들이 주가에 영향을 미칩니다. 헤징은 이러한 위험 요소들로부터 투자 자산을 보호하는 방법입니다.심리적 안정감: 주가가 급락할 경우, 헤징을 통해 예상 손실을 줄일 수 있어 투자자에게 심리적 안정감을 제공합니.. 2024. 6. 16.
2024 Metastock 트레이더 컨퍼런스 Metastock Online Traders Conference February 2024 안녕하세요, 쿼카퀀트입니다. 저번주 월요일부터 6일간 Metastock에서 트레이더 컨퍼런스를 주최했습니다. 47명의 트레이더가 나와 각자 약 1시간 동안 자신의 전략에 대해 강의했습니다. 강의 링크 한국 시간으로 새벽 2시에 컨퍼런스가 시작되고, 한 타임에 9시간 가량 강의가 이어지다보니 라이브로 보기 쉽지 않았는데요, 다행히 Metastock 측에서 유튜브에 관련 영상을 남겨줘 앞으로도 볼 수 있게 되었습니다(지금 보니 2023년 컨퍼런스 내용도 남아있네요!) 총 6일간 진행된 컨퍼런스고, 링크는 여기있습니다. Day 1. Stock & Options Traders Conference Day 2. Stock & .. 2024. 3. 7.
[Python] 일별 timestamp 만들기 시계열 데이터의 index를 날짜로 설정하고 싶을 때, 데이터 포인트가 n개 있으면 날짜도 n개가 필요합니다. 이때 n개의 날짜를 쉽게 만들 수 있는 함수 'rrule'을 소개드리겠습니다. rrule rrule은 dateutil에 포함된 함수로, 파이썬에 기본으로 설치돼있습니다. 간단하게 rrule 사용 코드를 보면, 아래와 같습니다. from datetime import datetime, timedelta from dateutil.rrule import rrule, DAILY list(rrule(DAILY, dtstart=datetime.now() - timedelta(days=100), until=datetime.now())) 'dtstart' 날짜부터 'until' 날짜까지 1일 주기(DAILY) .. 2024. 2. 15.
파이썬 주식 트레이딩 시스템 (2) - 일별 주가 데이터 조회 이번엔 발급받은 API키와 토큰으로 삼성전자의 과거 일별 데이터를 받아오겠습니다. 1. 전달 데이터 구조 먼저, 증권사 서버에 우리가 필요로 하는 데이터가 어떤건지 알려줘야겠죠? 우리는 주식 시세를 받아올 예정이므로, 관련 호출인 KIS Developers의 '국내주식시세 - 주식현재가 시세' 설명서에 들어갑니다. 설명서에는 입력해야하는 Headers, Params가 적혀져 있습니다. 아래 스크린샷과 같네요. 전달해야하는 값이 많아보이지만 겁먹지 마세요 어떻게 입력해야하는지 다 알려드릴게요ㅎㅎ 먼저 Headers는 모든 호출에서 거의 동일한 구조니까, 한번 만들어두고 계속 돌려쓰면 됩니다. 다음으로 Query Parameter는 각 호출 종류(주문, 시세조회 등)에 따라 필요로 하는 데이터를 입력해줍니.. 2024. 2. 4.
파이썬 주식 트레이딩 시스템 (1) - API 발급 안녕하세요, 이전에 REST API로 개발 가능한 국내 증권사 API 라는 주제로 블로그 글을 한번 작성한 적이 있는데요, 이 중 한국투자증권 API를 활용해 주가 데이터 수집, 잔고 조회, 실제 주문부터 제가 실제로 API 활용 매매를 하며 얻은 사소한 팁까지 블로깅을 해보려 합니다. 한국투자증권의 API는 두 가지(기존 API, KIS Developers)로 나뉘는데요, 기존 API는 윈도우에서 32bit 파이썬으로만 연결할 수 있어 개발이 어려운 반면, KIS Developers는 REST API를 활용하기 때문에 리눅스 환경에서 쉽게 개발할 수 있습니다. API 발급 증권사 API와 파이썬을 연결하기 위해 가장 먼저 API를 발급받아야 합니다. 이번 포스팅에선 API를 발급받는 방법을 순서대로 .. 2023. 12. 9.
코스닥 선물 거래 방법과 증거금 예전 글에서 선물 거래 방법과 한 계약에 필요한 증거금 등을 설명한 글을 작성한 적 있는데요(아래 링크 참고) 선물 거래 방법 - 가격 계산 방법과 증거금, 일일정산, 만기란? 선물 거래 방법 - 가격 계산 방법과 증거금, 일일정산, 만기란? 선물은 호가창이 주가 호가창과 특별히 다르지 않습니다. 때문에 호가창은 넘어가고, 선물 1계약의 가격 계산과 증거금에 대해 정리해봅니다. 선물 1계약의 가격 코스피200선물을 예로 들면, 아 junyoru.tistory.com 위 글은 코스피 선물에 대한 글이기에 다른 선물(달러/채권/코스닥/개별종목/코스피미니 등)과는 증거금 기준이 조금 달랐습니다. 그래서 오늘은, 국내 선물 종목 중 두 번째로 참여자가 많은 코스닥선물에 대해 간단히 설명해 보도록 하겠습니다. 코.. 2023. 8. 20.
REST API로 개발 가능한 국내 증권사 API 업비트, 바이낸스같은 코인 거래소는 이미 예전부터 REST API를 사용했지만, 국내 증권사는 com, dll 등 windows를 기반으로만 사용 가능한 api만을 제공해 왔습니다. 하지만, 최근들어 국내 증권사 api도 REST API로 갈아타려는 움직임이 보이고 있습니다. 오늘 기준으로 두 증권사가 REST API를 지원하고 있는데요, 1. 한국투자증권 KIS API (link) 가장 먼저 REST API를 지원한 곳은 한국투자증권입니다. 처음 출시됐을때보다 지원해주는 기능은 점점 늘고있지만, 아직 초기라 기능 제한이 있습니다. 기존 dll 요청에선 초당 10건 요청이 가능했지만 REST API에선 초당 2건 요청만 되거나, 받아올 수 있는 과거 기간이 최근 30일로만 가능한 경우가 있습니다. 때문에.. 2023. 7. 23.
[Python] Pandas보다 빠른 Polars 일봉, 1시간봉 정도의 큰 timeframe을 다룰 땐 데이터 사이즈가 그렇게 크지 않습니다. 한 종목의 일봉은 10년동안 2500개만 생길테니까요. 이정도 데이터면 pandas도 충분합니다. 하지만, 수천 종목의 1분봉/틱 데이터를 pandas로 다루긴 힘듭니다. 이에 대한 해결책으로 polars라는 패키지가 있습니다.(polars 설명: https://medium.com/cuenex/pandas-2-0-vs-polars-the-ultimate-battle-a378eb75d6d1) 위 설명을 한 장의 그림으로 요약하면, 아래와 같습니다. 모든 면에서 Polars가 Pandas보다 빠르죠. 때문에, 저는 원래 pandas로 하던 작업을 모두 polars로 갈아타고 있습니다. 속도가 빠른 이유는, rust.. 2023. 7. 8.
퀀트 시험 준비를 위한 자료/사이트 안녕하세요, 이번엔 금융권 퀀트 관련 인터뷰 준비를 위해 도움이 될 수 있는 사이트를 소개해 드리고자 합니다. 본격적인 인터뷰 전 간단한 시험을 보게 되는데요, 여기에선 크게 수학, 확률, 그리고 Brainteaser 문제가 나옵니다. 이 시험을 대비하기 위해 문제를 모아둔 사이트나 책이 있는데요, 먼저 사이트들에 대해 설명해드리도록 하겠습니다. 사이트 A Collection of Quant Riddles With Answers 이 사이트엔 88문제의 Brainteaser가 있습니다. 난이도에 따라 색상으로 표시가 되어있으니, 원하는 난이도만 풀 수 있다는 장점이 있으며, 사이트 구성이나 그림도 깔끔해, 시각적으로 가장 보기 좋은 사이트인 것 같습니다. http://puzzles.nigelcoldwell.. 2022. 2. 27.
[Solidity] 컨트랙트에 입금된 이더리움 출금하기 NFT 스마트 컨트랙트를 만들어 판매가 시작되면, 구매자들의 이더리움이 내 스마트 컨트랙트에 저장됩니다. 이 돈은 아직 내 지갑에 들어온 돈이 아니기에, 출금 신청을 해야만 합니다. 따라서 Solidity 코드 안에 출금 기능을 넣어봅시다. 아래 코드처럼 함수를 만들어주면 됩니다. contract MyContract is ERC721URIStorage, Ownable { function withdraw() external payable onlyOwner() { payable(owner()).transfer(address(this).balance); } } 예시에선 두 개의 클래스를 상속받고 있는데요, 이 중 필요한 클래스는 Ownable입니다. 컨트랙트 주인의 계좌에 송금하는 코드이므로 계좌 주인만 사용.. 2022. 2. 20.
Pivot Point로 주가 추세 구하기 안녕하세요, 바쁘다보니 점점 블로그에 글 쓰는 빈도가 줄어들고 있군요.. 오늘은 오랜만에 글 쓰는 김에, 원래 자주 다루고 싶었던 주가 데이터 관련 내용을 다뤄보고자 합니다. 시작하기 전에, 이번 블로그 내용 및 예시 출처는 위 Adam Grimes의 The Art and Science of Technical Analysis 책을 참고했습니다. Pivot Point란? 오늘은 Pivot Point 지표를 계산해 볼 건데요, Pivot Point란, 단어에서도 알 수 있듯이 주가의 방향이 꺾이는(Pivot) 시점을 의미합니다. 즉, 주가가 상승하다가 하락으로 변하는 시점, 혹은 하락하다가 상승으로 변하는 시점을 의미합니다. 추세가 바뀐다고도 표현하죠? 이 '변하는 시점'은 주변 날짜보다 고가(High)/저.. 2022. 2. 13.
Hardhat으로 Rinkeby 테스트넷에 스마트 컨트랙트 업로드하기 스마트 컨트랙트 개발이 완료됐다면, 이더리움 메인넷에 업로드하기 전, 먼저 제대로 작동하는지 테스트를 해볼겁니다. 기존처럼 단순히 로컬 hardhat 네트워크에서 테스트하는게 아니라, 실제 내 지갑과 연결하고 스마트 컨트랙트가 작동하는 모습을 확인하고 싶다면, Rinkeby라는 테스트넷을 사용해야 합니다. Rinkeby외에도 여러 테스트넷이 있지만, 개인적으로 가장 편리하다고 생각하는 네트워크기 때문에, 이를 기준으로 설명해보겠습니다. Rinkeby 계정 만들기 이 포스트를 보시는 분들은 모두 Solidity 개발을 해보신 분들일테니, 아마 Metamask 계정은 이미 있으실겁니다. Metamask를 켜면 아래처럼 내 계좌가 뜨는데요, 맨 위에 'Rinkeby 테스트 네트워크'라고 뜨는게 보이시나요? 지.. 2022. 1. 14.
Hashlips_art_engine 사용해 NFT metadata 만들기 오늘은 여러 layer로 이뤄진 NFT 컬렉션을 만들어 보겠습니다. 사용할 패키지는 Hashlips_art_engine입니다. 자체 유튜브에서도 자세히 설명이 나와있으니, 영상으로 보고싶으신 분은 링크를 따라 가주세요. 유튜브에선 여러 기능을 소개하다보니 내용이 헤깔리기도 해, 여기선 간단히 내용 정리하는 정도로 진행하겠습니다. 1. Github에서 패키지 받아오기 여긴 Github를 사용할 줄 아는 분이라면 쉬울거에요 터미널로 본인이 원하는 폴더에 들어간 후, 아래 코드를 입력해 패키지를 다운로드해 주세요 git clone https://github.com/HashLips/hashlips_art_engine.git 2. Dependencies 설치 1번이 끝났다면 아래와 같이 폴더가 하나 생겼을텐데요,.. 2022. 1. 5.
Hardhat에서 컨트랙트로 이더리움 송금하기 이번엔 Hardhat에서 테스트할 때, 내 월렛에서 컨트랙트로 이더리움을 보내는 방법을 알려드리겠습니다. 보내는 방법은 엄청 간단한데, 바로 코드부터 보시죠 const {ethers} = require("hardhat"); const mc = await ethers.getContractFactory("MyContract"); newContract = await mc.deploy(); const create1 = await newContract.doSomething({value: ethers.utils.parseEther("0.06")}); 먼저 Solidity로 만든 MyContract를 불러와 deploy합니다. 이렇게 만든 컨트랙트를 newContract라 부르도록 하겠습니다. 그 다음, myCont.. 2021. 12. 23.
Hardhat에서 테스트용 월렛 정보 받아오기 Hardhat은 Remix처럼 버튼 클릭으로 데이터를 받아오는 방식이 아니기에, 테스트용 월렛 정보를 받아오기 위해선 javascript를 사용해야 합니다. 바로 코드부터 확인하겠습니다. const {ethers, waffle} = require("hardhat") const provider = waffle.provider; const [ad1, ad2, ad3] = await ethers.getSigners(); console.log(ad1.address); console.log(ad2.address); const balance1 = await provider.getBalance(ad1.address); bal1 = ethers.utils.formatEther(balance1); console.log(.. 2021. 12. 23.
728x90