//order_price : if it specified with 0, order with market price //trade_cmd : sell / buy public int Request(XingSession sess, string trade_cmd, string acc_no, string acc_pw, string shcode, int order_qty, int order_price) { int ec = 0; CSPAT00600._CSPAT00600InBlock1 in_block = new CSPAT00600._CSPAT00600InBlock1(); in_block.AcntNo = Encoding.ASCII.GetBytes(acc_no.PadRight(20, ' ')); in_block.InptPwd = Encoding.ASCII.GetBytes(acc_pw.PadRight(8, ' ')); in_block.IsuNo = Encoding.ASCII.GetBytes(("A" + shcode.PadRight(12, ' '))); in_block.OrdQty = Encoding.ASCII.GetBytes(order_qty.ToString().PadLeft(16, '0')); in_block.OrdPrc = Encoding.ASCII.GetBytes(order_price.ToString().PadLeft(10, '0') + ".00"); if (trade_cmd == "sell") { in_block.BnsTpCode = System.Text.Encoding.ASCII.GetBytes("1"); } else { in_block.BnsTpCode = System.Text.Encoding.ASCII.GetBytes("2"); } //가격을 지정하지 않은경우 시장가로 주문한다 if (order_price == 0) { in_block.OrdprcPtnCode = Encoding.ASCII.GetBytes("03"); //시장가 in_block.OrdPrc = Encoding.ASCII.GetBytes("0000000000.00"); //시장가는 가격을 0으로 설정한다 } else { in_block.OrdprcPtnCode = Encoding.ASCII.GetBytes("00"); //지정가 } in_block.MgntrnCode = Encoding.ASCII.GetBytes("000"); in_block.LoanDt = Encoding.ASCII.GetBytes("".PadRight(8, ' ')); in_block.OrdCndiTpCode = Encoding.ASCII.GetBytes("0"); XingQuery query = new XingQuery(); query.TRCode = "CSPAT00600"; query.InBlock = in_block; query.ReceivedCB = new XingQuery.ReceivedFunc(this.ReceivedFunc); query.ErrorCB = new XingQuery.ErrorFunc(this.ErrorFunc); query.MessageCB = new XingQuery.MessageFunc(this.MessageFunc); ec = sess.Execute <CSPAT00600._CSPAT00600InBlock1>(query, false); if (ec < 0) { LogMsg("[CSPAT00600Req::Request] Execute fail. : ec(" + ec + ")"); return(-1); } return(0); }
//order_price : if it specified with 0, order with market price //trade_cmd : sell / buy public int Request(XingSession sess, string trade_cmd, string acc_no, string acc_pw, string shcode, int order_qty, int order_price) { int ec = 0; CSPAT00600._CSPAT00600InBlock1 in_block = new CSPAT00600._CSPAT00600InBlock1(); in_block.AcntNo = Encoding.ASCII.GetBytes(acc_no.PadRight(20, ' ')); in_block.InptPwd = Encoding.ASCII.GetBytes(acc_pw.PadRight(8, ' ')); in_block.IsuNo = Encoding.ASCII.GetBytes(("A" + shcode.PadRight(12, ' '))); in_block.OrdQty = Encoding.ASCII.GetBytes(order_qty.ToString().PadLeft(16, '0')); in_block.OrdPrc = Encoding.ASCII.GetBytes(order_price.ToString().PadLeft(10, '0') + ".00"); if (trade_cmd == "sell") { in_block.BnsTpCode = System.Text.Encoding.ASCII.GetBytes("1"); } else { in_block.BnsTpCode = System.Text.Encoding.ASCII.GetBytes("2"); } //가격을 지정하지 않은경우 시장가로 주문한다 if (order_price == 0) { in_block.OrdprcPtnCode = Encoding.ASCII.GetBytes("03"); //시장가 in_block.OrdPrc = Encoding.ASCII.GetBytes("0000000000.00"); //시장가는 가격을 0으로 설정한다 } else { in_block.OrdprcPtnCode = Encoding.ASCII.GetBytes("00"); //지정가 } in_block.MgntrnCode = Encoding.ASCII.GetBytes("000"); in_block.LoanDt = Encoding.ASCII.GetBytes("".PadRight(8, ' ')); in_block.OrdCndiTpCode = Encoding.ASCII.GetBytes("0"); XingQuery query = new XingQuery(); query.TRCode = "CSPAT00600"; query.InBlock = in_block; query.ReceivedCB = new XingQuery.ReceivedFunc(this.ReceivedFunc); query.ErrorCB = new XingQuery.ErrorFunc(this.ErrorFunc); query.MessageCB = new XingQuery.MessageFunc(this.MessageFunc); ec = sess.Execute<CSPAT00600._CSPAT00600InBlock1>(query, false); if (ec < 0) { LogMsg("[CSPAT00600Req::Request] Execute fail. : ec(" + ec + ")"); return -1; } return 0; }