Skip to content

공매도

3 posts with the tag “공매도”

공매도 데이터 분석하기

이번 포스트에서는 파이썬으로 공매도 데이터를 분석해 봅니다. 공매도 데이터 수집에 대해서는 이 포스트를 확인해 주세요.

공매도 거래, 공매도 잔고, 종목 정보 데이터를 가져옵니다. 이 부분은 개인적으로 사용하는 데이터베이스를 활용하므로 퀀티랩 카페에서 CSV 파일을 다운받아 사용하시기 바랍니다.

import pandas as pd
from quantylab.common.db.mongodb import MongoDBClient
coll = MongoDBClient.get_coll('short')
cursor = coll.find({'date': {'$gte': '20210601', '$lte': '20220114'}}, {'_id': 0, 'dt_update': 0, 'date_update': 0}, sort=[('date', -1)])
df_short = pd.DataFrame(list(cursor))
coll = MongoDBClient.get_coll('shortbalance')
cursor = coll.find({'date': {'$gte': '20210601', '$lte': '20220114'}}, {'_id': 0, 'dt_update': 0, 'date_update': 0}, sort=[('date', -1)])
df_shortbalance = pd.DataFrame(list(cursor))
coll = MongoDBClient.get_coll('stockcodes')
cursor = coll.find({}, {'_id': 0, 'code': 1, 'name': 1})
df_stockcodes = pd.DataFrame(list(cursor))

위에서 준비한 세 DataFrame을 합칩니다. 이 합친 데이터를 CSV 파일로 저장해 둡니다. 이 CSV 데이터를 카페에 올려 놓았습니다. 카페 가입하셔서 다운받으시고 질문도 해주시면 감사하겠습니다.

df = pd.merge(df_short, df_shortbalance[['code', 'date', 'bal_rto', 'bal_amt', 'bal_qty']], on=['code', 'date'], how='left')
df = pd.merge(df, df_stockcodes, on='code', how='left')
df = df[['name'] + df.columns.tolisZt()[:-1]]
df.to_csv('20220113_analysis_short.csv', index=False)

CSV 파일을 다운받으셨다면 다음 부분부터 직접 해보실 수 있습니다. 다음 코드는 CSV 파일을 불러오는 부분입니다.

import pandas as pd
str_columns = ['code', 'date']
df = pd.read_csv('20220113_analysis_short.csv', converters={k: lambda x: str(x) for k in str_columns})

code, date를 숫자로 읽는 것을 방지하기 위해서 converters 인자를 넣어줍니다. 그리고 다음 코드에서처럼 date로 정렬하고 % 단위를 떼고 NaN 값이 포함된 행을 버립니다.

df = df.sort_values(by='date')
# % 단위 떼기
df['short_ratio'] /= 100
df['bal_rto'] /= 100
df = df.dropna().copy()
namecodedateavg_priceavg_price_ratioclosediffdiffratioshort_amountshort_ratioshort_volumevolumebal_rtobal_amtbal_qty
LX홀딩스3838002021060111078-7811000500.46262140.0125910000000000012366218792880.034639000.03149.0
DB금융투자01661020210601721557220500.74120.0031695711801730.00.00.0
CJ제일제당097950202106014843271173485500-3000-0.611225350.04372530578950.002921517360000.044320.0
CJ씨푸드011150202106014819148201052.23223.8e-054511881320.00831435482760.0297818.0
BGF리테일28233020210601183995518400025001.38649500.0898383530392930.00070000000000000012272032000.012348.0
엠씨넥스0975202022011456312-125630038007.241411.9e-052513217200.00292909752900.051683.0
더블유게임즈192080202201145396623454200-400-0.73478510.104212000000000018867850860.013913883763600.0256158.0
PI첨단소재17892020220114527343665310010001.92345560.04419500000000000565531482750.008613446300600.0253226.0
포스코케미칼00367020220114129380620130000-2000-1.52940330.04343672681673250.0235236509260000.01819302.0
LG이노텍011070202201143810223478384500320009.0835523490.053839323217319870.00560000000000000150517917000.0131386.0

이 데이터에서 종목별로 상환 규모를 확인하고 공매도 거래량, 공매도 잔고, 상환 규모의 5일 이동평균을 구합니다. 이 과정은 몇 분 정도 걸릴 수 있습니다. 그래서 tqdm으로 진행율을 확인합니다.

from tqdm import tqdm
for k, g in tqdm(df.groupby('code')):
# 상환 규모 확인
# 당일 short_volume - (당일 bal_qty - 전일 bal_qty)
df.loc[df['code'] == k, 'bal_qty_diff'] = g['bal_qty'].diff()
df.loc[df['code'] == k, 'repay_volume'] = (df.loc[df['code'] == k, 'short_volume'] - df.loc[df['code'] == k, 'bal_qty_diff']).clip(0)
df.loc[df['code'] == k, 'repay_ratio'] = df.loc[df['code'] == k, 'repay_volume'] / df.loc[df['code'] == k, 'volume']
# 이동평균
df.loc[df['code'] == k, 'short_ratio_ma5'] = g['short_ratio'].fillna(0).rolling(5).mean()
df.loc[df['code'] == k, 'bal_rto_ma5'] = g['bal_rto'].fillna(0).rolling(5).mean()
df.loc[df['code'] == k, 'repay_ratio_ma5'] = df.loc[df['code'] == k, 'repay_ratio'] .fillna(0).rolling(5).mean()

이렇게 구한 repay_ratio_ma5로 내림차순 정렬을 해보면 다음과 같은 결과를 얻을 수 있습니다.

_df = df[df['date'] == '20220114'].sort_values(by='repay_ratio_ma5', ascending=False)
_df
namecodedateavg_priceavg_price_ratioclosediffdiffratioshort_amountshort_ratioshort_volumevolumebal_rtobal_amtbal_qtybal_qty_diffrepay_volumerepay_ratioshort_ratio_ma5bal_rto_ma5repay_ratio_ma5
BGF리테일28233020220114145501-1501144000-2000-1.371887430.3144512972412530.00133342384000.023211.04353.08619.00.208930259617482380.242506399999999980.00130000000000000020.2374309360178176
세방전지0044902022011469346-14669200-1800-2.54223220.0946353219340150.019118506225200.0267431.0-6377.09596.00.28211083345582830.10481040.020260.22422523200232863
호텔신라00877020220114773049677400-1100-1.45945430.222531769103456150.0717217719311400.02812911.083286.00.00.00.2711130.069780000000000010.2142213088295697
금호석유화학01178020220114174115-11517400025001.462938540.075005168772250110.05263459838000.01514137.0-44184.061061.00.27136895529551890.07733960.05190.20765174156183894
효성첨단소재29805020220114532588412533000-8000-1.483140670.1590775897370700.014735143888000.065936.015093.00.00.00.15405920.013160.18448044554531187
콤텍시스템031820202201149570957-16-1.6419e-0689371840.0011123620475.0129175.00.08.08.536210605388056e-064.259999999999999e-050.00109999999999999984.258825517099485e-05
TCC스틸00271020220114129500129508006.5830.0250848320.00.00.00.02.03.933266625131371e-073.48e-050.03.473958840739652e-05
미래산업025560202201141365010013750-350-2.4812.5e-051397060.00.00.00.01.02.518511056263537e-052.46e-050.02.4705969543888606e-05
이스타코01502020220114310503105-110-3.4215.999999999999999e-0647216860.00.00.00.04.05.542576688476706e-062.3000000000000024e-050.02.2816870909533658e-05
오리엔트바이오00263020220114131551320201.5400.0124794550.0013198262680.0150199.00.01.04.033144380519106e-075.200000000000005e-060.00135.125393445035716e-06

이 종목들 중에서 공매도 상환율이 높은 상위 5개 종목을 살펴보겠습니다.

1

최근 공매도 거래가 높은데 공매도 잔고는 크게 늘지 않고 유지되고 있습니다. 즉, 공매도 상환율도 높은 상황입니다. 공매도자들의 판단이 엇갈리고 있다고 보이는 지점입니다.

2

공매도 거래는 꾸준히 있는데 공매도 잔고가 떨어지고 있습니다.

3

11월에 어닝쇼크로 공매도 잔고가 급격하게 늘었습니다. 이후 공매도 거래는 많은데 공매도 잔고는 조금씩 오르는 모습입니다.

4

공매도 잔고가 꾸준히 늘다가 최근 하락 전환하는 모습입니다.

5

최근 공매도 거래가 상당한 상황입니다.

KRX에서 공매도 데이터 수집하기

이번 포스트에서는 KRX에서 개별종목 공매도 거래개별종목 공매도 잔고 데이터를 파이썬으로 수집하는 방법을 다룹니다.

필요한 파이썬 라이브러리는 다음과 같습니다.

  • pip install requests
  • pip install numpy
  • pip install pandas

먼저 KRX 정보데이터시스템에서 다음 두 메뉴를 확인해 주세요.

  • 통계 / 공매도 통계 / 공매도 거래 / 개별종목 공매도 거래
  • 통계 / 공매도 통계 / 공매도 잔고 / 개별종목 공매도 잔고

개별종목 공매도 거래 데이터 수집하기

Section titled “개별종목 공매도 거래 데이터 수집하기”

먼저 개별종목 공매도 거래 데이터를 받아오겠습니다. 크롬이나 웨일 브라우저에서 F12 키를 눌러 개발자 도구를 열어줍니다. 그리고 다음과 같이 Network 탭에서 Fetch/XHR 하위 탭을 확인합니다. 그리고 조회 버튼을 다시 누르면 아래에 getJsonData.cmd 내역이 뜨고 여기서 요청 정보를 확인할 수 있습니다.

1

여기서 Request URL, Request Headers, Form Data를 확인합니다. 다음과 같이 확인한 정보로 요청 준비를 합니다.

url = 'http://data.krx.co.kr/comm/bldAttendant/getJsonData.cmd'
headers = {
'Accept': 'application/json, text/javascript, */*; q=0.01',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7',
'Connection': 'keep-alive',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'Host': 'data.krx.co.kr',
'Origin': 'http://data.krx.co.kr',
'Referer': 'http://data.krx.co.kr/contents/MDC/MDI/mdiLoader/index.cmd?menuId=MDC0203',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.118 Whale/2.11.126.23 Safari/537.36',
'X-Requested-With': 'XMLHttpRequest',
}
data = [
('bld', 'dbms/MDC/STAT/srt/MDCSTAT30101'),
('searchType', '1'),
('mktId', 'STK'),
('secugrpId', 'STMFRTSCIFDRFS'),
('secugrpId', 'SRSW'),
('secugrpId', 'BC'),
('inqCond', 'STMFRTSCIFDRFSSRSWBC'),
('trdDd', '20211105'),
('share', '1'),
('money', '1'),
('csvxls_isNo', 'false'),
]

이렇게 준비한 url, headers, data로 requests 요청을 보냅니다. Request Method를 보면 POST를 확인할 수 있습니다.

import requests
res = requests.post(url, headers=headers, data=data)
res
Output: <Response [200]>

Status Code가 200으로 요청이 성공했음을 확인했습니다. 다음으로 받아온 데이터를 DataFrame으로 저장합니다.

import json
short_list = json.loads(res.text)['OutBlock_1']
import pandas as pd
df = pd.DataFrame(short_list)
df.columns = ['종목코드', '종목명', '증권구분', '공매도거래량', '공매도거래량업틱룰', '공매도거래량업틱룰예외', '거래량', '거래량비중', '공매도거래대금', '공매도거래대금업틱룰', '공매도거래대금업틱룰예외', '거래대금', '거래대금비중']
df
index종목코드종목명증권구분공매도거래량공매도거래량업틱룰공매도거래량업틱룰예외거래량거래량비중공매도거래대금공매도거래대금업틱룰공매도거래대금업틱룰예외거래대금거래대금비중
0095570AJ네트웍스주권00059,7390.00000335,609,2800.00
1006840AK홀딩스주권00020,2250.00000508,366,0000.00
2027410BGF주권147,2900147,2908,276,9041.78959,076,1300959,076,13054,013,149,7701.78
3282330BGF리테일주권1,4801,4027822,4896.58244,731,000231,828,50012,902,5003,734,658,0006.55
4138930BNK금융지주주권54,96254,96202,228,7702.47463,644,520463,644,520018,819,972,0802.46
1028069260휴켐스주권72,49872,0734251,137,3256.371,919,680,5501,908,522,05011,158,50030,290,522,8506.34
1029000540흥국화재주권00083,2810.00000318,332,1400.00
1030000547흥국화재2우B주권0001920.000005,323,0000.00
1031000545흥국화재우주권0009880.000008,514,7700.00
1032003280흥아해운주권0001,114,0590.000003,560,429,5450.00

거래량비중으로 내림차순 정렬을 해보면 공매도 비중이 높은 종목 순위를 확인할 수 있습니다.

df.sort_values('거래량비중', ascending=False)
index종목코드종목명증권구분공매도거래량공매도거래량업틱룰공매도거래량업틱룰예외거래량거래량비중공매도거래대금공매도거래대금업틱룰공매도거래대금업틱룰예외거래대금거래대금비중
51294870HDC현대산업개발주권54,93554,9350562,4339.771,353,057,7501,353,057,750013,880,230,4009.75
1004008770호텔신라주권66,04056,3889,652684,4589.655,269,414,8004,501,247,500768,167,30054,557,366,5009.66
800039490키움증권주권4,5614,07149047,2999.64484,180,000432,296,50051,883,5005,018,881,5009.65
813003240태광산업주권676706979.6166,460,00066,460,0000692,149,0009.60
940180640한진칼주권5,5874,96162658,8329.50315,127,600279,921,10035,206,5003,317,193,8009.50
433007210벽산주권2023,489,8850.008,06008,06014,442,649,3350.00
434002760보락주권000230,6080.00000490,745,8650.00
436000890보해양조주권0001,282,0730.000001,233,822,7750.00
438001270부국증권주권0006,8280.00000166,036,9500.00
1032003280흥아해운주권0001,114,0590.000003,560,429,5450.00

그런데 조금 이상합니다. 거래량비중이 생각보다 적고 9.XX 값이 상위에 랭크됩니다. 이는 데이터 형식이 문자열(str)로 되어 있을 때 자주 겪는 문제입니다. 다음과 같이 거래량비중 컬럼의 데이터 형식을 float로 변경합니다.

df['거래량비중'] = df['거래량비중'].astype(float)

다시 정렬 결과를 확인하면 다음과 같이 제대로된 랭킹이 된 것을 확인할 수 있습니다.

df.sort_values('거래량비중', ascending=False)
index종목코드종목명증권구분공매도거래량공매도거래량업틱룰공매도거래량업틱룰예외거래량거래량비중공매도거래대금공매도거래대금업틱룰공매도거래대금업틱룰예외거래대금거래대금비중
539068270셀트리온주권150,827133,03017,797488,77930.8631,363,423,00027,715,592,5003,647,830,500101,280,970,50030.97
1024081660휠라홀딩스주권161,370160,878492665,89024.235,958,633,4505,940,402,90018,230,55024,692,808,60024.13
673214320이노션주권6,9946,85613830,81022.70403,284,700395,322,1007,962,6001,776,867,00022.70
382011170롯데케미칼주권45,95634,17611,780206,11622.3010,110,596,0007,520,623,0002,589,973,00045,414,691,50022.26
240002350넥센타이어주권27,71225,1762,536125,20422.13208,348,430189,322,06019,026,370941,065,64022.14
433007210벽산주권2023,489,8850.008,06008,06014,442,649,3350.00
434002760보락주권000230,6080.00000490,745,8650.00
436000890보해양조주권0001,282,0730.000001,233,822,7750.00
438001270부국증권주권0006,8280.00000166,036,9500.00
1032003280흥아해운주권0001,114,0590.000003,560,429,5450.00

개별종목 공매도 잔고 데이터 수집하기

Section titled “개별종목 공매도 잔고 데이터 수집하기”

이제 개별종목 공매도 잔고 데이터를 받아 보겠습니다. 비슷하게 요청 준비를 합니다.

url = 'http://data.krx.co.kr/comm/bldAttendant/getJsonData.cmd'
headers = {
'Accept': 'application/json, text/javascript, */*; q=0.01',
'Accept-Language': 'ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'Origin': 'http://data.krx.co.kr',
'Referer': 'http://data.krx.co.kr/contents/MDC/MDI/mdiLoader/index.cmd?menuId=MDC0201',
}
data = [
('bld', 'dbms/MDC/STAT/srt/MDCSTAT30501'),
('searchType', '1'),
('mktTpCd', '1'),
('trdDd', '20211102'),
('share', '1'),
('money', '1'),
('csvxls_isNo', 'false'),
]
res = requests.post(url, headers=headers, data=data)
res
Output: <Response [200]>

다음과 같이 받아온 데이터를 DataFrame으로 변환합니다.

df_shortbalance = pd.DataFrame(json.loads(res.text)['OutBlock_1'])
df_shortbalance
indexISU_CDISU_ABBRVBAL_QTYLIST_SHRSBAL_AMTMKTCAPBAL_RTO
0095570AJ네트웍스34,25546,822,295190,115,250259,863,737,2500.07
1006840AK홀딩스4,59313,247,561121,484,850350,397,988,4500.03
2027410BGF48,44095,716,791279,014,400551,328,716,1600.05
3282330BGF리테일5,01617,283,906825,132,0002,843,202,537,0000.03
4138930BNK금융지주524,715325,935,2464,601,750,5502,858,452,107,4200.16
934069260휴켐스953,65840,878,58826,320,960,8001,128,249,028,8002.33
935000540흥국화재33,30164,242,645129,540,890249,903,889,0500.05
936000547흥국화재2우B0153,60004,331,520,0000.00
937000545흥국화재우0768,00006,673,920,0000.00
938003280흥아해운84,187240,424,899311,070,965888,370,001,8050.04
df_shortbalance.columns = ['종목코드', '종목명', '공매도잔고수량', '상장주식수', '공매도잔고금액', '시가총액', '비중']
df_shortbalance
index종목코드종목명공매도잔고수량상장주식수공매도잔고금액시가총액비중
0095570AJ네트웍스34,25546,822,295190,115,250259,863,737,2500.07
1006840AK홀딩스4,59313,247,561121,484,850350,397,988,4500.03
2027410BGF48,44095,716,791279,014,400551,328,716,1600.05
3282330BGF리테일5,01617,283,906825,132,0002,843,202,537,0000.03
4138930BNK금융지주524,715325,935,2464,601,750,5502,858,452,107,4200.16
934069260휴켐스953,65840,878,58826,320,960,8001,128,249,028,8002.33
935000540흥국화재33,30164,242,645129,540,890249,903,889,0500.05
936000547흥국화재2우B0153,60004,331,520,0000.00
937000545흥국화재우0768,00006,673,920,0000.00
938003280흥아해운84,187240,424,899311,070,965888,370,001,8050.04

이번에는 비중 컬럼으로 내림차순 정렬을 해봅니다. 마찬가지로 문자열 정렬 문제가 있을 수 있으므로 이 컬럼을 float으로 변환하고 정렬합니다.

df_shortbalance['비중'] = df_shortbalance['비중'].astype(float)
df_shortbalance.sort_values('비중', ascending=False)
index종목코드종목명공매도잔고수량상장주식수공매도잔고금액시가총액비중
78034220LG디스플레이28,935,291357,815,700568,578,468,1507,031,078,505,0008.09
339032350롯데관광개발4,726,86769,275,66294,300,996,6501,382,049,456,9006.82
910008770호텔신라2,462,55739,248,121198,974,605,6003,171,248,176,8006.27
46011200HMM20,968,085405,392,487574,525,529,00011,107,754,143,8005.17
523019170신풍제약2,499,52752,984,990128,225,735,1002,718,129,987,0004.72
313030720동원수산04,653,805045,886,517,3000.00
315014825동원시스템즈우0265,35808,809,885,6000.00
644000230일동홀딩스011,540,4000156,949,440,0000.00
316163560동일고무벨트013,900,0000116,760,000,0000.00
261006340대원전선071,016,9670142,033,934,0000.00

공매도 거래와 공매도 잔고 데이터 합치기

Section titled “공매도 거래와 공매도 잔고 데이터 합치기”

이제 두 데이터를 합쳐서 확인해 보겠습니다. df는 공매도 거래 데이터이고 df_shortbalance는 공매도 잔고 데이터입니다. 이들 둘을 pandas merge() 메소드로 합치겠습니다.

_df = df.merge(df_shortbalance, how='outer', on='종목코드', suffixes=('', '_dup'))

이 데이터로 다양한 분석을 해볼 수 있겠습니다. 여기서는 공매도 잔고는 많으면서 공매도 거래는 적은 순으로 정렬해 봅니다.

_df['score'] = _df['비중'] / (_df['거래량비중'] + 1)
_df.sort_values('score', ascending=False)
index종목코드종목명증권구분공매도거래량공매도거래량업틱룰공매도거래량업틱룰예외거래량거래량비중공매도거래대금공매도거래대금업틱룰공매도거래대금업틱룰예외거래대금거래대금비중종목명_dup공매도잔고수량상장주식수공매도잔고금액시가총액비중score
97034220LG디스플레이주권4,4202,2902,1301,949,1940.2389,668,95046,585,15043,083,80039,626,663,8000.23LG디스플레이28,935,291357,815,700568,578,468,1507,031,078,505,0008.096.577236
620097520엠씨넥스주권3003083,6760.041,333,05001,333,0503,713,085,8500.04엠씨넥스435,40917,963,28219,332,159,600797,569,720,8002.422.326923
370032350롯데관광개발주권17,56716,928639882,3321.99324,702,700312,941,65011,761,05016,281,919,2501.99롯데관광개발4,726,86769,275,66294,300,996,6501,382,049,456,9006.822.280936
699006490인스코비주권67506751,384,4220.052,285,32002,285,3204,702,224,2550.05인스코비1,824,640109,848,1006,541,334,400393,805,438,5001.661.580952
578003620쌍용차주권00000.0000000.00쌍용차2,180,965149,840,0026,041,273,050415,056,805,5401.461.460000
98375701B93현대유퍼스트부동산25호 A수익증권00000.0000000.00NaNNaNNaNNaNNaNNaNNaN
98475702B93현대유퍼스트부동산25호 C-i수익증권00000.0000000.00NaNNaNNaNNaNNaNNaNNaN
98575701BA7현대유퍼스트부동산30호[파생형] A수익증권00000.0000000.00NaNNaNNaNNaNNaNNaNNaN
98675702BA7현대유퍼스트부동산30호[파생형] C-i수익증권00000.0000000.00NaNNaNNaNNaN

공매도 잔고가 많다는 것은 다시 상환해야 할 물량이 많다는 것이고 동시에 공매도 거래 비중이 적다면 주가가 바닥에 가까워 졌다고 추측해 볼 여지가 있습니다. 주식 거래에서 확실한 것은 없습니다. 다양한 금융데이터 분석을 통해 성공적인 투자에 한걸음씩 다가가는 것이 중요하다고 봅니다.

[2021-08-13] 공매도 상위 종목 살펴보기

공매도는 주식을 빌려서 파는 행위를 말합니다. 주가가 하락한다는 쪽에 베팅하는 것입니다. 이러한 베팅을 숏(Short) 포지션 취한다고 합니다. 주가가 하락할 것이라고 예상하고 주식을 빌려서 현재 가격에 매도하고 주가가 떨어졌을 때 다시 매수해서 빌린 주식을 갚는 것입니다.

공매도는 2020년 3월에 주가 급락을 막기 위해 금지됐었습니다. 그렇게 1년 2개월간 금지된 공매도가 2021년 5월에 재개됐습니다. 공매도는 개인투자자들이 하기 어렵고 그만큼 개인투자자들의 공매도에 대한 부정적인 인식이 강합니다.

공매도가 많다고 해서 주가가 꼭 하락한다는 보장은 없지만 공매도의 현황을 파악해 놓는 것은 중요하다고 생각합니다. 공매도의 추세가 증가하면 가급적 매수를 자제하는 것이 좋다고 생각합니다. 다만 공매도가 많다가 줄어드는 추세이고 대차잔고가 많은 상태면 주가가 바닥권이라는 예측을 해볼 수도 있습니다. 대차잔고는 주식을 빌리고 아직 갚지 않은 주식 수를 의미합니다. 즉, 대차잔고만큼 앞으로 매수가 이뤄질 것이란 의미입니다.

퀀티랩 종목지표/공매도 메뉴에서 종목별 공매도 현황을 표로 확인할 수 있습니다.

이 포스트에서는 2021-08-13 기준으로 공매도율, 대차잔고율, 대차잔고액 순위를 살펴보겠습니다.

종목명주가등락율(%)공매도액(만원)공매도율(%)대차잔고액(만원)대차잔고율(%)
티씨케이173,400-1.64137,55625.57  
넷마블127,000-3.791,398,73025.519,808,5330.85
하림지주9,580-1.5465,51022.83  
SK머티리얼즈432,000-1.5508,95921.26  
휴온스61,400-1.7676,52719.85  
금호석유화학192,500-2.531,408,19318.8814,948,0292.48
엔씨소프트786,000-2.481,563,72318.77,751,7090.43
리노공업172,4000.17151,01818.69  
CJ대한통운165,500-2.07189,09718.43845,5910.22
GS리테일33,200-1.92443,43218.12711,7630.2
고영23,450-2.0984,65917.43  
주성엔지니어링13,050-1.14326,58817.19  
SK텔레콤306,000-2.081,344,42217.128,681,7190.4
동국제약24,700-1.7971,29817.11  
팬오션7,410-4.391,044,21716.944,016,5251.03
하나투어75,600-2.45265,63316.831,204,7801.09
S-Oil93,800-1.37360,71916.512,908,9250.28
제일기획23,200-0.22108,40615.71429,8280.16
이오테크닉스112,700-3.1153,84315.5  
한화솔루션38,700-2.27564,86715.4112,955,9341.7
종목명주가등락율(%)공매도액(만원)공매도율(%)대차잔고액(만원)대차잔고율(%)
롯데관광개발18,900-2.0756,8846.669,874,8717.25
LG디스플레이20,800-3.48971,07811.9750,027,6426.31
신풍제약66,800-6.96867,6693.5914,668,3194.31
HMM39,150-3.69100,3460.4564,919,6674.13
엠씨넥스45,500-1.62270.003,234,9843.81
삼성중공업6,170-2.68179,1775.7315,810,5893.73
OCI107,000-3.60178,2872.698,522,1113.18
셀트리온275,500-2.13960,1994.45112,924,1253.03
부광약품20,400-2.8665,7163.804,234,1882.84
일양약품34,150-1.7331,3177.041,721,0902.58
호텔신라90,000-2.39313,5536.939,290,9012.57
금호석유화학192,500-2.531,408,19318.8814,948,0292.48
두산퓨얼셀48,400-2.2238,5711.538,021,7492.43
한전기술48,150-3.8942,4562.393,857,6091.99
GKL15,700-1.2643,6218.021,931,8801.93
삼양식품87,800-0.7919,8586.281,279,7201.90
인스코비4,32514.578800.01686,1711.79
씨에스윈드80,100-2.44300,5558.815,912,2981.77
CJ CGV28,750-2.8746,4652.571,942,7591.72
한화솔루션38,700-2.27564,86715.4112,955,9341.70
종목명주가등락율(%)공매도액(만원)공매도율(%)대차잔고액(만원)대차잔고율(%)
셀트리온275,500-2.13960,1994.45112,924,1253.03
HMM39,150-3.69100,3460.4564,919,6674.13
LG디스플레이20,800-3.48971,07811.9750,027,6426.31
현대자동차217,000-0.91654,3723.5132,678,4790.70
삼성바이오로직스983,0001.13683,4054.8120,547,0590.33
아모레퍼시픽220,500-1.78388,53610.8317,527,9871.32
삼성중공업6,170-2.68179,1775.7315,810,5893.73
금호석유화학192,500-2.531,408,19318.8814,948,0292.48
LG생활건강1,444,0001.62498,0127.0614,773,6560.66
신풍제약66,800-6.96867,6693.5914,668,3194.31
SK이노베이션248,5002.691,440,1985.3214,506,4950.65
LG화학896,0002.051,345,0333.7914,318,3710.24
한화솔루션38,700-2.27564,86715.4112,955,9341.70
카카오146,000-1.022,591,3428.2912,739,6100.20
포스코케미칼155,0001.311,070,66114.5512,592,2281.05
한국조선해양119,000-0.8393,6402.2510,713,9721.22
롯데관광개발18,900-2.0756,8846.669,874,8717.25
두산중공업20,800-4.15215,1781.679,809,8390.89
넷마블127,000-3.791,398,73025.519,808,5330.85
삼성전자74,400-3.3813,590,0493.009,771,2790.02

여기서 대차잔고액은 높은데 공매도율은 낮은 종목으로는 HMM이 있습니다. HMM의 공매도 흐름을 살펴보면 다음과 같습니다.

HMM 공매도

7월달을 보면 공매도율이 무려 25% 가까이 있었다는 것을 알 수 있습니다. 이 공매도 물량을 언제 상환할 지는 모르겠지만 최근 공매도율은 낮아진 것으로 보입니다.

여기에 BDI 역시 높은 상황이라 HMM이 다시 올라갈 여지도 있어 보입니다.

BDI