예스스팟으로 개별종목을 검색한 후
일정시간동안 일정수량을 일정 간격으로 매수 후 매도하는 로직을 돌리려고 합니다.
예를들어 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초)내에서 랜덤한 매수간격 구현이 가능한지 도움요청 드립니다.