반응형
✔ 자동매매프로그램 만들기 - 실시간 수익률 계산하기
매매 수수료 계산 공식
안녕하세요.
주식을 매수하고 매도하면 수수료가 발생됩니다.
수수료를 생각하지않고 매수, 매도를 프로그램이 진행하면 수익구간으로 판단되어 손해를 보게되죠.
주식을 사고나면 사자마자 -0.25%가 나타납니다.
이는 거래수수료 = 매수수수료 + 매도수수료 + 증권세액이 반영되어서 그렇습니다.
매수수수료 : 매입금액 * 매매수수료(0.015%) => 모의투자는 매매수수료(0.35%)
매도수수료 : 매도금액 * 매매수수료(0.015%) => 모의투자는 매매수수료(0.35%)
증권세액 : 매도금액 * 증권거래세(0.23%)
위에서 보듯이 모의투자랑 실투자의 매매수수료차이는 엄청납니다... 이래서 모투로 성공하면 실투에서는 무조건 성공..
아래는 실시간 수수료를 계산하고 수익율을 반환하는 코드입니다.
다른 증권사를 사용하는 경우는 증권사의 매매수수료율을 확인하고 코드에서 매매수수료율의 값만 변경하시면됩니다.
● 실시간 수익률 계산 코드
이 공식은 매수하고나서 실시간으로 변동되는 현재가에 수익인지를 판단하기 위해 사용됩니다.
계산공식을 사용하면 가끔 오차율이 -10 ~ +10원 정도가 발생됩니다.(자리수 반올림이나 버림에서 조금 차이나는듯함)
키움증권에서 테스트했으며 증권사마다 다를 수 있습니다.
//키움증권 기준
public static float 모의매매수수료율 = 0.0035f;
public static float 매매수수료율 = 0.00015f;
//모든 증권사 동일
public static float 증권거래세 = 0.0023f;
/// <summary>
/// 실시간 수수료 계산
/// </summary>
/// <param name="p_buyCost"> 매입가격</param>
/// <param name="buyCnt"> 매입수량 </param>
/// <param name="p_currentCost">종목 현재가격</param>
/// <returns></returns>
public static float GetRevenue(float p_buyCost,int buyCnt, float p_currentCost)
{
float buyCost = p_buyCost * buyCnt;
//매수 수수료 1단위 삭제
int 매수수수료 = (int)(buyCost * 모의매매수수료율);
매수수수료 = 매수수수료 - 매수수수료 % 10;
//매도 수수료
float 현재보유금 = p_currentCost * buyCnt;
//실계좌로 할시 모의매매수수료율 -> 매매수수료율로 변경
float 매도수수료 = (int)(현재보유금 * 모의매매수수료율);
매도수수료 = 매도수수료 - 매도수수료 % 10;
float 증권세액 = (int)(현재보유금 * 증권거래세);
float 예상취득액 = 현재보유금 - 매도수수료 - 증권세액 - 매수수수료;
//수익률 계산
float 투자금대비 = 예상취득액 - buyCost;
float revenue = (float)Math.Round(투자금대비 / buyCost * 100, 2);
//수익률 반환
return revenue;
}
감사합니다.
반응형
'주식 자동매매 프로그램 제작 > 국내주식 자동매매' 카테고리의 다른 글
[C# 주식자동매매제작] 계좌 보유 주식 데이터 가져오기 (119) | 2022.04.26 |
---|---|
[C# 주식자동매매제작] 계좌 조회 및 예수금상세현황 조회하기 (270) | 2022.04.25 |
[C# 주식자동매매제작] 키움증권 Open API 신청 및 샘플프로젝트 받기 (424) | 2022.04.22 |
댓글