커뮤니티

손절문의.

프로필 이미지
sc2018
2018-06-26 10:04:50
1916
글번호 224490
답변완료
예스스팟으로 당일 개별종목 매매하고 있습니다. 개별종목 매수 하자 마자 5% 익절을 걸어 놓고 있습니다. 3%손절선을 걸고 싶습니다. 신규편입종목 stop 주문 실행을 걸어놨는데 익절 주문이 들어간 상태라 매도주문이 불가능하다고 뜹니다. 1. 예스스팟 안에서 로직을 수정해야 한다면 예시 부탁드립니다. 2. 신규편입종목 stoploss에서 옵션(이전 주문 취소 후 시장가 매도 등)으로 가능하다면 설명 부탁드립니다.
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-07-13 15:58:13

안녕하세요 예스스탁입니다. 사용하시는 종목검색에 아래내용 참고하셔서 추가해서 구현하시기 바랍니다. 기존에 사용하시는 스팟수식이 매수후 익절처리를 하는 내용이시므로 종목객체는 준비가 되어 잇는 것으로 판단하고 그 이후의 내용입니다. 종목객체의 시세가 업데이될때마다 현재 시세업데이트 된 종목의 객체를 찾고 잔고셋팅해서 현재가가 평단가 -3%에 도달하면 기존의 해당 종목으로 주문낼 미체결 내역을 모두 취소하고 보유수량 전량을 매도하는 내용입니다. var OBJ = []; //매수주문낸 종목의 종목객체들 저장 배열변수 var xcond = false,XID,Xcode; function Main_OnUp*dateMarket(sItemCode, lUp*dateID) { //종목객체 1개이상 if (OBJ.length > 0 && lUp*dateID == 20001) { //루프를 돌려 현재 업데이트 된 종목의 종목객체를 찾고 for (var i = 0; i < OBJ.length; i++) { //찾았으면 if (OBJ[i].code == sItemCode) { //잔고객체 생성 Account1.SetBalance(OBJ[i].code, 0); //현재가가 잔고평단가-3% 이하이면 if (OBJ[i].current <= Account1.Balance.avgUnitCost*0.97) { //전체 미체결수 var num = Account1.GetTheNumberOfUnfills(); //미체결수만큼 루프 xcond = false; for (var z = 0; z < num; z++) { Account1.SetUnfill(z); //현재 종목 미체결 모두 취소 if (Account1.Unfill.code == Account1.Balance.code) { xcond = true; xcode = Account1.Balance.code; XID = Account1.OrderCancel(Account1.Unfill.orderNum); } } } } } } } function Main_OnOrderResponse(OrderResponse) { //취소주문에 대한 응답을 받으면 if (OrderResponse.orderID == XID) { //다시 잔고객체 생성 Account1.SetBalance(xcode, 0); //수량이 1이상이면 if (Account1.Balance.count > 0) { //시장가로 전량 매도 Account1.OrderSell(Account1.Balance.code, Account1.Balance.count,0,1); } } } 즐거운 하루되세요 > sc2018 님이 쓴 글입니다. > 제목 : 손절문의. > 예스스팟으로 당일 개별종목 매매하고 있습니다. 개별종목 매수 하자 마자 5% 익절을 걸어 놓고 있습니다. 3%손절선을 걸고 싶습니다. 신규편입종목 stop 주문 실행을 걸어놨는데 익절 주문이 들어간 상태라 매도주문이 불가능하다고 뜹니다. 1. 예스스팟 안에서 로직을 수정해야 한다면 예시 부탁드립니다. 2. 신규편입종목 stoploss에서 옵션(이전 주문 취소 후 시장가 매도 등)으로 가능하다면 설명 부탁드립니다.