커뮤니티

시간 주문

프로필 이미지
새로운세상
2016-10-12 11:10:31
1725
글번호 224003
답변완료
안녕하세요. 예스스팟에서 A라는 조건을 만족하면 정해진 시간대에 주문을 발생시키려고 합니다. 다음 수식을 예로 부탁드립니다. ------------------------------------- 연결선물지수 일봉을 사용하여 1) 15시35분 즉 장마감 단일가이전 기준으로 이전봉의 고가 < 이전봉의 파라볼릭 and 현재봉의 저가 > 현재봉의 파라볼릭이면 15시40분에 매도1계약 청산주문 --> 종가체결 2) 1)의 다음봉에서 장마감 단일가이전 기준으로 이전봉의 저가 > 이전봉의 파라볼릭 and 현재봉의 저가 > 현재봉의 파라볼릭이면 15시40분에 매수1계약 진입주문 --> 종가체결 3) 15시35분 즉 장마감 단일가이전 기준으로 이전봉의 저가 > 이전봉의 파라볼릭 and 현재봉의 고가 < 현재봉의 파라볼릭이면 15시40분에 매수1계약 청산주문 --> 종가체결 4) 3)의 다음봉에서 장마감 단일가이전 기준으로 이전봉의 고가 < 이전봉의 파라볼릭 and 현재봉의 고가 < 현재봉의 파라볼릭이면 15시40분에 매도1계약 진입주문 --> 종가체결 위의 내용과 같이 현재봉은 15시35분을 기준으로 하여 조건만족시 위의 진입청산이 단일가에 주문이 발생되고 종가에 체결이 이루어지도록 하고 싶습니다. ------------------------------------ 이상입니다. 감사합니다 !!!
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-10-17 19:40:46

안녕하세요 예스스탁입니다. 아래 내용 참고하시기 바랍니다. 스크립트 객체화면 차트객체 추가 --> 객체명 Chart1, 아이디지정, 연결된 차트에 파라볼릭(종가) 지표가 적용되어 있어야 합니다. 종목객체 추가 --> 객체명 MarketData1, 연결선물지수 계좌객체 추가 --> 객체명 Account1, 주문낼 계좌번호 지정 var Tcond; function Main_OnStart() { var d = new Date(); HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); //시간이 15시 40분 이전이면 타이머셋팅 if(HHMMSS < 154000) { Main.SetTimer(1, 5000);//5초 } } function Main_OnTimer(nEventID) { var d = new Date(); HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (HHMMSS >= 154000) { //15시40분 이후이면 타이머 종료 Main.KillTimer(1); //잔고셋팅 후 잔고상태 확인 Account1.SetBalance(Main.GetOrderCode(MarketData1.code), 0); var T; //잔고가 0이면 T는 0 if (Account1.Balance.count == 0) { T = 0; } //매수포지션 보유상태이면 T는 1 if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { T = 1; } //매도포지션 보유상태이면 T는 -1 if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { T = -1; } //잔고가 0이면 진입조건 체크 if (T == 0) { //이전봉의 저가 > 이전봉의 파라볼릭 and 현재봉의 저가 > 현재봉의 파라볼릭이면 if (Chart1.GetLow(1,1) > Chart1.GetIndicatorData("파라볼릭(종가)",1,1) && Chart1.GetLow(1,0) > Chart1.GetIndicatorData("파라볼릭(종가)",1,0)) { //1계약 매도3호가로 매수주문 Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(3), 0); } //이전봉의 고가 < 이전봉의 파라볼릭 and 현재봉의 고가 < 현재봉의 파라볼릭이면 if (Chart1.GetHigh(1,1) < Chart1.GetIndicatorData("파라볼릭(종가)",1,1) && Chart1.GetHigh(1,0) < Chart1.GetIndicatorData("파라볼릭(종가)",1,0)) { //1계약 매수3호가로 매도주문 Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(3), 0); } } //매수포지션을 가지고 있으면 청산조건 체크 if (T == 1) { //이전봉의 저가 > 이전봉의 파라볼릭 and 현재봉의 고가 < 현재봉의 파라볼릭이면 if (Chart1.GetLow(1,1) > Chart1.GetIndicatorData("파라볼릭(종가)",1,1) && Chart1.GetHigh(1,0) < Chart1.GetIndicatorData("파라볼릭(종가)",1,0)) { //1계약 매수3호가로 매도주문 Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(3), 0); } } //매도포지션을 가지고 있으면 청산조건 체크 if (T == -1) { //이전봉의 고가 < 이전봉의 파라볼릭 and 현재봉의 저가 > 현재봉의 파라볼릭이면 if (Chart1.GetHigh(1,1) < Chart1.GetIndicatorData("파라볼릭(종가)",1,1) && Chart1.GetLow(1,0) > Chart1.GetIndicatorData("파라볼릭(종가)",1,0)) { //1계약 매수3호가로 매수주문 Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(3), 0); } } } } 즐거운 하루되세요 > 새로운세상 님이 쓴 글입니다. > 제목 : 시간 주문 > 안녕하세요. 예스스팟에서 A라는 조건을 만족하면 정해진 시간대에 주문을 발생시키려고 합니다. 다음 수식을 예로 부탁드립니다. ------------------------------------- 연결선물지수 일봉을 사용하여 1) 15시35분 즉 장마감 단일가이전 기준으로 이전봉의 고가 < 이전봉의 파라볼릭 and 현재봉의 저가 > 현재봉의 파라볼릭이면 15시40분에 매도1계약 청산주문 --> 종가체결 2) 1)의 다음봉에서 장마감 단일가이전 기준으로 이전봉의 저가 > 이전봉의 파라볼릭 and 현재봉의 저가 > 현재봉의 파라볼릭이면 15시40분에 매수1계약 진입주문 --> 종가체결 3) 15시35분 즉 장마감 단일가이전 기준으로 이전봉의 저가 > 이전봉의 파라볼릭 and 현재봉의 고가 < 현재봉의 파라볼릭이면 15시40분에 매수1계약 청산주문 --> 종가체결 4) 3)의 다음봉에서 장마감 단일가이전 기준으로 이전봉의 고가 < 이전봉의 파라볼릭 and 현재봉의 고가 < 현재봉의 파라볼릭이면 15시40분에 매도1계약 진입주문 --> 종가체결 위의 내용과 같이 현재봉은 15시35분을 기준으로 하여 조건만족시 위의 진입청산이 단일가에 주문이 발생되고 종가에 체결이 이루어지도록 하고 싶습니다. ------------------------------------ 이상입니다. 감사합니다 !!!