첨부 이미지
그림1
안녕하세요....
어제 장중에는 첨부된 그림의 에스 45 진입이 발생하지 않았습니다.
그런데 오늘 어제 거래를 복기하려고 보니 진입이 된것으로 표시되내요. 실제로 진입했어야 하는데.....거래가 없음으로 인한 기회손실이 어제는 제법 큽니다
원인이 무엇일까 하고 찾아보니 볼린저밴드 업라인값의 실시간 처리 결과에 문제가 좀 문제가 있는듯 합니다
어제 9시 23분 볼린저밴드 업라인 값을 메세지 로그로 확인해보니
241.49839 로나타나고 해당봉종가는 241.50 이구요
로직상 종가가 볼밴 업라인값보다 크면 진입하게 되어 있기 때문에 진입이 되어야 하는거거든요....
실시간 차트상에서 처리한 결과 값을 소수점 두자리로 처리하는듯 합니다. 차트에서 확인해보면 볼밴 업라인값이 241.50으로 나타나고 있거든요 이로인해 어제 실 거래에서는 주문이 발생하지 않은듯 합니다. 실시간 데이타처리값의 소수점 이하 자릿수를 충분히 늘려 주시길 바랍니다.
확인 부탁 드립니다.
++++++++++++
로직
if MarketPosition(1)==-1 and MarketPosition==0 and c>BollBandUp(20,2) and IsExitName("scut45",1) Then
sell("sr45",AtMarket);
+++++++++++++++++
답변 1
예스스탁
예스스탁 답변
2012-07-19 17:14:13
안녕하세요? 예스스탁입니다.
올려주신 내용으로 확인해 보았는데, 소수점 처리의 문제는 아닌것으로 판단됩니다.
지표를 가격과 같이 공유해서 볼 경우에는 소수점 둘째자리(선물인 경우)까지 보여주지만 내부적으로는 그 이하의 수치도 모두 갖고 있으며 연산에 포함시킵니다. 소수 이하의 계산에서는 부동소수점 문제로 인하여 보여지는 결과와 실제로 계산되는 결과가 차이가 발생하는 경우도 있을 수는 있는데, 올려주신 내용에는 해당되지 않는 것으로 생각됩니다.
다른 원인에 의해서 실시간에서 신호가 발생되지 않은 것으로 보이는데, 실시간 상황을 재현해 볼 수 없어서 정확한 원인을 현재로서는 파악하기 어려울것 같습니다.
올려주신 식을 기반으로해서 장중에 검증해 보도록 하겠습니다. 동일한 현상이 발생한다면 다시한번 글을 올려주시면 감사하겠습니다.
즐거운 날 되십시오.
> 송아지 님이 쓴 글입니다.
> 제목 : 실시간 ㄷㅔ이타 처리 결과 오류
> 안녕하세요....
어제 장중에는 첨부된 그림의 에스 45 진입이 발생하지 않았습니다.
그런데 오늘 어제 거래를 복기하려고 보니 진입이 된것으로 표시되내요. 실제로 진입했어야 하는데.....거래가 없음으로 인한 기회손실이 어제는 제법 큽니다
원인이 무엇일까 하고 찾아보니 볼린저밴드 업라인값의 실시간 처리 결과에 문제가 좀 문제가 있는듯 합니다
어제 9시 23분 볼린저밴드 업라인 값을 메세지 로그로 확인해보니
241.49839 로나타나고 해당봉종가는 241.50 이구요
로직상 종가가 볼밴 업라인값보다 크면 진입하게 되어 있기 때문에 진입이 되어야 하는거거든요....
실시간 차트상에서 처리한 결과 값을 소수점 두자리로 처리하는듯 합니다. 차트에서 확인해보면 볼밴 업라인값이 241.50으로 나타나고 있거든요 이로인해 어제 실 거래에서는 주문이 발생하지 않은듯 합니다. 실시간 데이타처리값의 소수점 이하 자릿수를 충분히 늘려 주시길 바랍니다.
확인 부탁 드립니다.
++++++++++++
로직
if MarketPosition(1)==-1 and MarketPosition==0 and c>BollBandUp(20,2) and IsExitName("scut45",1) Then
sell("sr45",AtMarket);
+++++++++++++++++