커뮤니티

문의 드립니다.

프로필 이미지
흰수염고래
2018-07-15 21:17:34
2280
글번호 224518
답변완료
예스스팟으로 개별종목을 검색한 후 일정시간동안 일정수량을 일정 간격으로 매수 후 매도하는 로직을 돌리려고 합니다. 예를들어 10시에 조건에 맞는 어떤종목이 검색되어 10시부터 11시까지 1시간동안 2분(120초) 간격으로 10주씩 매수한다고 했을때 매수 간격을 정확히 120초가 아닌 110초~130초 간격으로 매회 랜덤하게 변화를 주고 싶습니다. 그냥 타이머로는 매수간격 변화를 줄 수 없어 고민중입니다. 스팟에서 특정범위(위의 경우 110~130초)내에서 랜덤한 매수간격 구현이 가능한지 도움요청 드립니다.
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2018-07-26 17:46:35

안녕하세요 예스스탁입니다. 랜덤하게 숫자가 110~130으로 지정되면 되므로 아래 산식 참고하시기 바랍니다. Math.random() 자바스크립트의 기본제공객체인 수학객체에 램덤한수가 제공됩니다. 0~1사이의 난수가 리턴됩니다. 랜덤함수를 두번수행해서 리턴된 값에 10을 곱하고 라운드 처리하시면 0~10사이의 정수값이 됩니다. 이값들을 110에 더해주시면 110~130사이의 정수가 됩니다. 타이머가 1000이 1초이므로 1000곱해서 타이머의 간격으로 지정해 주시면 됩니다. function Main_OnStart() { Main.SetTimer(1, 1000); } function Main_OnTimer(nEventID) { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); // var r1 = Math.round(Math.random()*10); var r2 = Math.round(Math.random()*10); var sum = (r1+r2+110)*1000; Main.MessageList(r1,r2,sum); } 즐거운 하루되세요 > 흰수염고래 님이 쓴 글입니다. > 제목 : 문의 드립니다. > 예스스팟으로 개별종목을 검색한 후 일정시간동안 일정수량을 일정 간격으로 매수 후 매도하는 로직을 돌리려고 합니다. 예를들어 10시에 조건에 맞는 어떤종목이 검색되어 10시부터 11시까지 1시간동안 2분(120초) 간격으로 10주씩 매수한다고 했을때 매수 간격을 정확히 120초가 아닌 110초~130초 간격으로 매회 랜덤하게 변화를 주고 싶습니다. 그냥 타이머로는 매수간격 변화를 줄 수 없어 고민중입니다. 스팟에서 특정범위(위의 경우 110~130초)내에서 랜덤한 매수간격 구현이 가능한지 도움요청 드립니다.
프로필 이미지

흰수염고래

2018-07-31 22:32:28

답변 감사드립니다. 그런데 110~130 사이의 랜덤값은 비슷한 방법으로 이미 구할 수 있었습니다 제가 구현하고 싶은 내용을 다시 설명하자면 //================================================= var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); var r1 = Math.round(Math.random()*10); var r2 = Math.round(Math.random()*10); var sum = (r1+r2+110)*1000; function Main_OnStart() { Main.SetTimer(1, sum); } function Main_OnTimer(nEventID) { if ( nEventID == 1 ) { Main.MessageList(r1,r2,sum); } } //================================================ 위 코드에서 r1,r2,sum 값의 메시지가 출력되는 간격을 110~130초 사이의 램덤 간격으로 출력되게 하는것입니다 그런데 위의 코드로는 처음 sum값으로 간격이 고정되버리죠 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의 드립니다. > 안녕하세요 예스스탁입니다. 랜덤하게 숫자가 110~130으로 지정되면 되므로 아래 산식 참고하시기 바랍니다. Math.random() 자바스크립트의 기본제공객체인 수학객체에 램덤한수가 제공됩니다. 0~1사이의 난수가 리턴됩니다. 랜덤함수를 두번수행해서 리턴된 값에 10을 곱하고 라운드 처리하시면 0~10사이의 정수값이 됩니다. 이값들을 110에 더해주시면 110~130사이의 정수가 됩니다. 타이머가 1000이 1초이므로 1000곱해서 타이머의 간격으로 지정해 주시면 됩니다. function Main_OnStart() { Main.SetTimer(1, 1000); } function Main_OnTimer(nEventID) { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); // var r1 = Math.round(Math.random()*10); var r2 = Math.round(Math.random()*10); var sum = (r1+r2+110)*1000; Main.MessageList(r1,r2,sum); } 즐거운 하루되세요 > 흰수염고래 님이 쓴 글입니다. > 제목 : 문의 드립니다. > 예스스팟으로 개별종목을 검색한 후 일정시간동안 일정수량을 일정 간격으로 매수 후 매도하는 로직을 돌리려고 합니다. 예를들어 10시에 조건에 맞는 어떤종목이 검색되어 10시부터 11시까지 1시간동안 2분(120초) 간격으로 10주씩 매수한다고 했을때 매수 간격을 정확히 120초가 아닌 110초~130초 간격으로 매회 랜덤하게 변화를 주고 싶습니다. 그냥 타이머로는 매수간격 변화를 줄 수 없어 고민중입니다. 스팟에서 특정범위(위의 경우 110~130초)내에서 랜덤한 매수간격 구현이 가능한지 도움요청 드립니다.