커뮤니티

질문 1 : 거래 시간 정보에 따른 거래 수식 오류

프로필 이미지
최강투자
2015-02-04 00:00:00
1903
글번호 223306
답변완료
예전에 아래와 같이 답변을 주셔서 수식을 작성하여 확인을 하고 있습니다. 기존 답변을 기준으로 수식을 작성하였는데, 해당 로직에 반응을 하지 않습니다. 원인을 알고 싶습니다. 무엇이 잘못되었는지요 전체 로직을 복사한 사항이 아니어서 아래 복사 내용에 {} 등이 맞지 않을 수 있습니다. 일부 수식을 요약했는데, 확인하시기 힘드시다면 해당 로직을 이메일로 보내드리도록 하겠습니다. 답변으로 메일주소 주시면 보내도록 하겠습니다. function Main_OnU*pdateMarket(sItemCode, lU*pdateID) { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (M1.code == sItemCode) { if (매수 조건 충족시 ) { (매수주문); } /*시간에 따른 청산*? function Main_OnTimer(nEventID) { if (nEventID == 1) { var d = new Date(); if (BuyCond == 6) { A1.SetBalanceItem(Callcode,0); if (A1.Balance.count > 0 && A1.Balance.position == 2) { if( Amount < Bottom-400 && M1.current < BP-0.2 && Buytime > 0 && d.getTime() == Buytime+60000 && Timechk1 == 0) { A1.OrderSell(Callcode, Bvol-Math.floor(Bvol*0.1)*1, Option.GetBidByCode(Callcode, 3), 0); Exvol = Exvol+1; Timechk1 = 1; } if( Amount < Bottom-300 && M1.current < BP-0.15 && Buytime > 0 && d.getTime() == Buytime+180000 && Timechk2 == 0) { A1.OrderSell(Callcode, Bvol-Math.floor(Bvol*0.1)*1, Option.GetBidByCode(Callcode, 3), 0); Exvol = Exvol+1; Timechk2 = 1; } if( Amount < Bottom-200 && M1.current < BP-0.1 && Buytime > 0 && d.getTime() == Buytime+300000 && Timechk3 == 0) { A1.OrderSell(Callcode, Bvol-Math.floor(Bvol*0.1)*1, Option.GetBidByCode(Callcode, 3), 0); Exvol = Exvol+1; Timechk3 = 1; } } } =============================================================================== 안녕하세요 예스스탁입니다. 091007는 단순 숫자입니다. 만약 시간이 95717 이라면 이 숫자에 500을 더하면 96217이 됩니다. 시간으로 되지는 않습니다. 자바스크립트에 기본제공되는 시간함수들 중에 getTime이라는 함수가 있습니다. 현재의 시간을 1970년1월1일0시0분1초 부터 경과된 초수로 시간을 리턴해 주는 함수입니다. 1초는 1000입니다. 시간을 비교하신 다면 해당 함수를 이용해 비교하셔야 합니다. var BuyTime; function Main_OnStart() { Main.SetTimer(1, 1000); Buytime = 0; } #매수주문 이벤트에서 시간저장 function 이벤트 { if (조건) { var d = new Date(); Buytime = d.getTime(); Account1.OrderBuy(sItemCode, nCount, dPrice, nPriceKind) } } #1초 단위로 시간을 판단해 매수후 5분 이후에 매도조건 만족하면 매도주문 function Main_OnTimer(nEventID) { if (nEventID == 1) { var d = new Date(); if (매도조건 && Buytime > 0 and d.getTime() >= Buytime+300000 &&)//300초(1초가 1000) { Account1.OrderSell(sItemCode, nCount, dPrice, nPriceKind) } } } 즐거운 하루되세요 > 최강투자 님이 쓴 글입니다. > 제목 : 거래시간에 대한 정보를 기억할 수 있나요? > 시간 변수로 var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); 로 정의를 한 뒤 거래 시간 등을 HHMMSS >= 090001 이런 식으로 제약하고 있습니다. 만약 청산 조건을 Case별로 구분하기 위해서 해당 매수 시간(체결 시간)을 기억하고 싶다면 A1.OrderBuy 매수 조건시 해당 HHMMSS 를 기억할 방법이 있나요? BuyTime 이란 변수를 새로 넣는 다면 해당 매수 시간에 (ex 09시 10분 7초에 체결이 됐다면..) BuyTime = HHMMSS 으로 정의했을 경우 BuyTime = 091007 으로 기억되는 것이 맞는지요? 만약 매수 시간 후 5분 뒤 매도 조건을 만들고 싶다면 HHMMSS = BuyTime + 000500 이란 수식으로 해당 조건이 충족될 때 매도 주문을 넣는 것이 가능한가요. 답변 부탁드립니다.
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-02-12 11:42:45

> 최강투자 님이 쓴 글입니다. > 제목 : 질문 1 : 거래 시간 정보에 따른 거래 수식 오류 > 예전에 아래와 같이 답변을 주셔서 수식을 작성하여 확인을 하고 있습니다. 기존 답변을 기준으로 수식을 작성하였는데, 해당 로직에 반응을 하지 않습니다. 원인을 알고 싶습니다. 무엇이 잘못되었는지요 전체 로직을 복사한 사항이 아니어서 아래 복사 내용에 {} 등이 맞지 않을 수 있습니다. 일부 수식을 요약했는데, 확인하시기 힘드시다면 해당 로직을 이메일로 보내드리도록 하겠습니다. 답변으로 메일주소 주시면 보내도록 하겠습니다. function Main_OnU*pdateMarket(sItemCode, lU*pdateID) { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (M1.code == sItemCode) { if (매수 조건 충족시 ) { (매수주문); } /*시간에 따른 청산*? function Main_OnTimer(nEventID) { if (nEventID == 1) { var d = new Date(); if (BuyCond == 6) { A1.SetBalanceItem(Callcode,0); if (A1.Balance.count > 0 && A1.Balance.position == 2) { if( Amount < Bottom-400 && M1.current < BP-0.2 && Buytime > 0 && d.getTime() == Buytime+60000 && Timechk1 == 0) { A1.OrderSell(Callcode, Bvol-Math.floor(Bvol*0.1)*1, Option.GetBidByCode(Callcode, 3), 0); Exvol = Exvol+1; Timechk1 = 1; } if( Amount < Bottom-300 && M1.current < BP-0.15 && Buytime > 0 && d.getTime() == Buytime+180000 && Timechk2 == 0) { A1.OrderSell(Callcode, Bvol-Math.floor(Bvol*0.1)*1, Option.GetBidByCode(Callcode, 3), 0); Exvol = Exvol+1; Timechk2 = 1; } if( Amount < Bottom-200 && M1.current < BP-0.1 && Buytime > 0 && d.getTime() == Buytime+300000 && Timechk3 == 0) { A1.OrderSell(Callcode, Bvol-Math.floor(Bvol*0.1)*1, Option.GetBidByCode(Callcode, 3), 0); Exvol = Exvol+1; Timechk3 = 1; } } } =============================================================================== 안녕하세요 예스스탁입니다. 091007는 단순 숫자입니다. 만약 시간이 95717 이라면 이 숫자에 500을 더하면 96217이 됩니다. 시간으로 되지는 않습니다. 자바스크립트에 기본제공되는 시간함수들 중에 getTime이라는 함수가 있습니다. 현재의 시간을 1970년1월1일0시0분1초 부터 경과된 초수로 시간을 리턴해 주는 함수입니다. 1초는 1000입니다. 시간을 비교하신 다면 해당 함수를 이용해 비교하셔야 합니다. var BuyTime; function Main_OnStart() { Main.SetTimer(1, 1000); Buytime = 0; } #매수주문 이벤트에서 시간저장 function 이벤트 { if (조건) { var d = new Date(); Buytime = d.getTime(); Account1.OrderBuy(sItemCode, nCount, dPrice, nPriceKind) } } #1초 단위로 시간을 판단해 매수후 5분 이후에 매도조건 만족하면 매도주문 function Main_OnTimer(nEventID) { if (nEventID == 1) { var d = new Date(); if (매도조건 && Buytime > 0 and d.getTime() >= Buytime+300000 &&)//300초(1초가 1000) { Account1.OrderSell(sItemCode, nCount, dPrice, nPriceKind) } } } 즐거운 하루되세요 > 최강투자 님이 쓴 글입니다. > 제목 : 거래시간에 대한 정보를 기억할 수 있나요? > 시간 변수로 var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); 로 정의를 한 뒤 거래 시간 등을 HHMMSS >= 090001 이런 식으로 제약하고 있습니다. 만약 청산 조건을 Case별로 구분하기 위해서 해당 매수 시간(체결 시간)을 기억하고 싶다면 A1.OrderBuy 매수 조건시 해당 HHMMSS 를 기억할 방법이 있나요? BuyTime 이란 변수를 새로 넣는 다면 해당 매수 시간에 (ex 09시 10분 7초에 체결이 됐다면..) BuyTime = HHMMSS 으로 정의했을 경우 BuyTime = 091007 으로 기억되는 것이 맞는지요? 만약 매수 시간 후 5분 뒤 매도 조건을 만들고 싶다면 HHMMSS = BuyTime + 000500 이란 수식으로 해당 조건이 충족될 때 매도 주문을 넣는 것이 가능한가요. 답변 부탁드립니다.