커뮤니티

문의드립니다.

프로필 이미지
여세우
2018-06-14 08:33:37
2267
글번호 224464
답변완료
수고하십니다. 장시작전에 지정가 AA에 매도를 XX주 , BB에 XX주 매도 주문을 내고 현재가가 AA에 오면 +NN호가 위에 XX주 매도 주문을 내고 지정가 AA에 걸어둔 XX주가 매도 체결이 되면 -MM호가 아래 XX주 매수주문을 내는 식 부탁드립니다. 항상 고맙습니다.
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-06-21 16:56:41

안녕하세요 예스스탁입니다. 아래 내용 참고하시기 바랍니다. 1 NN호가위 MM호가 아래는 NN과 MM에 해당하는 가격을 지정해 주셔야 합니다. 수식에서 몇틱위아래로 작성하면 현재가격으로 기준으로 1틱값이 계산되 가격번위를 넘어가면 호가가 달라져 주문에러가 발생합니다. 2 문의하신 내용이 예약주문과 같은 형태이시면 스팟으로 가능한 내용이 아닙니다. 스팟에는 예약주문등이 제공되지 않아 낮은가격 매도와 높은가격 매수는 바로 체결될수 있습니다. 3 수식에 게시판 금칙어가 있습니다. 영문업데이트가 Up*date로 중간에 *가 추가되어 있으므로 제거하시기 바랍니다. 4 스크립트객체화면 설정 종목객체 MarketData1 --> 속성에서 주문낼 종목으로 지정 계좌객체 Account --? 속성에서 주문낼 계좌지정 //값지정 var AA = 10000; var BB = 9900; var XX = 10; var NN = 10100; var MM = 9900; var SID1,SID2,cur,pre; var Num1; //스팟시작 function Main_OnStart() { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); //9시 이전이면 if (HHMMSS > 90000) { //1번 타이머셋팅 Main.SetTimer(1, 5000); } } //타이머동작 function Main_OnTimer(nEventID) { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); //1번 타이머 동작하고 8시에서 9시 사이이면 if (nEventID == 1 && HHMMSS > 80000 HHMMSS < 90000) { //타이머중지 Main.KillTimer(1); //AA가격으로 XX주 매도주문하고 주문아이디는 SID1에 저장 SID1 = Account1.OrderSell(MarketData1.code, XX, AA, 0); //BB가격으로 XX주 매도주문하고 주문아이디는 SID2에 저장 SID2 = Account1.OrderSell(MarketData1.code, XX, BB, 0); } } //종목객체 업데이트 function Main_OnUp*dateMarket(sItemCode, lUp*dateID)//*삭제 { //장시작후 시세가 업데이트될때 if (MarketData1.open > 0 && lUp*dateID == 200011)//*삭제 { //직전 체결시세 현재가 var pre = cur; //현재 체결시세 현재가 var cur = MarketData1.current; //AA가격을 터치하는 시세가 발생했으면 if ((cur >= AA && pre < AA) || (cur <= AA && pre > AA)) { //NN가격으로 XX주 매도 Account1.OrderSell(MarketData1.code, XX, NN, 0); } } } //주문응답 발생 function Main_OnOrderResponse(OrderResponse) { //주문아이디가 S1과 같은 주문응답이 수신되면 if (OrderResponse.orderID == S1) { //Num1에 주문번호 저장 Num1 = OrderResponse.orderNum; } } //체결응답 발생 function Main_OnNotifyFill(NotifyFill) { //체결번호가 Num1과 같은 체결응답이 수신되면 if (NotifyFill.orderNum == Num1) { //Num1의 미체결 객체 셋팅 Account1.SetUnfill(Num1); //미체결수량이 0이면(전량체결) if (Account1.Unfill.count == 0) { //MM 가격으로 XX주 매도주 Account1.OrderSell(MarketData1.code, XX, MM, 0); } } } 즐거운 하루되세요 > 여세우 님이 쓴 글입니다. > 제목 : 문의드립니다. > 수고하십니다. 장시작전에 지정가 AA에 매도를 XX주 , BB에 XX주 매도 주문을 내고 현재가가 AA에 오면 +NN호가 위에 XX주 매도 주문을 내고 지정가 AA에 걸어둔 XX주가 매도 체결이 되면 -MM호가 아래 XX주 매수주문을 내는 식 부탁드립니다. 항상 고맙습니다.