커뮤니티

랜덤함수 관련 질문입니다.

프로필 이미지
중박주식
2021-01-06 01:06:47
333
글번호 145156
답변완료
15시 20~24분 사이에 랜덤으로 청산을 하고 싶습니다. (1분봉 사용). 청산시간 = 152000 + random(400); if stime == 청산시간 then exitlong ..... 이런식으로 하면, 15시 20~24분 사이에 청산이 될줄 알았는데, 랜덤으로 당일 청산이 안되는 경우가 생깁니다. 즉, 당일은 오버가 되버리고 다음날이다 다다음날 저 시간대에 청산이 되어버립니다.. 혹시 왜 그럴까요?? 아 선물이라서. 저 시간은 동시호가 시간도 아닙니다.. 감사합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-01-06 15:05:51

안녕하세요 예스스탁입니다. 1 시간은 6자리의 정수입니다. random함수는 소숫점이하의 값도 나오게 됩니다. floor(random(400)) 와 같이 작성해 소숫점이하를 버리고 정수만 취해 사용하셔야 합니다. 2 0~400사이의 값이기 떄문에 초단위가 지정될수 있습니다. if문이 봉완성시이고 분봉차트에서는 초단위의 시간이 없으므로 초까지 지정하면 신호가 발생할수 없습니다. 1분봉 차트에 아래 지표 적용해 보시기 바랍니다. plot1(stime); 3 매봉실행되면 랜덤값이 계속변경되게 되어 지정한 시간이후에 지정한시간보다 이전의 시간으로 지정될수 있습니다. 당일첫봉등이나 특정시점에 한번 수행해서 값을 받아 처리하셔야 합니다. if sdate != sDate[1] Then { var1 = 152000 + floor(random(400)); SetStopEndofday(var1); } 4 if문으로 사용하신 다면 분단위까지만 계산되게 아래와 같이 작성하셔야 합ㄴ이다. if sdate != sDate[1] Then { Buy(); var1 = 152000 + floor(random(4))*100; } if stime == var1 then exitlong(); 즐거운 하루되세요 > 중박주식 님이 쓴 글입니다. > 제목 : 랜덤함수 관련 질문입니다. > 15시 20~24분 사이에 랜덤으로 청산을 하고 싶습니다. (1분봉 사용). 청산시간 = 152000 + random(400); if stime == 청산시간 then exitlong ..... 이런식으로 하면, 15시 20~24분 사이에 청산이 될줄 알았는데, 랜덤으로 당일 청산이 안되는 경우가 생깁니다. 즉, 당일은 오버가 되버리고 다음날이다 다다음날 저 시간대에 청산이 되어버립니다.. 혹시 왜 그럴까요?? 아 선물이라서. 저 시간은 동시호가 시간도 아닙니다.. 감사합니다.