커뮤니티

수식 부탁드립니다.

프로필 이미지
모루
2018-05-18 08:20:24
2593
글번호 224427
답변완료
14시 기준 당일의 (종가 - 저가) / (고가 - 저가) 를 계산해서 0.3이 넘으면 현물을 100만원만큼 종가에 사서, 익일 시초가에 파는 수식을 부탁드립니다.
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-05-28 17:21:30

안녕하세요 예스스탁입니다 아래 내용 참고하셔서 수정보완해 사용하시기 바랍니다. 모두 시간을 지정해, 지정한 시간에 필요한 값 계산하고 이후 지정한 시간에 매수 지정한 시간에 매도하는 내용입니다. 스크립트 객체화면 설정 종목객체 추가 --> 속성에서 객체명은 MarketData1, 주문낼 현물종목으로 지정 계좌객체 추가 --> 속성에서 객체명은 Account1, 주문낼 계좌번호 지정 var Entry = false; var Calc = true, vv; var Exit = false; function Main_OnStart() { Main.MessageList("Start"); var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); //현재시간이 14시 이전이면 매수가능하다는 의미로 true셋팅 Entry = false; calc = false; if (HHMMSS < 140000) { Entry = true; calc = true; } //현재시간이 15시25분 이전이면 매도 가능하다는 의미로 true셋팅 Exit = false; if (HHMMSS < 90000) { Exit = true; } if (Entry == true || Exit == true) { //1초간격 타이머 Main.SetTimer(1, 1000); } } function Main_OnTimer(nEventID) { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); //14시 되면 매수 if (nEventID == 1 && calc == true && HHMMSS >= 140000) { //false로 변수값 만들어서 한번만 동작 calc = false; vv = (MarketData1.current-MarketData1.low)/(MarketData1.high-MarketData1.low); } //15시 25분되고 0.3넘으면 매수 if (nEventID == 1 && Entry == true && HHMMSS >= 152500 && vv > 0.3) { Account1.OrderBuy(MarketData1.code,Math.floor(1000000/MarketData1.current), MarketData1.current, 0); Main.KillTimer(1); } //보유수량 매도 if (nEventID == 1 && Exit == true && HHMMSS >= 90000) { Account1.SetBalance(MarketData1.code,); if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,MarketData1.Bid(5),0); } } } 즐거운 하루되세요 > 모루 님이 쓴 글입니다. > 제목 : 수식 부탁드립니다. > 14시 기준 당일의 (종가 - 저가) / (고가 - 저가) 를 계산해서 0.3이 넘으면 현물을 100만원만큼 종가에 사서, 익일 시초가에 파는 수식을 부탁드립니다.