커뮤니티

6402 재질문입니다.

프로필 이미지
회원
2007-08-20 12:06:17
1190
글번호 13358
답변완료
아래의 지표는 수식지왕님이 작성한 SWING지표입니다.. 3.1버전에 적용가능하게 변경부탁드립니다...IFF 구문이 틀린것으로 나옵니다. 앞에서 답변해주신 내용을 잘 모르겠네요...^^;지송 input : left(5),right(5); var: j(0),예비고(0),예비저(0),예비고bar(0),예비저bar(0),고점표시(0),저점표시(0); Array: 고[10](0),저[10](0),고bar[10](0),저bar[10](0); if highest(h[1],left)<h Then { 예비고 = h; 예비고bar = 0;} Else 예비고bar =예비고bar+1; if lowest(l[1],left)>l Then { 예비저 = l; 예비저bar = 0;} Else 예비저bar =예비저bar+1; if 예비고bar==right and highest(h,right)<h[right] then { 고[1]=예비고; 고bar[1] =예비고bar; } if 예비저bar==right and lowest(l,right)>l[right] then { 저[1]=예비저; 저bar[1] =예비저bar; } if highest(h[1],left)<h then { 예비고 = h; 예비고bar=0;} else 예비고bar=예비고bar+1; if lowest(l[1],left)>l then { 예비저 = l; 예비저bar=0;} else 예비저bar=예비저bar+1; for j=1 to 9 { 고bar[j] =고bar[j]+1; 저bar[j] =저bar[j]+1; } if 예비고bar==right and highest(h,right)<h[right] then { for j=9 downto 2 { 고[j]=고[j-1]; 고bar[j] =고bar[j-1]; } 고[1] = 예비고 고bar[1]=예비고bar; } if 예비저bar==right and lowest(l,right)>l[right] then { for j=9 downto 2 { 저[j]=저[j-1]; 저bar[j] =저bar[j-1]; } 저[1] = 예비저 저bar[1]=예비저bar; } if 저bar[1] > 고bar[2] then { for j =9 downto 2{ 저[j] = 저[j-1]; 저bar[j] =저bar[j-1]; } 미완성=0; for j =고bar[1] +1 to 고bar[2]-1{ if 미완성 ==0 or 미완성>l[j] then { 미완성=l[j]; 미완성bar=j; } } 저[1] = 미완성; 저bar[1] =미완성bar; } } if 예비저bar==right and lowest(l,right)>=l[right] then { for j=9 downto 2 { 저[j]=저[j-1]; 저bar[j] =저bar[j-1]; } 저점표시 =예비저- x; 저[1] = 예비저 저bar[1]=예비저bar; if 고bar[1] > 저bar[2] then { for j =9 downto 2{ 고[j] = 고[j-1]; 고bar[j] =고bar[j-1]; } 미완성=0; for j =저bar[1] +1 to 저bar[2]-1{ if 미완성 < h[j] then { 미완성=h[j]; 미완성bar=j; } } 고[1] = 미완성; 고bar[1] =미완성bar; } if 고점표시>h[right] then plot1(고점표시,"전고점",RED); if 저점표시<l[right] then plot2(저점표시,"전저점",BLUE);
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2007-08-20 13:56:58

안녕하세요 예스스탁입니다. iff 구문에 대해 변경된 내용을 다시 설명드리겠습니다. iff함수의 사용은 아래와 같습니다. iff(조건,참값,거짓값) 조건이 만족하면 참값을 아니면 거짓값을 리턴하라는 함수입니다. 3.1에서는 여기에서 리턴되는 참값과 거짓값을 같은 형태로 만들어 줘야 합니다. iff(예비저bar<우,예비저>l,1)은 조건이 만족하면 예비저 > 1을 리턴하고 아니면 1을 리턴하라고 작성되어 있는데 참값은 비교문으로 논리식(True/false)이고 거짓값은 1(numeric)로 수치형태입니다. 기존 예스트레이더3에서는 참값에 논리식이 들어가도 1 혹은 0으로 할당을 해 주었지만 변수타입 세분화로 이부분은 사용자가 정확히 작성해 주셔야 합니다. 바뀐 iff함수에서는 참값과 거짓값을 모두 논리식으로 만들거나 모두 수치형태로 만들어야 합니다. 아래는 올리식 식에서 검증에 오류가 없게 만들었습니다. 선언 안되어 있는 함수는 모두 내부변수 처리했습니다. input : left(5),right(5); var: j(0),예비고(0),예비저(0),예비고bar(0),예비저bar(0),고점표시(0),저점표시(0),미완성(0),미완성bar(0),X(0); Array: 고[10](0),저[10](0),고bar[10](0),저bar[10](0); if highest(h[1],left)<h Then { 예비고 = h; 예비고bar = 0; } Else 예비고bar =예비고bar+1; if lowest(l[1],left)>l Then { 예비저 = l; 예비저bar = 0; } Else 예비저bar =예비저bar+1; if 예비고bar==right and highest(h,right)<h[right] then { 고[1]=예비고; 고bar[1] =예비고bar; } if 예비저bar==right and lowest(l,right)>l[right] then { 저[1]=예비저; 저bar[1] =예비저bar; } if highest(h[1],left)<h then { 예비고 = h; 예비고bar=0;} else 예비고bar=예비고bar+1; if lowest(l[1],left)>l then { 예비저 = l; 예비저bar=0;} else 예비저bar=예비저bar+1; for j=1 to 9 { 고bar[j] =고bar[j]+1; 저bar[j] =저bar[j]+1; } if 예비고bar==right and highest(h,right)<h[right] then { for j=9 downto 2 { 고[j]=고[j-1]; 고bar[j] =고bar[j-1]; } 고[1] = 예비고; 고bar[1]=예비고bar; } if 예비저bar==right and lowest(l,right)>l[right] then { for j=9 downto 2 { 저[j]=저[j-1]; 저bar[j] =저bar[j-1]; } 저[1] = 예비저; 저bar[1]=예비저bar; } if 저bar[1] > 고bar[2] then { for j =9 downto 2{ 저[j] = 저[j-1]; 저bar[j] =저bar[j-1]; } 미완성=0; for j =고bar[1] +1 to 고bar[2]-1{ if 미완성 ==0 or 미완성>l[j] then { 미완성=l[j]; 미완성bar=j; } } 저[1] = 미완성; 저bar[1] =미완성bar; } if 예비저bar==right and lowest(l,right)>=l[right] then { for j=9 downto 2 { 저[j]=저[j-1]; 저bar[j] =저bar[j-1]; } 저점표시 =예비저- x; 저[1] = 예비저; 저bar[1]=예비저bar; if 고bar[1] > 저bar[2] then { for j =9 downto 2{ 고[j] = 고[j-1]; 고bar[j] =고bar[j-1]; } 미완성=0; for j =저bar[1] +1 to 저bar[2]-1{ if 미완성 < h[j] then { 미완성=h[j]; 미완성bar=j; } } 고[1] = 미완성; 고bar[1] =미완성bar; } } if 고점표시>h[right] then plot1(고점표시,"전고점",RED); if 저점표시<l[right] then plot2(저점표시,"전저점",BLUE); 즐거운 하루되세요 > CJ_MINSUNG 님이 쓴 글입니다. > 제목 : 6402 재질문입니다. > 아래의 지표는 수식지왕님이 작성한 SWING지표입니다.. 3.1버전에 적용가능하게 변경부탁드립니다...IFF 구문이 틀린것으로 나옵니다. 앞에서 답변해주신 내용을 잘 모르겠네요...^^;지송 input : left(5),right(5); var: j(0),예비고(0),예비저(0),예비고bar(0),예비저bar(0),고점표시(0),저점표시(0); Array: 고[10](0),저[10](0),고bar[10](0),저bar[10](0); if highest(h[1],left)<h Then { 예비고 = h; 예비고bar = 0;} Else 예비고bar =예비고bar+1; if lowest(l[1],left)>l Then { 예비저 = l; 예비저bar = 0;} Else 예비저bar =예비저bar+1; if 예비고bar==right and highest(h,right)<h[right] then { 고[1]=예비고; 고bar[1] =예비고bar; } if 예비저bar==right and lowest(l,right)>l[right] then { 저[1]=예비저; 저bar[1] =예비저bar; } if highest(h[1],left)<h then { 예비고 = h; 예비고bar=0;} else 예비고bar=예비고bar+1; if lowest(l[1],left)>l then { 예비저 = l; 예비저bar=0;} else 예비저bar=예비저bar+1; for j=1 to 9 { 고bar[j] =고bar[j]+1; 저bar[j] =저bar[j]+1; } if 예비고bar==right and highest(h,right)<h[right] then { for j=9 downto 2 { 고[j]=고[j-1]; 고bar[j] =고bar[j-1]; } 고[1] = 예비고 고bar[1]=예비고bar; } if 예비저bar==right and lowest(l,right)>l[right] then { for j=9 downto 2 { 저[j]=저[j-1]; 저bar[j] =저bar[j-1]; } 저[1] = 예비저 저bar[1]=예비저bar; } if 저bar[1] > 고bar[2] then { for j =9 downto 2{ 저[j] = 저[j-1]; 저bar[j] =저bar[j-1]; } 미완성=0; for j =고bar[1] +1 to 고bar[2]-1{ if 미완성 ==0 or 미완성>l[j] then { 미완성=l[j]; 미완성bar=j; } } 저[1] = 미완성; 저bar[1] =미완성bar; } } if 예비저bar==right and lowest(l,right)>=l[right] then { for j=9 downto 2 { 저[j]=저[j-1]; 저bar[j] =저bar[j-1]; } 저점표시 =예비저- x; 저[1] = 예비저 저bar[1]=예비저bar; if 고bar[1] > 저bar[2] then { for j =9 downto 2{ 고[j] = 고[j-1]; 고bar[j] =고bar[j-1]; } 미완성=0; for j =저bar[1] +1 to 저bar[2]-1{ if 미완성 < h[j] then { 미완성=h[j]; 미완성bar=j; } } 고[1] = 미완성; 고bar[1] =미완성bar; } if 고점표시>h[right] then plot1(고점표시,"전고점",RED); if 저점표시<l[right] then plot2(저점표시,"전저점",BLUE);