kquant API document (0.3.6)

handle_stock_merge

액면병합을 처리하는 함수

handle_stock_merge(
    ratio: 'int',
    df_position: 'pd.DataFrame',
) -> tuple[pd.DataFrame, float]
  • ratio (int): 병합비율
  • df_position (pd.DataFrame): 변환 전 포지션 정보 데이터프레임
  • 반환값 (tuple[pd.DataFrame, float]): 변환 후 포지션 정보 데이터프레임과 병합되지 못한 잔여 주식수(병합비율로 나눈 값)
예제 코드
import kquant as kq
df_result1, df_position1 = kq.backtest_update_stock_daily(
    "111870",
    30,
    "2023-08-16",
    init_cash=100_000,
)
[2023-08-16] 종목: 111870, 주문전 보유수량:      0 주문수량:     30, 매매수량:     30, 주문후 보유수량:     30
df_result1
DATE SYMBOL PRICE ORDER QTY TRADE_PRICE POSITION AVG_PRICE FEE TRADE_TAX SLIPPAGE CASHFLOW CASH HIST_VALUE STOCK_VALUE TOTAL_VALUE REAL_PROFIT UNREAL_PROFIT PROFIT HIGHWATERMARK DRAWDOWN
0 2023-08-16 111870 2,970 30 30 2,970 30 2,970.0000 0 0 0 -89,100 10,900 89,100 89,100 100,000 0 0 0 100,000 0
df_position1
DATE SYMBOL QTY TRADE_PRICE HIST_VALUE FEE NOT_DELETE
0 2023-08-16 111870 30 2,970 89,100 0 True
df_position1_adj, remainder = kq.handle_stock_merge(15, df_position1)
df_position1_adj
DATE SYMBOL QTY TRADE_PRICE HIST_VALUE FEE NOT_DELETE
0 2023-08-16 111870 2 44,550 89,100 0 True
remainder
0.0
df_result2, df_position2 = kq.backtest_update_stock_daily(
   "111870",
   0,
   "2023-08-17",
   df_result1,
   df_position1_adj,
)
[2023-08-17] 종목: 111870, 주문전 보유수량:      2 주문수량:      0, 매매수량:      0, 주문후 보유수량:      2
df_result2
DATE SYMBOL PRICE ORDER QTY TRADE_PRICE POSITION AVG_PRICE FEE TRADE_TAX SLIPPAGE CASHFLOW CASH HIST_VALUE STOCK_VALUE TOTAL_VALUE REAL_PROFIT UNREAL_PROFIT PROFIT HIGHWATERMARK DRAWDOWN
0 2023-08-16 111870 2,970 30 30 2,970 30 2,970.0000 0 0 0 -89,100 10,900 89,100 89,100 100,000 0 0 0 100,000 0
1 2023-08-17 111870 2,970 0 0 0 2 44,550.0000 0 0 0 0 10,900 89,100 5,940 16,840 0 -83,160 -83,160 100,000 83,160
df_position2
DATE SYMBOL QTY TRADE_PRICE HIST_VALUE FEE NOT_DELETE
0 2023-08-16 111870 2 44,550 89,100 0 True