커뮤니티
간단한 질문.
2014-09-11 00:12:38
150
글번호 78419
손절주문을 setstoploss로 제어 하고 있습니다.
제대로 주문이 들어가다가도 어쩔땐 1틱 차이로 주문이 틀려다른 값에 나가네요.
왜 그런건가요.
답변 1
예스스탁 예스스탁 답변
2014-09-11 16:32:37
안녕하세요
예스스탁입니다.
스탑로스에 손절값을 계산식을 넣으실 경우
부동소숫점 오류가 있으시면 간혹 해당 상황 발생하실 수가 있습니다.
부동소숫점 오류는 컴퓨터가 계산식을 수행할때 2진법을 계산후
다시 10진법으로 값을 리턴할때 생기는 현상을 말합니다.
가령 계산값이 1.20인데
1.20000000000003 혹은 1.1999999999999과 같이 리턴되면
수식에서는 해당 값이상 손실이 발생해야 하므로
1.20000000000003로 값이 리턴되면
1.20보다 큰 1.25가 손절값으로 책정이 됩니다.
값을 지정하실때
아래와 같이 반올림해서 값을 지정해 주시면 됩니다.
SetStopLoss(round(계산값,2),PointStop);
즐거운 하루되세요
> 휴식 님이 쓴 글입니다.
> 제목 : 간단한 질문.
> 손절주문을 setstoploss로 제어 하고 있습니다.
제대로 주문이 들어가다가도 어쩔땐 1틱 차이로 주문이 틀려다른 값에 나가네요.
왜 그런건가요.