커뮤니티

항상 궁금해서 신세를 지내요 질문이요.

프로필 이미지
신사동지점장
2017-01-10 13:39:54
113
글번호 105749
답변완료
아래 일목균형표 요소를 가르쳐주신데로 짜집기를 해보았는데 검토 좀 부탁드립니다. ## strd=standard, cvsn=conversion ## Var : Weekstrd(0), Weekcvsn(0),Monthstrd(0), Monthcvsn(0),cnt(0),widx(0),Midx(0); Array : WH[100](0),WL[100](0),MH[100](0),ML[100](0); if DayOfWeek(sdate) <= DayOfWeek(sdate[1]) and sdate > sdate[1] Then{ widx = widx+1; WH[0] = H; WL[0] = L; for cnt = 1 to 99{ WH[cnt] = WH[cnt-1][1]; WL[cnt] = WL[cnt-1][1]; } } if H > WH[0] Then WH[0] = H; if L < WL[0] Then WL[0] = L; if widx >= 9 then{ var1 = WH[0]; var2 = WL[0]; for cnt = 0 to 8{ if WH[cnt] > var1 Then var1 = WH[cnt]; if WL[cnt] < var2 Then var2 = WL[cnt]; } Weekcvsn = (var1 + var2)/2; #주간전환선 } if widx >= 26 then{ var3 = WH[0]; var4 = WL[0]; for cnt = 0 to 25{ if WH[cnt] > var3 Then var3 = WH[cnt]; if WL[cnt] < var4 Then var4 = WL[cnt]; } Weekstrd = (var3 + var4)/2; #주간기준선 } if sdate > sdate[1]+30 Then{ MH[0] = H; ML[0] = H; midx = midx+1; for cnt = 1 to 99{ MH[cnt] = MH[cnt-1][1]; ML[cnt] = ML[cnt-1][1]; } } if H > MH[0] Then MH[0] = H; if L < ML[0] Then ML[0] = L; if midx >= 9 then{ var11 = MH[0]; var12 = ML[0]; for cnt = 0 to 8{ if MH[cnt] > var11 Then var11 = MH[cnt]; if ML[cnt] < var12 Then var12 = ML[cnt]; } } if midx >= 26 then{ var13 = MH[0]; var14 = ML[0]; for cnt = 0 to 25{ if MH[cnt] > var13 Then var13 = MH[cnt]; if ML[cnt] < var14 Then var14 = ML[cnt]; } } Monthcvsn = (var11 + var12)/2; #월간전환선 Monthstrd = (var13 + var14)/2; #월간기준선 value1 = (highest(C,9)+lowest(C,9))/2; #일간전환선 value2 = (highest(C,26)+lowest(C,26))/2; #일간기준선 value3 = (Value1[25]+Value2[25])/2; #일간선행스팬1 Value4 = (highest(C,52)[25]+lowest(C,52)[25])/2; #일간선행스팬2 value5 = (weekcvsn[25]+weekstrd[25])/2; #주간선행스팬1 value6 = (highest(WeekClose(0),52)[25]+lowest(WeekClose(0),52)[25])/2; #주간선행스팬2
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-01-11 11:34:32

안녕하세요 예스스탁입니다. 아래와 같이 작성하셔야 합니다. 선행스팬1과 선행스팬2도 기존계산된 주간,월간 최고가와 최저가를 이용해 계산해야 합니다. highest,lowest함수로 해결이 되지 않습니다. 수식은 차트의 데이터를 이용하므로 차트에 주간/월간 일목균형선이 그려질 만큼 충분한 데이터가 있어야 그려집니다. 부족하면 그려지지 않습니다. input : 전환선기간(9),기준선기간(26),선행스팬2기간(52); var : cnt(0); var : wH1(0),wL1(0),wH11(0),wL11(0),wH2(0),wL2(0),wH22(0),wL22(0),wH3(0),wL3(0); var : w전환선(0),w기준선(0),w선행스팬1(0),w선행스팬2(0); Array : WH[100](0),WL[100](0); var : mH1(0),mL1(0),mH11(0),mL11(0),mH2(0),mL2(0),mH22(0),mL22(0),mH3(0),mL3(0); var : m전환선(0),m기준선(0),m선행스팬1(0),m선행스팬2(0); Array : MH[100](0),ML[100](0); if DayOfWeek(bdate) < DayOfWeek(bdate[1]) Then{ WH[0] = H; WL[0] = L; for cnt = 1 to 99{ WH[cnt] = WH[cnt-1][1]; WL[cnt] = WL[cnt-1][1]; } } if H > WH[0] Then WH[0] = H; if L < WL[0] Then WL[0] = L; if WH[선행스팬2기간+25] > 0 and WL[선행스팬2기간+25] > 0 then{ wH1 = WH[0]; wL1 = WL[0]; wH11 = WH[25]; wL11 = WL[25]; wH2 = WH[0]; wL2 = WL[0]; wH22 = WH[25]; wL22 = WL[25]; wH3 = WH[25]; wL3 = WL[25]; for cnt = 0 to 선행스팬2기간-1{ if cnt < 전환선기간 Then{ if WH[cnt] > wH1 Then wH1 = WH[cnt]; if WL[cnt] < wL1 Then wL1 = WL[cnt]; if WH[cnt+25] > wH11 Then wH11 = WH[cnt+25]; if WL[cnt+25] < wL11 Then wL11 = WL[cnt+25]; } if cnt < 기준선기간 Then{ if WH[cnt] > wH2 Then wH2 = WH[cnt]; if WL[cnt] < wL2 Then wL2 = WL[cnt]; if WH[cnt+25] > wH22 Then wH22 = WH[cnt+25]; if WL[cnt+25] < wL22 Then wL22 = WL[cnt+25]; } if WH[cnt+25] > wH3 Then wH3 = WH[cnt+25]; if WL[cnt+25] < wL3 Then wL3 = WL[cnt+25]; } w전환선 = (wH1 + wL1)/2; w기준선 = (wH2 + wL2)/2; w선행스팬1 = ((wH11+wL11)/2 + (wH22+wL22)/2) / 2 ; w선행스팬2 = (wH3+wL3) / 2; plot1(w전환선); plot2(w기준선); plot3(w선행스팬1); plot4(w선행스팬2); } if Bdate > Bdate[1]+30 Then{ MH[0] = H; ML[0] = L; for cnt = 1 to 99{ MH[cnt] = MH[cnt-1][1]; ML[cnt] = ML[cnt-1][1]; } } if H > MH[0] Then MH[0] = H; if L < ML[0] Then ML[0] = L; if MH[선행스팬2기간+25] > 0 and ML[선행스팬2기간+25] > 0 then{ mH1 = MH[0]; mL1 = ML[0]; mH11 = MH[25]; mL11 = ML[25]; mH2 = MH[0]; mL2 = ML[0]; mH22 = MH[25]; mL22 = ML[25]; mH3 = MH[25]; mL3 = ML[25]; for cnt = 0 to 선행스팬2기간-1{ if cnt < 전환선기간 Then{ if MH[cnt] > mH1 Then mH1 = MH[cnt]; if ML[cnt] < mL1 Then mL1 = ML[cnt]; if MH[cnt+25] > mH11 Then mH11 = MH[cnt+25]; if ML[cnt+25] < mL11 Then mL11 = ML[cnt+25]; } if cnt < 기준선기간 Then{ if MH[cnt] > mH2 Then mH2 = MH[cnt]; if ML[cnt] < mL2 Then mL2 = ML[cnt]; if MH[cnt+25] > mH22 Then mH22 = MH[cnt+25]; if ML[cnt+25] < mL22 Then mL22 = ML[cnt+25]; } if MH[cnt+25] > mH3 Then mH3 = MH[cnt+25]; if ML[cnt+25] < mL3 Then mL3 = ML[cnt+25]; } m전환선 = (mH1 + mL1)/2; m기준선 = (mH2 + mL2)/2; m선행스팬1 = ((mH11+mL11)/2 + (mH22+mL22)/2) / 2 ; m선행스팬2 = (mH3+mL3) / 2; plot5(m전환선); plot6(m기준선); plot7(m선행스팬1); plot8(m선행스팬2); } 즐거운 하루되세요 > 신사동지점장 님이 쓴 글입니다. > 제목 : 항상 궁금해서 신세를 지내요 질문이요. > 아래 일목균형표 요소를 가르쳐주신데로 짜집기를 해보았는데 검토 좀 부탁드립니다. ## strd=standard, cvsn=conversion ## Var : Weekstrd(0), Weekcvsn(0),Monthstrd(0), Monthcvsn(0),cnt(0),widx(0),Midx(0); Array : WH[100](0),WL[100](0),MH[100](0),ML[100](0); if DayOfWeek(sdate) <= DayOfWeek(sdate[1]) and sdate > sdate[1] Then{ widx = widx+1; WH[0] = H; WL[0] = L; for cnt = 1 to 99{ WH[cnt] = WH[cnt-1][1]; WL[cnt] = WL[cnt-1][1]; } } if H > WH[0] Then WH[0] = H; if L < WL[0] Then WL[0] = L; if widx >= 9 then{ var1 = WH[0]; var2 = WL[0]; for cnt = 0 to 8{ if WH[cnt] > var1 Then var1 = WH[cnt]; if WL[cnt] < var2 Then var2 = WL[cnt]; } Weekcvsn = (var1 + var2)/2; #주간전환선 } if widx >= 26 then{ var3 = WH[0]; var4 = WL[0]; for cnt = 0 to 25{ if WH[cnt] > var3 Then var3 = WH[cnt]; if WL[cnt] < var4 Then var4 = WL[cnt]; } Weekstrd = (var3 + var4)/2; #주간기준선 } if sdate > sdate[1]+30 Then{ MH[0] = H; ML[0] = H; midx = midx+1; for cnt = 1 to 99{ MH[cnt] = MH[cnt-1][1]; ML[cnt] = ML[cnt-1][1]; } } if H > MH[0] Then MH[0] = H; if L < ML[0] Then ML[0] = L; if midx >= 9 then{ var11 = MH[0]; var12 = ML[0]; for cnt = 0 to 8{ if MH[cnt] > var11 Then var11 = MH[cnt]; if ML[cnt] < var12 Then var12 = ML[cnt]; } } if midx >= 26 then{ var13 = MH[0]; var14 = ML[0]; for cnt = 0 to 25{ if MH[cnt] > var13 Then var13 = MH[cnt]; if ML[cnt] < var14 Then var14 = ML[cnt]; } } Monthcvsn = (var11 + var12)/2; #월간전환선 Monthstrd = (var13 + var14)/2; #월간기준선 value1 = (highest(C,9)+lowest(C,9))/2; #일간전환선 value2 = (highest(C,26)+lowest(C,26))/2; #일간기준선 value3 = (Value1[25]+Value2[25])/2; #일간선행스팬1 Value4 = (highest(C,52)[25]+lowest(C,52)[25])/2; #일간선행스팬2 value5 = (weekcvsn[25]+weekstrd[25])/2; #주간선행스팬1 value6 = (highest(WeekClose(0),52)[25]+lowest(WeekClose(0),52)[25])/2; #주간선행스팬2