INVESTAR / StockAnalysisInPython

456 stars 413 forks source link

8장 변동성 돌파전략 buy_etf( ) 질문입니다. #87

Open innerray opened 3 years ago

innerray commented 3 years ago

원본 code에서 매수량 buy_qty를 구하는데,

buy_qty = buy_amount // ask_price

로 구하고 있습니다.

또한, 매수 수량을 결정하기 위한 조건문이 if ask_price 로서, 매수호가가 존재하는지 검사하는데요.

구현하신 ETF 매수 주문 조건이 최유리 FoK 매수라면 최저 매도호가로 주문을 내는 것이므로.

if bid_price > 0:
    buy_qty = buy_amount // bid_price

로 해 주어야 할 것 같은데. 혹시 최저 매도호가가 아니라 최고 매수호가를 이용하신 다른 이유가 있는지 궁금합니다.

INVESTAR commented 3 years ago

제가 item['ask']를 매수 가격이라고 주석을 잘못 작성하였습니다. 즉, ask_price는 최저 매도 호가입니다.

innerray님이 말씀하신대로 매수자의 입장에서 제일 유리한 매수 가격은 최저 매도 호가가 맞습니다. 주석이 잘못 작성되어 있다보니 ask_price를 매수 호가로 헷갈리신 것 같은데, 코드 자체에는 문제가 없습니다.

다음 인쇄 때에는 주석을 아래처럼 수정하도록 하겠습니다.

def get_current_price(code):
    """인자로 받은 종목의 현재가, 매도호가, 매수호가를 반환한다."""
    cpStock.SetInputValue(0, code)  # 종목코드에 대한 가격 정보
    cpStock.BlockRequest()
    item = {}
    item['cur_price'] = cpStock.GetHeaderValue(11)   # 현재가
    item['ask'] =  cpStock.GetHeaderValue(16)        # 매도호가
    item['bid'] =  cpStock.GetHeaderValue(17)        # 매수호가    
    return item['cur_price'], item['ask'], item['bid']

잘못된 부분을 알려주셔서 감사합니다.