주식거래종류

마지막 업데이트: 2022년 5월 9일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
펀드는 주식 및 채권 등 여러 종목에 집중투자에 따른 위험을 줄일 수 있습니다.

주식거래 수수료 및 세금 총정리

자산 증식 수단으로 많은 분들이 주식투자를 하고 있을 텐데요. 주식은 거래를 할 때마다 매번 주식거래 수수료 및 세금을 납부하게 되는데요. 이러한 비용은 매번 지출해야 하는 비용임에도 불구하고, 의외로 주식거래 수수료 및 세금에 대해서 정확하게 알고 있는 분들은 많지 않은 것 같습니다. 그래서 준비를 해봤습니다. 이번 시간에는 국내 상장주식을 기준으로 주식거래 수수료 및 세금에 대해서 모두 총정리해서 안내해드리겠습니다.

주식거래 수수료 및 세금 종류

우리는 주식거래를 하면서 다음과 같은 주식거래 수수료 및 세금을 납부하게 됩니다.

  1. 거래수수료(주식거래 수수료)
  2. 유관기관 비용(유관기관 수수료)
  3. 증권거래세
  4. 양도소득세
  5. 배당소득세

주식거래 수수료

1) 거래수수료(주식거래 수수료)

는 '매매수수료', '증권사 수수료', '주식거래 수수료', '위탁수수료', '위탁거래수수료' 등 다양한 용어로 쓰이고 있는데 이 모든 것은 다 같은 말인데요. 거래수수료는 주식거래자가 증권사에게 주는 수수료를 말합니다. 즉, 우리들과 같은 일반 주식투자자가 증권사를 이용하는 대가로 주는 수수료인데요. 는 다음과 같은 특징이 있습니다.

  • 매수 ·매도 증권 1개라도 사고팔 때마다 내야 하는 수수료입니다.
  • 수수료율은 증권사마다 차이가 있지만, 보통 0.015% 정도로 수수료율이 높은 편은 아닙니다.

주식 거래수수료(증권사 수수료)는 증권사마다 모두 다른데 온라인 주식거래수수료 평생 우대(평생 무료) 이벤트를 하는 곳을 찾아 거래하시면 거래수수료를 아끼는데 많은 도움이 되실 겁니다. 현재('21년도 8월 기준) 주식거래 수수료 평생 우대 이벤트를 하고 있는 주식거래종류 증권사는 다음과 같습니다.

2) 유관기관 비용(유관기관 수수료)

은 '한국거래소'와 '예탁결제원'에 납부해야 하는 수수료인데요. 각각의 기관에 납부해야 하는 수수료는 다음과 같습니다.

  • 한국거래소 : 0.0027209%
  • 예탁결제원 : 0.0009187%
  • 합계 : 0.0036396%(주식거래종류 고정수수료)

앞서 설명했듯이, "유관기관 비용"은 "거래수수료(주식거래 수수료)"와 상관없이 무조건 "고정수수료(0.0036396%)"로 내야 하는 금액입니다. 최근 주식수수료 우대 이벤트를 많이 하고 있는데요. 하지만, 유관기관 비용(수수료)은 제외입니다.

미래에셋증권-광고

미레에셋증권

위에 있는 미래에셋증권 주식 거래 수수료 평생 우대 광고 페이지를 보면 온라인 국내 주식 거래 위탁수수료(주식거래 수수료) 평생 우대라고 되어 있지만, 괄호 안에 0.0036396%만 고객이 부담한다고 되어 있는 것을 확인할 수 있습니다.

  • 즉, 유관기관 비용은 증권사랑 상관없이 투자자가 납부해야 하는 금액입니다.

주식거래 수수료 및 유관기관 비용은 요율이 적기 때문에 주식 거래 시에 이러한 비용을 제대로 신경을 안 쓰는 경우가 있는데요. 그러나 투자자가 매수 · 매도할 때마다 수수료를 납부해야 하기 때문에, 주식 투자자의 수익률에서 약 0.03% 정도는 빼고 계산을 해야 합니다.

이러한 비용은 수익이 날 때뿐만 아니라, 주식 투자로 손해를 보고 있는 상황에도 무조건 납부해야 한다는 점도 꼭 알고 계셔야 하는 내용입니다. 그러므로, 단타매매를 많이 하시는 분들은 이러한 수수료 부분을 유의해서 거래하시길 바랍니다.

주식거래 세금

1) 증권거래세

는 주식을 매도할 때, 즉, 주식을 팔 때만 납부를 하는 세금인데요. 세금 부과는 주식을 매도할 때 그 가격을 기준으로 부과합니다. "증권거래세"는 투자자가 주식을 매도할 때 이익 또는 손실 여부에 상관없이 무조건 내야 하는 세금인데요. 증권거래세는 앞서 설명드린 "주식거래 수수료" 및 "유관기관 수수료"와 마찬가지로 매도할 때 자동으로 알아서 빠져나가게 됩니다.(원천징수) "증권거래세"는 정부에서 계속 인하를 해주고 있는데요. 이를 표로 정리하면 다음과 같습니다.

구분 '20년 '21년 ~ '22년 '23년 농어촌특별세
코스피 0.10% 0.08% 0.00% 0.15%
코스닥 0.25% 0.23% 0.15% -
코넥스 0.10% 0.10% 0.10% -
기타 0.45% 0.43% 0.35% -

※ 코스피는 '21년도 현재 "0.08% + 농어촌특별세 0.15%" 총 0.23%의 세금을 납부해야 합니다.

2) 양도소득세(양도세)

앞선 설명에서 알 수 있듯이, 증권거래세는 정부가 계속 인하를 해주고 있는데요. 그 대신에 양도소득세가 일반 개인투자자들에게도 도입이 됩니다. 양도소득세는 현재까지 "대주주"에게만 해당이 되는데요. "대주주"는 다음과 같은 조건을 충족한 경우 대주주라고 합니다.

  • 특정 종목의 주식을 1% 이상 보유(코스닥의 경우 2% 보유)
  • 특정 종목 주식 보유액이 10억 원 이상

이와 같은 대주주에게는 20~25%의 양도소득세를 부과하고 있는데요. 지금까지는 이렇게 대주주에게만 양도소득세를 부과하고 있지만, 2023년도부터는 소액 주주도 양도소득세를 납부해야 합니다.

정확한 명칭은 "금융투자소득세"라는 이름으로 새롭게 신설이 됩니다. "국내 주식 + 공모 주식형 펀드 수익 등" 이런 투자상품들로 한 해에 발생한 차익이 5천만 원 이하인 경우 비과세이고, 그 이상인 경우에는 20 ~ 25% 세율로 세금을 납부해야 합니다.

  • 수익 5천만 원 이하 : 비과세
  • 수익 5천만 원 초과 ~ 3억 원 이하 : 20%
  • 수익 3억 원 초과 : 25%

예를 들면, 국내 주식투자로 5억을 벌었다면 금융투자소득세(양도소득세)는 다음과 같습니다.

  • 5천만 원은 비과세이므로, 5천만 원은 공제
  • 5억 원 - 5천만 원 = 4억 5천만 원 × 25%(세율) = 1억 1,250만 원
  • 즉, 세금으로 1억 1,250만 원의 세금을 납부해야 합니다.

금융투자소득세는 매년 1년에 한 번 개인들이 5월 종합소득세 신고 때 신고를 하고 납부도 해야 합니다. 2023년도부터 납부해야 하는 세금이긴 하지만, 장기적으로 투자하는 분들도 많기 때문에 미리 이러한 내용을 알고 준비를 하시는 것이 현명한 투자자가 되는 길입니다.

  • 즉, 비과세가 적용되는 수익 5천만 원 이하로 분할 매도하는 전략 등을 활용해 보는 것도 좋을 것 같습니다.

3) 배당소득세

는 배당주에 투자를 하는 경우에만 해당이 되는데요. 본인이 투자한 회사가 이익이 발생한다면 그 이익의 일부를 주주들에게 지급하는 것을 배당금이라고 합니다.

여러분이 만약 주식 1주만 가지고 있더라도 여러분은 주주이므로 배당금을 받을 수 있습니다. 즉, 정기예적금 이자를 받듯이 배당금을 받을 수 있습니다. 하지만 국내 상장주식의 경우 모두 배당금을 주는 것은 아니니 확인해 볼 필요는 있습니다.

우리나라의 모든 세금은 소득이 있는 곳에 따라다니게 됩니다. 그러므로 배당금을 받아 소득이 발생했다면, 이 배당소득에 대해 배당소득세라는 세금을 납부해야 합니다.

배당소득세율은 총 15.4%인데요. 이 또한 배당금이 들어올 때 미리 배당소득세를 공제하고 받게 됩니다. 따라서 따로 신경 쓸 부분은 없지만, 배당소득이 2,000만 원을 초과한다면 다른 소득과 합산해서 종합소득세를 납부해야 합니다. 이러한 세금을 "금융소득 종합과세"라고 하는데, 금융소득이 많으신 분들은 이러한 부분도 신경을 많이 쓰셔야 합니다.

주식거래 수수료 및 세금 요약정리

지금까지 설명드린 주식거래 수수료 및 세금을 요약정리하면 다음과 같습니다.

  • 주식 매수 시 : "거래수수료(주식거래 수수료)" + "유관기관 비용"
  • 주식 매도 시 : "거래수수료(주식거래 수수료)" + "유관기관 비용" + "증권거래세"
  • 배당금 입금 시 : "배당소득세"

위에 설명드린 은 증권사가 알아서 자동으로 납부를 해줍니다. 다만, 2023년도부터는 주식 매도로 인한 수익이 5천만 원을 초과하는 경우, 주식투자자가 매년 5월에 자진신고를 통해 양도소득세를 신고 · 납부해야 한다는 점에 유의하시길 바랍니다. 이상으로 주식거래 및 수수료에 대해서 총정리하여 소개해 드렸습니다. 많은 도움이 되었으면 합니다.

주식의 주문 유형

거래량이 많지 않은 종목을 정했을 경우 호가 공백이 발생하여 가격 차이가 크게 날 가능성이 있습니다.

(매수할때는 조금 비싼 가격으로 체결되고, 매도할때는 조금 낮은 가격으로 체결이 될수있으니,

정말 급하지 않은경우에는 지정가로 주문하시는게 좋습니다.)

③ 조건부지정가 주문
조건부지정가 주문은 지정가 주문과 거의 흡사하다고 할 수 있습니다.
장중에 본인이 원하는 가격에 주문 체결이 안되었을시 장 마감 10분간의 동시호가 시간에

시장가 주문으로 전환해서 매매 주문을 넣는 방법입니다.
즉, 장중에 내가 원하는 가격이 오지 않아서 매매 성사가 안될시에, 그날의 종가로 매매가 체결되는 것입니다.

④ 최유리지정가 주문
주식 거래에 있어서 항상 투자자들은 매수를 할 때는 조금이라도 더 저렴하게,

매도를 할 때는 가장 비싸게 매도를 하려고하겠죠.

이 거래는 가격 자체를 유리하게 체결될 수 있도록 주문하는 방법입니다.
하지만 이 주문은 조금 까다롭습니다.
내가 주식을 매각하고자 할 때, 최유리지정가주문은 반대계정(즉, 매수가격 나열된 것들 중) 중에서

가장 높은 가격에 나의 매도주문이 나가는 것입니다.

즉, 내 체결에 최대로 유리한 가격에 주문이 나가는 것이죠.

내게 유리한 가격이지만, 내가 많은 물량을 매각해야할 때는 전량 처리가 쉽지 않습니다.

⑤ 최우선지정가 주문
최우선지정가 주문은 최유리지정가와 반대되는 방식이라고 생각하시면 됩니다.
매수할 땐 가장 비싸게 매수하고 매도할 때는 가장 저렴하게 매도하는
방식을 뜻합니다.
최유리지정가 주문 방법보다는 가격 면에서 불리한 면이 없지 않지만 체결될 확률이 높다는 장점이 있습니다.

⑥ IOC (Immediate-OR-Cancel Order)
호가의 접수시점에서 호가한 수량중 매매계약을 체결할 수 있는 수량에 대하여는 매매거래 성립시키고,

매매계약이 체결되지 아니한 수량은 취소하는 조건입니다.

⑦ FOK (Fill-Or-Kill Order)
호가의 접수시점에서 호가한 수량의 전부에 대하여매매계약을 체결할 수 있는 경우에는 매매거래를 성립시키고,

그렇지 않은 경우에는 당해수량의 전부를 취소하는 조건입니다.

주문이 접수된 조건이 충족되지 않을 경우 취소가 되므로 주문을 장이 종료될때까지 유지하고자 하신다면

IOC, FOK 주문은 사용하지 않는것이 맞습니다.

오늘은 주문유형에 대해 알아봤습니다.

사실 지정가랑 시장가를 많이 사용하고, 나머지는 사용을 잘 않하긴 해도, 어떤 주문이 있는지는 알 필요가 있겠죠?
오늘은 여기까지입니다~

주식 거래 시간과 거래 유형

안녕하세요~ 주식거래 시간과 유형에 대해 공부 해볼까 합니다~ 거래 시간과 유형과 거래되는 우선순위에 대해서 말씀드릴게요 거래 시간에 앞서 시가란 당일 최초로 체결된 거래가격을 시��

주식거래종류

주식 거래 시간 변경

주식 거래는 오전9시~오후3시까지라고 알고 있었는데(변경 후 오후3시 30분까지), 실제 이 시가는 '정규 거래 시간'입니다. 다양한 주식 거래 방법과 거래 방법에 따른 거래 가능 시간이 있습니다. 주식 거래 방법을 잘만 활용하면 하루 중 오전 7시30분부터 오후 6시까지 다양하게 거래가 가능합니다.

2016년8월1일부터 주식 거래시간이 변경됩니다. 거래시간 증가로 주식 시장을 활발히 하기 위해서라고 합니다. 변경된 내용은 아래와같습니다.

- 정규 거래시간 30분 증가
- 정규장(9시~15시→9시~15시30분), 파생상품시장(9시~15시15분→9시~15시45분)
- 장후 시간외 거래시간은 동일하게 18시로, 거래시간 30분 감소

- 장전 시간외 거래 시간 : 오전 7시30분 ~ 오전 8시30분
- 정규 거래 시간 : 오전 9시00분 ~ 오후 3시30분
- 장후 시간외 거래 시간 : 오후 3시40분 ~ 오후 6시00분

* 주식 거래 불가 날짜 : 주말(토요일,일요일), 공휴일, 1년 중 마지막 영업일(12월31일, 12월31일이 휴일이면 12월 마지말 영업일이 휴장)
* 1월2일은 보통 주식 거래시간보다 1시간 늦은 10시부터 시작하는 경우가 많음


1. 호가가 낮은 매도 주문과 호가가 높은 매수주문을 먼저 체결
2. 같은 호가라면 먼저 낸 주문을 체결
3. 호가가 같은 주문이 동시에 여러개 나올 경우 주문수량이 많은 사람부터 체결


원하는 종목의 수량과 가격을 지정하여 주문하는 방법으로, 가장 일반적인 방법입니다. 주문을 한 후, 가격이 맞으면 거래가 진행이 됩니다. 현재 시세와 맞지 않아 거래가 이루어지지 않으면 정정하여 주문을 다시 할 수 있습니다.


원하는 종목과 수량만을 지정하고, 가격은 시장에 형성되고 있는 가격으로 거래가 이루어지는 방법입니다. 주식을 살 때에는 시장에 나와있는 매도 주문 가격에 거래가 되고, 팔 때에는 시장에 나와있는 매수 주문 가격에 거래가 됩니다. 바로 거래가 진행되는 장점이 있지만 사는 쪽과 파는 쪽의 가격 차이가 클 때에는 불리한 조건에 거래가 되는 단점이 있습니다.


주식의 장이 서기 전에, 전일 종가로 매매하는 거래입니다.


주식의 장이 끝난 후에, 당일 종가로 매매하는 거래입니다.(단, 오후 3시30부터 3시40분까지는 주문 접수만 가능)

마이다스에셋자산운용

펀드는 투자자로부터 모은 자금을 자산운용회사가 주식 및 채권 등에 투자운용한 후 그 결과를 돌려주는 간접 투자상품입니다. 직접투자는 투자자가 주식이나 채권 등을 직접 골라서 투자하는 것이고, 간접투자는 자산운용회사가 운용하는 펀드에 투자자가 가입하는 것으로 펀드투자와 같은 의미입니다.

펀드의 정의

펀드의 종류

펀드의 종류

펀드의 종류 주식거래종류
구분 투자대상 펀드특징
증권펀드 주식형펀드 주식에 60%이상 투자고위험 고수익 추구
혼합형펀드 주식에 60% 이하 투자 채권투자의 안정성과 주식 투자의 수익성을 동시에 추구
채권형펀드 채권에 60% 이상 투자 안정적인 수익 추구
MMF 단기금융상품에 투자 수시 입출금이 가능한 펀드
파생상품펀드 선물, 옵션 등 파생상품에 투자 파생상품을 통한 구조화된 수익 추구
부동산펀드 부동산에 투자 환금성에 제약이 따르지만 장기투자를 통한 안정적 수익 추구
실물펀드 선박, 석유, 금 등 실물자산에 투자
특별자산펀드 수익원 및 출자지분 주식거래종류 등에 투자
재간접펀드 다른 펀드에 투자 다양한 성격과 특징을 가진 펀드에 분산투자

특수한 구조의 펀드

ELS펀드

ELS 펀드는 특정 주식의 가격이나 주가지수의 변동에 연동하여 투자수익이 결정되는 유가증권인 ELS(Equity Linked Securities : 주가연계증권)주식거래종류 에 주로 투자하는 펀드를 말합니다.

  • 문제시 될 수 있는 종목 제외 (관리종목, 자본잠식, 3년간 적자지속,회계감사 부적정 기업)
  • 업종 담당자들이 시가총액, 투자적합성 등을 고려하여 섹터별로 Midas Stock Universe 선정
  • 원금보존형 ELS 펀드도 원금보존을 추구할 뿐이며, 원금보자이 되는 것은 아닙니다.
  • ELS펀드는 다양한 수익구조를 가지기 때문에 가입 전에 투자설명서를 반드시 읽어보아야 합니다.
  • ELS펀드 수익률은 기초자산으로 편입된 주식의 주가나 주가지수에 큰 영향을 받기 때문에 향후 주가전망 등을 검토한 후 가입하시는것이 좋습니다.

폐쇄형펀드

  • 부동산 . 실물자산 . SOC 펀드는 간접투자자산운용업법상 환매금지형으로 설정하도록 되어 있으며, 특별자산펀드도 상품의 특성상 주로 환매금지형으로 설정되고 있습니다.
  • 개방형 펀드와는 달리 펀드의 만기가 있습니다. 폐쇄형펀드는 중도환매가 불가능하기 때문에 환금성을 높이기 위해 펀드 설정 후 90일 이내에 거래소시장에 상장하도록 되어 있습니다.
  • 폐쇄형펀드는 가입 후 일정기간 환매가 금지되기 때문에 장기간 투자 가능한 여유자금으로 투자하는 것이 좋습니다.
  • 폐쇄형펀드는 거래소에 상장되어 거래되고 있으나 일반펀드와 달리 펀드가치를 판단할 수 있는 기준가격이 매일 공시되지 않습니다.
  • 기존 수익자의 이익을 해할 우려가 없다고 수탁회사가 확인하거나 펀드의 이익분배금으로 재투자하는 경우에는 예외적으로 추가설정이 가능합니다.

멀티클래스 펀드

  • 하나의 펀드에서 판매보수 수수료가 다른 다양한 종류의 간접투자 증권을 발행함으로써 투자자가 투자자금의 규모 및 투자기간에 따라 선택할 수 있는폭이 넓습니다.
  • 투자자 그룹별로 보수.수수료 수준을 달리 정할 수 있으므로 투자자 별 성향에 맞는 맞춤형 설계가 가능합니다.
  • 보수.수수료 수준이 다른 소규모 펀드를 한 주식거래종류 펀드 내에 통합하여 운용할 수 있어 펀드의 대형화를 통해 운용효율을 높일 수 있습니다.

펀드의 장점

적은 돈으로도 쉽게 투자

분산투자로 인한 위험 감소

주식이나 채권 등에 투자하려면 목돈이 필요하지만 펀드는 적은 돈으로도 투자할 수 있습니다.

자산운용 전문가가 대신 투자

펀드는 주식 및 채권 등 여러 종목에 집중투자에 따른 위험을 줄일 수 있습니다.

자산운용 전문가가 대신 투자

주식, 채권 및 부동산 등에 전문지식 을 가진 전문인력(펀드매니저)이 투자 운용합니다.

펀드의 위험요소

한번에 전액을 펀드에 투자하기 보다는 일정 금액을 나누어 투자하고(투자시기의 분산), 증권시장은 장기적으로 가격 변동성이 감소하는 경향이 있으므로 펀드투자기간을 장기간으로 늘려야(투자기간의 장기화)위험을 줄일 수 있습니다.

펀드가 투자한(주식, 채권,
부동산 등)의 가격하락 위험

펀드가 투자한 주식, 채권 발행
기업의 부도 또는 파산 등의 위험

금리 상승 시 펀드가 투자한
채권의 가격하락 위험

환율변동에 따른 외화자산의
가치변동 위험

적립식 펀드

매입단가 평준화 효과

적립식 투자방식은 동일한 금액으로 투자하게 되므로 주가가 떨어지면 싼 가격에 많은 주식을 살 수 있고, 주가가 오르면 비싼 가격에 적은 수의 주식을 사게 되지만 장기간에 걸쳐 주식을 꾸준히 매입하므로 매입단가가 평준화되어 전체적으로는 투자위험을 낮추는 효과

적립식 펀드 투자의 장단점

  • 소액의 자금을 꾸준히 적립식으로 투자하여 목돈 마련 가능
  • 일시에 목돈을 투자하는 것보다 상대적으로 위험이 감소
  • 펀드가 투자한 자산(주식, 채권, 부동산 등)의 가격이 하락하면 원금손실의 가능성이 있음
  • 주식시장의 대세 상승기에는 일시에 목돈을 투자하는 것보다 수익률이 낮을 수 있음

펀드 관련 회사 및 업무

  • 고객으로부터 모은 자금을 주식, 채권 및 부동산 등에 투자. 운용하는 회사입니다. 현재 마이다스에셋자산운용과 같은 회사입니다.
  • 펀드 판매(가입.출금)업무를 담당하는회사로 증권회사, 은행, 보험회사, 선물회사 및 종합금융회사가 있습니다.
  • 펀드재산을 안전하게 보관.관리하고 자산운용회사의 펀드 운용을 감시하는 역할을 하는 회사로 은행과 금융이 담당하고 있습니다.
  • 집합투자증권은 운용결과에 따라 투자원금의 손실이 발생할 수 있으며, 그 손실은 투자자에게 귀속됩니다.
  • 집합투자증권은 예금자보호법에 따라 예금보호공사가 보호하지 않습니다.
  • 집합투자재산은 자본시장법에 의해 신탁업자에게 안전하게 보관, 관리되고 있습니다.
  • 집합투자증권을 가입하시기 전에 투자대상, 환매방법 및 보수 등에 주식거래종류 관하여 (간이)투자설명서를 반드시 읽어보시기 바랍니다.
  • 투자대상국가의 시장, 정치, 경제 상황 및 환율 변동 등에 따른 위험으로 자산가치의 손실이 발생할 수 있습니다.

(우)03175 서울특별시 종로구 경희궁길 20 T. 02.3787.3500 Copyright 주식거래종류 © 2016 MIDAS ASSET All rights are reserved.

강화 학습을 이용한 주식 거래 자동화

주식 시장에서 자주 들을 수 있는 말은 곰과 소다. 베어런(bearrun)은 장기간에 걸친 시장 가격 하락을 암시하는 용어이고, 불런(bull run)은 그 반대를 가리킨다. 이것들은 당일 거래를 거래하는 트레이더들이 사용하는 용어이다. 장중거래는 거래자가 같은 거래일 내에 금융상품을 사고팔아 그날 시장이 마감되기 전에 모든 시장 포지션이 폐쇄되는 증권 투기의 한 형태다. 많은 양의 금융상품이 인더데이 거래 방식을 통해 거래된다.

이것은 통상적인 무역 계획 및 뉴스 트렌드와 함께 작용해 왔다. 데이터 사이언스 및 머신 러닝의 등장으로, 다양한 연구 접근 방식이 이 수동 프로세스를 자동화하도록 설계되고 있다. 이 자동화된 거래 프로세스는 더 나은 계산을 통해 적시에 어드바이스를 제공하는 데 도움이 될 것이다. 뮤추얼 펀드와 헤지펀드는 최대 이익을 주는 자동화된 거래 전략이 매우 바람직하다. 예상되는 수익의 종류에는 어느 정도의 잠재적 위험이 따를 것이다. 수익성이 높은 자동화된 거래 전략을 설계하는 것은 복잡한 작업이다.

모든 사람은 주식 시장에서 최대한의 잠재력을 얻고 싶어한다. 대부분의 사람들에게 혜택을 줄 수 있는 균형 잡힌 저위험 전략을 설계하는 것 역시 매우 중요하다. 그러한 접근 방식 중 하나는 과거 데이터에 기반한 자동화된 거래 전략을 제공하기 위해 강화 학습 에이전트를 사용하는 것에 대해 말한다.

강화학습

강화 학습은 환경과 에이전트가 있는 머신 러닝의 일종이다. 이러한 에이전트는 보상을 최대화하기 위한 조치를 취한다. 강화 학습은 AI 모델 훈련을 위한 시뮬레이션에 사용될 때 매우 큰 잠재력을 가지고 있다. 데이터와 관련된 레이블은 없으며, 강화 학습은 매우 적은 데이터 포인트로 더 잘 학습할 수 있다. 이 경우 모든 결정은 순차적으로 내려진다. 가장 좋은 예는 로봇공학 및 게임학에서 주식거래종류 찾을 수 있다.

Q – 러닝

Q-러닝은 모델이 없는 강화 학습 알고리즘이다. 그것은 에이전트에게 상황에 따라 어떤 조치를 취해야 하는지 알려준다. 임박한 액션에 대한 정보를 에이전트에 제공하는 데 사용되는 값 기반 방법이다. q-러닝 함수가 임의의 작업을 수행하는 것과 같이 현재 정책 외부에 있는 동작에서 학습하므로 정책이 필요하지 않기 때문에 정책 외 알고리즘으로 간주된다.

Q 여기서 Q는 Quality를 나타낸다. 퀄리티는 조치된 보상이 얼마나 유익한지에 대한 행동 품질을 나타낸다. Q-테이블은 [state,action] 차원으로 작성된다. 에이전트는 exploit과 explore이라는 두 가지 방법으로 환경과 상호 작용한다. exploit 옵션은 모든 작업이 고려되고 환경에 최대값을 제공하는 작업이 수행됨을 나타낸다. explore 옵션은 미래의 최대 보상을 고려하지 않고 무작위 조치를 고려하는 옵션이다.

Q의 st과 at는 상태 s에서 수행되었을 때 최대 할인된 미래 보상을 계산하는 공식으로 표현된다.

정의된 함수는 훈련 주기 또는 반복 횟수가 끝날 때 최대 보상을 제공한다.

거래는 다음과 같은 콜을 할 수 있다. – 매수, 매도, 홀드

Q-러닝은 주식거래종류 각 동작에 대한 등급을 매기고 최대값을 가진 동작을 추가로 선택한다. Q-Learning은 Q-table의 값을 학습하는 것을 기반으로 한다. 보상 함수와 상태 전이 확률 없이 잘 작동한다.

주식거래 강화학습

강화 학습은 다양한 유형의 문제를 해결할 수 있다. 거래는 엔드 포인트가 없는 지속적인 작업이다. 거래 또한 부분적으로 관찰 가능한 마르코프 결정 과정이다. 왜냐하면 우리는 시장에서 거래자에 대한 완전한 정보를 가지고 있지 않기 때문이다. 보상 함수와 전이 확률을 모르기 때문에 모델 없는 강화 학습인 Q-Learning을 사용한다.

RL 에이전트를 실행하는 단계:

  1. 라이브러리 설치
  2. 데이터 가져오기
  3. Q-Learning 에이전트 정의
  4. 에이전트 훈련
  5. 에이전트 테스트
  6. 콜 플롯

라이브러리 설치

필요한 NumPy, Panda, Matplotlib, Seaborn 및 Yahoo finance 라이브러리를 설치하고 가져온다.

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

!pip install yfinance –upgrade –no-cache-dir

from pandas_datareader import data as pdr

import fix_yahoo_finance as yf

from collections import deque

Import tensorflow.compat.v1 as tf

데이터 가져오기

야후 파이낸스 라이브러리를 사용하여 특정 주식에 대한 데이터를 가져온다. 우리의 분석에 사용되는 주식은 인포시스 주식이다.

df_full = pdr.get_data_yahoo(“INFY”, start=”2018-01-01″).reset_index()

이 코드는 2년 동안의 INFY의 주가를 포함하는 df_full이라는 데이터 프레임을 생성한다.

Q-Learning 에이전트 정의

첫 번째 함수는 에이전트 클래스로 상태 사이즈, 윈도우 사이즈, 배치 사이즈, 사용된 메모리, 인벤토리를 리스트로 정의한다. 또한 epsilon, decay, gamma 등과 같은 일부 정적 변수를 정의한다. 두 개의 신경망 레이어는 매수, 홀드 및 매도 콜에 대해 정의된다. GradientDescent Optimizer도 사용된다.

에이전트에는 매수 및 매도 옵션에 대해 정의된 기능이 있다. get_state 및 act 함수는 신경망의 다음 상태를 생성하기 위해 신경망을 사용한다. 이후 콜 옵션을 실행함으로써 생성된 값을 더하거나 빼서 보상을 계산한다. 다음 상태에서 수행되는 작업은 이전 상태에서 수행된 작업의 영향을 받는다. 1은 매수 통화를 의미하고 2는 매도 통화를 의미한다. 모든 반복에서, 상태는 일부 주식을 매수하거나 매도하는 조치를 취하는 것에 기초하여 결정된다. 전체 보상은 총 이익 변수에 저장된다.

name = ‘Q-learning agent’

def __init__(self, state_size, window_size, trend, skip, batch_size):

self.half_window = window_size // 2

self.memory = deque(maxlen = 1000)

self.X = tf.placeholder(tf.float32, [None, self.state_size])

self.Y = tf.placeholder(tf.float32, [None, self.action_size])

feed = tf.layers.dense(self.X, 256, activation = tf.nn.relu)

self.logits = tf.layers.dense(feed, self.action_size)

self.cost = tf.reduce_mean(주식거래종류 tf.square(self.Y – self.logits))

def act(self, state):

self.sess.run(self.logits, feed_dict = )[0]

def get_state(self, t):

window_size = self.window_size + 1

d = t – window_size + 1

block = self.trend[d : t + 1] if d >= 0 else -d * [self.trend[0]] + self.trend[0 : t + 1]

for i in range(window_size – 1):

res.append(block[i + 1] – block[i])

def replay(self, batch_size):

for i in range(l – batch_size, l):

X = np.empty((replay_size, self.state_size))

Y = np.empty((replay_size, self.action_size))

states = np.array([a[0][0] for a in mini_batch])

new_states = np.array([a[3][0] for a in mini_batch])

Q = self.sess.run(self.logits, feed_dict = )

Q_new = self.sess.run(self.logits, feed_dict = )

for i in range(len(mini_batch)):

state, action, reward, next_state, done = mini_batch[i]

target[action] += self.gamma * np.amax(Q_new[i])

cost, _ = self.sess.run(

[self.cost, self.optimizer], feed_dict =

if self.epsilon > self.epsilon_min:

def buy(self, initial_money):

for t in range(0, len(self.trend) – 1, self.skip):

next_state = self.get_state(t + 1)

if action == 1 and initial_money >= self.trend[t] and t < (len(self.trend) – self.half_window):

print(‘day %d: buy 1 unit at price %f, total balance %f’% (t, self.trend[t], initial_money))

elif action == 2 and len(inventory):

invest = ((close[t] – bought_price) / bought_price) * 100

‘day %d, sell 1 unit at price %f, investment %f %%, total balance %f,’

% (t, close[t], invest, initial_money)

invest = ((initial_money – starting_money) / starting_money) * 100

total_gains = initial_money – starting_money

return states_buy, states_sell, total_gains, invest

def train(self, iterations, checkpoint, initial_money):

for i in range(iterations):

for t in range(0, len(self.trend) – 1, self.skip):

next_state = self.get_state(t + 1)

if action == 1 and starting_money >= self.trend[t] and t < (len(self.trend) – self.half_window):

elif action == 2 and len(inventory) > 0:

total_profit += self.trend[t] – bought_price

invest = ((starting_money – initial_money) / initial_money)

self.memory.append((state, action, invest,

batch_size = min(self.batch_size, len(self.memory))

if (i+1) % checkpoint == 0:

print(‘epoch: %d, total rewards: %f.3, cost: %f, total money: %f’%(i + 1, total_profit, cost,

에이전트 훈련

에이전트가 정의되면 에이전트를 초기화한다. 에이전트가 매수 또는 매도 옵션을 결정하도록 훈련할 반복 횟수, 초기 비용 등을 지정한다.

agent = Agent(state_size = window_size,

agent.train(iterations = 200, checkpoint = 10, initial_money = initial_money)

결과

에이전트 테스트

매수 함수는 매수, 매도, 이익, 투자 수치를 반환한다.

states_buy, states_sell, total_gains, invest = agent.buy(initial_money = initial_money)

콜 플롯

총 이득 대비 투자된 수치를 표시한다. 모든 매수 및 매도 콜은 신경망에서 제안하는 매수/매도 옵션에 따라 적절히 표시되었다.

fig = plt.figure(figsize = (15,5))

plt.plot(close, color=’r’, lw=2.)

plt.plot(close, ‘^’, markersize=10, color=’m’, label = ‘buying signal’, markevery = states_buy)

plt.plot(close, ‘v’, markersize=10, color=’k’, label = ‘selling signal’, markevery = states_sell)

plt.title(‘total gains %f, total investment %f%%’%(주식거래종류 주식거래종류 total_gains, invest))

결과

마무리

Q-러닝은 자동화된 거래 전략을 개발하는 데 도움이 되는 기술이다. 매수 또는 매도 옵션을 실험하는 데 사용할 수 있다. 실험할 수 있는 강화학습 거래 대행사가 많이 있다. 다른 종류의 RL 에이전트와 다른 주식으로 시도해보자.


0 개 댓글

답장을 남겨주세요