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분 사이에 청산이 될줄 알았는데,
랜덤으로 당일 청산이 안되는 경우가 생깁니다.
즉, 당일은 오버가 되버리고 다음날이다 다다음날 저 시간대에 청산이 되어버립니다..
혹시 왜 그럴까요??
아 선물이라서. 저 시간은 동시호가 시간도 아닙니다..
감사합니다.