*실행하기전 3) 글에서 config.yaml 설정해두는 것 필수! 차후 업데이트할 글들도 마찬가지이다.
Q) 해외주식 주야간원장구분조회가 뭐에요?
A) 실제계좌로 해외주식 주문체결내역을 API 호출로 조회하고자 할 때,
해외주식 주야간원장구분조회의 Response Body인 PSBL_YN(주야간 원장 구분)값이
Y(야간)일 경우 JTTT3001R 이용, N(주간)일 경우 TTTS3035R 이용
=> 요약: 미국 주식 API 호출 할 때 특정 API는 주야간에 따라 특정 파라미터값이 달라짐
그래서 주야간에 따라 파라미터값을 바꿔주기 위해 주야간을 먼저 확인하는 함수
import requests
import json
import yaml
with open(r'config.yaml', encoding='UTF-8') as f:
_cfg = yaml.load(f, Loader=yaml.FullLoader)
APP_KEY = _cfg['APP_KEY']
APP_SECRET = _cfg['APP_SECRET']
ACCESS_TOKEN = ""
CANO = _cfg['CANO']
ACNT_PRDT_CD = _cfg['ACNT_PRDT_CD']
ACTUAL_DOMAIN = _cfg['ACTUAL_DOMAIN']
# ACCESS TOKEN 발급
def get_access_token():
url = '/oauth2/tokenP'
request_url = f"{ACTUAL_DOMAIN}/{url}"
headers = {
}
body = {
"grant_type": "client_credentials",
"appkey": APP_KEY,
"appsecret": APP_SECRET,
}
res = requests.post(request_url, data=json.dumps(body), headers=headers)
rescode = res.status_code
if rescode == 200:
ACCESS_TOKEN = res.json()["access_token"]
else:
print("Error Code : " + str(rescode) + " | " + res.text)
return ACCESS_TOKEN
#한국계좌잔고 확인
def get_kor_balance():
url = "/uapi/domestic-stock/v1/trading/inquire-psbl-order"
request_url = f"{ACTUAL_DOMAIN}/{url}"
headers = {"Content-Type": "application/json",
"authorization": f"Bearer {ACCESS_TOKEN}",
"appKey": APP_KEY,
"appSecret": APP_SECRET,
"tr_id": "TTTC8908R", #실전투자값: TTTC8908R
"custtype": "P", #P: 개인
}
params = {
"CANO": CANO, #계좌번호
"ACNT_PRDT_CD": ACNT_PRDT_CD, #계좌번호 뒷자리
"PDNO": "005930", # 종목 코드 005930은 삼성
"ORD_UNPR": "65500", #1주당 가격
"ORD_DVSN": "01", # 01: 시장가
"CMA_EVLU_AMT_ICLD_YN": "Y", #CMA 평가금액포함여부: Y
"OVRS_ICLD_YN": "Y" #해외포함여부: Y
}
res = requests.get(request_url, headers=headers, params=params)
cash = res.json()['output']['ord_psbl_cash']
print(f"주문 가능 현금 잔고: {cash}원")
return int(cash)
#미국 주야간 확인
def check_day_or_night():
url = "/uapi/overseas-stock/v1/trading/dayornight"
request_url = f"{ACTUAL_DOMAIN}/{url}"
headers = {"Content-Type": "application/json",
"authorization": f"Bearer {ACCESS_TOKEN}",
"appKey": APP_KEY,
"appSecret": APP_SECRET,
"tr_id": "JTTT3010R",
"custtype": "P", #P: 개인
}
params = {
}
res = requests.get(request_url, headers=headers, params=params)
day_or_night = res.json()['output']['PSBL_YN']
print("주간야간여부:" + day_or_night)
return day_or_night
ACCESS_TOKEN = get_access_token()
#get_kor_balance()
check_day_or_night()
return 값은 주간이면 Y 아니면 N이다.
나스닥 장이 열렸으면 Y 닫혔으면 N 인 듯
반응형
'미국 주식 프로그램 만들기(KIS Developers) > 1. KIS Developer API 연동' 카테고리의 다른 글
6) 국내주식주문(현금매수) (2) | 2022.09.14 |
---|---|
5) 해외주식 매수가능금액조회(해외계좌잔고확인) (0) | 2022.09.13 |
3) 한국 계좌 잔고 확인 (3) | 2022.09.13 |
2) 접근 토큰발급 (0) | 2022.09.05 |
1) KIS Developers API 신청 (0) | 2022.08.14 |