커뮤니티

차트상의 값과 수식으로 계산된 값의 차이의 해결 방법을 알려주시면 감사하겠습니다.

프로필 이미지
여유의공간
2020-12-22 02:16:48
729
글번호 144814
답변완료
많은 업무에 노고가 많으십니다. 덕분에 많이 배우고 있습니다. 문의드릴 내용은 차트상의 값과 수식으로 계산된 값이 서로 다르게 나오는데요!! 어떻게 해결하면 될까요?? 해결 방법을 알려주시면 대단히 감사하겠습니다. 그리고 아래의 수식을 하면 "연산자 앞뒤 두 데이터의 형태가 같아야 합니다." 라고 나옵니다. 크로스다운 될때의 값을 구할려면 아떻게 하는지도 부탁드립니다. dmax1=CrossDown(dm,ax); -요약하면 테스트는 CJ CGV 이며 ADX(a기간); DiPlus(a기간); DiMinus(a기간); StochasticsK(sto1,sto2); RSI(r기간); 일전에 RSI 질문에서 반복문이 함께 있으면 일정기간이 지나야 값이 제대로 나온다고 알려주셨는데요!! 이번에는 뭘 잘못 했는지 전부 다르게 나옵니다. 위 다섯가지 어떻게 수긱을 작성해야 되는지 부탁드립니다. 감사합니다. //---------------------------------- input : a기간(15),r기간(10),기간1(1500); var : j(0),ax(0),Dp(0),dm(0),stc(0),sto1(5),sto2(5),sto3(3); var : dmax1(0),dmax2(0),dmax3(0),bhi5(0),yhi5(0); var : rs1(0),rs(0),usum(0),dsum(0),upt(0),dpt(0),uavg(0),davg(0); //---------------------------------- //5년 하락 50% bhi5=H[1]; for j=1 To 기간1 { if bhi5<H[j] Then { bhi5=H[j]; } } yhi5=bhi5*0.5; //---------------------------------- //ADX AX = ADX(a기간); DP = DiPlus(a기간); DM = DiMinus(a기간); //dmax1=CrossDown(dm,ax); dmax2=ax+(ax*0.005); dmax3=iff(CrossDown(dm,ax),ax*0.005,ax); //---------------------------------- // 스톡케스틱 stc=StochasticsK(sto1,sto2); //---------------------------------- // RSI=(상승평균/(상승평균+하락평균))x100 rs1=RSI(r기간); //---------------------------------- If Index==r기간 and r기간>0 Then { usum=0; dsum=0; for j=0 to r기간-1 { upt=C[j]-C[j+1]; if upt>=0 then { dpt=0; } Else { dpt=0-upt; upt=0; } usum=usum+upt; dsum=dsum+dpt; } uavg=usum/r기간; davg=dsum/r기간; } Else { If Index>r기간 and r기간>0 Then { upt=C[0]-C[1]; if upt>=0 then { dpt=0; } Else { dpt=0-upt; upt=0; } uavg=(uavg[1]*(r기간-1)+upt)/r기간; davg=(davg[1]*(r기간-1)+dpt)/r기간; } } If uavg+davg<>0 then { rs=(uavg/(uavg+davg))*100; } Else { rs=0; } Plot1(rs); //---------------------------------- if Crossdown(dm,ax) Then { MessageLog("ax -> %.2f",ax); MessageLog("dp -> %.2f",dp); MessageLog("dm -> %.2f",dm); MessageLog("stc -> %.2f",stc); MessageLog("RS1 -> %.2f",rs1); MessageLog("RS -> %.2f",rs); } //----------------------------------
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-12-21 13:47:32

안녕하세요 예스스탁입니다. 1 해당 부분을 첨부한 그림과 같이 값이 동일하게 나오고 있습니다. 별도로 수정해 드릴부분이 없습니다. 2 CrossDown은 조건만족하면 true,아니면 false가 리턴됩니다. 해당값을 저장하기 위해서는 논리형변수로 선언이 되어야 합니다. var : dmax1(false); dmax1 = CrossDown(dm,ax); 즐거운 하루되세요 > 여유의공간 님이 쓴 글입니다. > 제목 : 차트상의 값과 수식으로 계산된 값의 차이의 해결 방법을 알려주시면 감사하겠습니다. > 많은 업무에 노고가 많으십니다. 덕분에 많이 배우고 있습니다. 문의드릴 내용은 차트상의 값과 수식으로 계산된 값이 서로 다르게 나오는데요!! 어떻게 해결하면 될까요?? 해결 방법을 알려주시면 대단히 감사하겠습니다. 그리고 아래의 수식을 하면 "연산자 앞뒤 두 데이터의 형태가 같아야 합니다." 라고 나옵니다. 크로스다운 될때의 값을 구할려면 아떻게 하는지도 부탁드립니다. dmax1=CrossDown(dm,ax); -요약하면 테스트는 CJ CGV 이며 ADX(a기간); DiPlus(a기간); DiMinus(a기간); StochasticsK(sto1,sto2); RSI(r기간); 일전에 RSI 질문에서 반복문이 함께 있으면 일정기간이 지나야 값이 제대로 나온다고 알려주셨는데요!! 이번에는 뭘 잘못 했는지 전부 다르게 나옵니다. 위 다섯가지 어떻게 수긱을 작성해야 되는지 부탁드립니다. 감사합니다. //---------------------------------- input : a기간(15),r기간(10),기간1(1500); var : j(0),ax(0),Dp(0),dm(0),stc(0),sto1(5),sto2(5),sto3(3); var : dmax1(0),dmax2(0),dmax3(0),bhi5(0),yhi5(0); var : rs1(0),rs(0),usum(0),dsum(0),upt(0),dpt(0),uavg(0),davg(0); //---------------------------------- //5년 하락 50% bhi5=H[1]; for j=1 To 기간1 { if bhi5<H[j] Then { bhi5=H[j]; } } yhi5=bhi5*0.5; //---------------------------------- //ADX AX = ADX(a기간); DP = DiPlus(a기간); DM = DiMinus(a기간); //dmax1=CrossDown(dm,ax); dmax2=ax+(ax*0.005); dmax3=iff(CrossDown(dm,ax),ax*0.005,ax); //---------------------------------- // 스톡케스틱 stc=StochasticsK(sto1,sto2); //---------------------------------- // RSI=(상승평균/(상승평균+하락평균))x100 rs1=RSI(r기간); //---------------------------------- If Index==r기간 and r기간>0 Then { usum=0; dsum=0; for j=0 to r기간-1 { upt=C[j]-C[j+1]; if upt>=0 then { dpt=0; } Else { dpt=0-upt; upt=0; } usum=usum+upt; dsum=dsum+dpt; } uavg=usum/r기간; davg=dsum/r기간; } Else { If Index>r기간 and r기간>0 Then { upt=C[0]-C[1]; if upt>=0 then { dpt=0; } Else { dpt=0-upt; upt=0; } uavg=(uavg[1]*(r기간-1)+upt)/r기간; davg=(davg[1]*(r기간-1)+dpt)/r기간; } } If uavg+davg<>0 then { rs=(uavg/(uavg+davg))*100; } Else { rs=0; } Plot1(rs); //---------------------------------- if Crossdown(dm,ax) Then { MessageLog("ax -> %.2f",ax); MessageLog("dp -> %.2f",dp); MessageLog("dm -> %.2f",dm); MessageLog("stc -> %.2f",stc); MessageLog("RS1 -> %.2f",rs1); MessageLog("RS -> %.2f",rs); } //----------------------------------