커뮤니티

56757번 관련입니다.

프로필 이미지
파일럿
2018-02-22 14:12:25
152
글번호 116807
답변완료
알려주신 코딩을 참고하여 수식을 아래와 같이 작성해서 작동해 보왔읍니다 function Main_OnStart() { Main.SetTimer(1, 2000); } function Main_OnTimer(nEventID) { if (nEventID == 1) { var vv = c1.GetIndicatorData("챠트",2,0); exl1.SetData(1, "c15", vv); exl1.SetData(1, "c16", 47); } } 문제는 엑셀 c15에 출렬될 vv 변수에 참조된 plot2 식은 if 조건식 Then plot2(0,"50"); 인데 엑셀 챠트에 출력되는 값은 18446744073709552000로 나옵니다. 플롯식대로 라면 0이 출력되어야 하는데 왜 그런가요 ? 엑셀 c16에는 위의 수식대로 47 이 제대로 출력됩니다. 아울러, 챠트에 지표식에 적용된 조건을 사용와서 시스템식을 사용할 수는 없나요 ?
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-02-22 15:09:20

안녕하세요 예스스탁입니다. 1 if 조건식 Then plot2(0,"50"); 차트의 지표가 위 내용이면 조건이 만족한 봉에서만 0 값이 출력되므로 조건에 만족하지 않은 봉이면 출력값이 없으므로 NAN이 되고 이 내용이 무의미한 숫자값으로 변환되어 전달됩니다. if C > O Then plot1(1); MessageLog("%.20f",plot1); 위 내용 지표 적용해서 디버깅창에 출력되는 내용 확인해 보시기 바랍니다. 스팟에서 지표값 확인하는 용도이므로 조건만족할때와 아닐때를 정확히 구분가능하도록 출력값을 각 지정해 리턴받을 수 있게 지표식 수정해서 사용하시기 바랍니다. if C > O Then plot2(0,"50"); Else plot2(-1,"50"); 2 수식을 각 별도로 동작합니다. 시스템에서 차트에 적용된 지표를 인식하지는 않습니다 즐거운 하루되세요 > 파일럿 님이 쓴 글입니다. > 제목 : 56757번 관련입니다. > 알려주신 코딩을 참고하여 수식을 아래와 같이 작성해서 작동해 보왔읍니다 function Main_OnStart() { Main.SetTimer(1, 2000); } function Main_OnTimer(nEventID) { if (nEventID == 1) { var vv = c1.GetIndicatorData("챠트",2,0); exl1.SetData(1, "c15", vv); exl1.SetData(1, "c16", 47); } } 문제는 엑셀 c15에 출렬될 vv 변수에 참조된 plot2 식은 if 조건식 Then plot2(0,"50"); 인데 엑셀 챠트에 출력되는 값은 18446744073709552000로 나옵니다. 플롯식대로 라면 0이 출력되어야 하는데 왜 그런가요 ? 엑셀 c16에는 위의 수식대로 47 이 제대로 출력됩니다. 아울러, 챠트에 지표식에 적용된 조건을 사용와서 시스템식을 사용할 수는 없나요 ?