커뮤니티

수식 부탁드립니다

프로필 이미지
풀냄새
2012-01-29 23:51:42
397
글번호 47037
답변완료
1. 이평선은 모두 상승시 빨강, 하락시 파랑, 횡보시 회색의 점으로 표시합니다. 2. 20봉까지는 당일이동평균만 표시합니다. 3. 20봉 이상부터 60봉까지는 20이평선과 당일이평선을 함께 표시합니다. 4. 60봉 이후부터는 20이평선과 60이평선을 함께 표시합니다. 5. 위의 3과 4의 두 이평선 사이에는 정배열 역배열에 따라 색으로 채우기를 할 것입니다. 다음 식에서는 채우기가 이상하게 번지는 문제가 발생했고 수식도 정확한지 모르겠습니다. input: period1(20), period2(60); if DayIndex+1<=period1 Then //20번째 봉까지 { if ma(c,DayIndex) > ma(c,DayIndex)[1] Then plot1(ma(c,DayIndex),"~19봉 당일",RED); if ma(c,DayIndex) == ma(c,DayIndex)[1] Then plot1(ma(c,DayIndex),"~19봉 당일",PINK); if ma(c,DayIndex) < ma(c,DayIndex)[1] Then plot1(ma(c,DayIndex),"~19봉 당일",BLUE); } if DayIndex+1>Period1 and DayIndex+1<=Period2 Then //21번째 봉부터 60번째 봉까지 { if ma(c,Period1) > ma(c,Period1)[1] Then plot2(ma(c,period1),"20~59봉 20이평",RED); if ma(c,Period1) == ma(c,Period1)[1] Then plot2(ma(c,period1),"20~59봉 20이평",PINK); if ma(c,Period1) < ma(c,Period1)[1] Then plot2(ma(c,period1),"20~59봉 20이평",BLUE); if ma(c,DayIndex) > ma(c,DayIndex)[1] Then plot3(ma(c,DayIndex),"20~59봉 당일",RED); if ma(c,DayIndex) == ma(c,DayIndex)[1] Then plot3(ma(c,DayIndex),"20~59봉 당일",PINK); if ma(c,DayIndex) < ma(c,DayIndex)[1] Then plot3(ma(c,DayIndex),"20~59봉 당일",BLUE); } if DayIndex+1>Period2 Then //61번째 봉부터 { if ma(c,Period1) > ma(c,Period1)[1] Then plot4(ma(c,period1),"60~봉 20이평",RED); if ma(c,Period1) == ma(c,Period1)[1] Then plot4(ma(c,period1),"60~봉 20이평",PINK); if ma(c,Period1) < ma(c,Period1)[1] Then plot4(ma(c,period1),"60~봉 20이평",BLUE); if ma(c,Period2) > ma(c,Period2)[1] Then plot5(ma(c,period2),"60~봉 60이평",RED); if ma(c,Period2) == ma(c,Period2)[1] Then plot5(ma(c,period2),"60~봉 60이평",PINK); if ma(c,Period2) < ma(c,Period2)[1] Then plot5(ma(c,period2),"60~봉 60이평",BLUE); } 감사합니다.
지표
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2012-01-30 15:50:38

안녕하세요 예스스탁입니다. 상황별로 plot함수를 따로 사용하시면 해당 내용 제어가 되지 않습니다 아래와 같이 plot함수는 2개만 사용하시고 상황별로 다른 값을 출력하게 작성하셔야 합니다. 채우기는 속성창에만 가능하니 속성창에서 설정하시면 됩니다. input: period1(20), period2(60); var1 = ma(c,DayIndex+1); var2 = ma(c,period1); var3 = ma(c,period2); #당일 60번째 봉 이후에는 plot1은 당일이평, plot2도 당일이평 출력 if DayIndex+1 <= period1 Then { if var1 > var1[1] Then plot1(var1,"1",RED); if var1 == var1[1] Then plot1(var1,"1",PINK); if var1 < var1[1] Then plot1(var1,"1",BLUE); if var2 > var2[1] Then plot2(var1,"2",RED); if var2 == var2[1] Then plot2(var1,"2",PINK); if var2 < var2[1] Then plot2(var1,"2",BLUE); } #당일 60번째 봉 이후에는 plot1은 당일이평, plot2는 20이평 출력 if DayIndex+1 > Period1 and DayIndex+1 <= Period2 Then { if var1 > var1[1] Then plot1(var1,"1",RED); if var1 == var1[1] Then plot1(var1,"1",PINK); if var1 < var1[1] Then plot1(var1,"1",BLUE); if var2 > var2[1] Then plot2(var2,"2",RED); if var2 == var2[1] Then plot2(var2,"2",PINK); if var2 < var2[1] Then plot2(var2,"2",BLUE); } #당일 60번째 봉 이후에는 plot1은 20이평, plot2는 60이평 출력 if DayIndex+1>Period2 Then { if var2 > var2[1] Then plot1(var2,"1",RED); if var2 == var2[1] Then plot1(var2,"1",PINK); if var2 < var2[1] Then plot1(var2,"1",BLUE); if var3 > var3[1] Then plot2(var3,"2",RED); if var3 == var3[1] Then plot2(var3,"2",PINK); if var3 < var3[1] Then plot2(var3,"2",BLUE); } 즐거운 하루되세요 > 풀냄새 님이 쓴 글입니다. > 제목 : 수식 부탁드립니다 > 1. 이평선은 모두 상승시 빨강, 하락시 파랑, 횡보시 회색의 점으로 표시합니다. 2. 20봉까지는 당일이동평균만 표시합니다. 3. 20봉 이상부터 60봉까지는 20이평선과 당일이평선을 함께 표시합니다. 4. 60봉 이후부터는 20이평선과 60이평선을 함께 표시합니다. 5. 위의 3과 4의 두 이평선 사이에는 정배열 역배열에 따라 색으로 채우기를 할 것입니다. 다음 식에서는 채우기가 이상하게 번지는 문제가 발생했고 수식도 정확한지 모르겠습니다. input: period1(20), period2(60); if DayIndex+1<=period1 Then //20번째 봉까지 { if ma(c,DayIndex) > ma(c,DayIndex)[1] Then plot1(ma(c,DayIndex),"~19봉 당일",RED); if ma(c,DayIndex) == ma(c,DayIndex)[1] Then plot1(ma(c,DayIndex),"~19봉 당일",PINK); if ma(c,DayIndex) < ma(c,DayIndex)[1] Then plot1(ma(c,DayIndex),"~19봉 당일",BLUE); } if DayIndex+1>Period1 and DayIndex+1<=Period2 Then //21번째 봉부터 60번째 봉까지 { if ma(c,Period1) > ma(c,Period1)[1] Then plot2(ma(c,period1),"20~59봉 20이평",RED); if ma(c,Period1) == ma(c,Period1)[1] Then plot2(ma(c,period1),"20~59봉 20이평",PINK); if ma(c,Period1) < ma(c,Period1)[1] Then plot2(ma(c,period1),"20~59봉 20이평",BLUE); if ma(c,DayIndex) > ma(c,DayIndex)[1] Then plot3(ma(c,DayIndex),"20~59봉 당일",RED); if ma(c,DayIndex) == ma(c,DayIndex)[1] Then plot3(ma(c,DayIndex),"20~59봉 당일",PINK); if ma(c,DayIndex) < ma(c,DayIndex)[1] Then plot3(ma(c,DayIndex),"20~59봉 당일",BLUE); } if DayIndex+1>Period2 Then //61번째 봉부터 { if ma(c,Period1) > ma(c,Period1)[1] Then plot4(ma(c,period1),"60~봉 20이평",RED); if ma(c,Period1) == ma(c,Period1)[1] Then plot4(ma(c,period1),"60~봉 20이평",PINK); if ma(c,Period1) < ma(c,Period1)[1] Then plot4(ma(c,period1),"60~봉 20이평",BLUE); if ma(c,Period2) > ma(c,Period2)[1] Then plot5(ma(c,period2),"60~봉 60이평",RED); if ma(c,Period2) == ma(c,Period2)[1] Then plot5(ma(c,period2),"60~봉 60이평",PINK); if ma(c,Period2) < ma(c,Period2)[1] Then plot5(ma(c,period2),"60~봉 60이평",BLUE); } 감사합니다.
프로필 이미지

풀냄새

2012-01-30 22:40:33

다른 곳에서는 잘 나오는데요, 화면의 맨 앞부분에서는 당일이평선이 나타나지 않네요. 왜 그럴까요? > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 부탁드립니다 > 안녕하세요 예스스탁입니다. 상황별로 plot함수를 따로 사용하시면 해당 내용 제어가 되지 않습니다 아래와 같이 plot함수는 2개만 사용하시고 상황별로 다른 값을 출력하게 작성하셔야 합니다. 채우기는 속성창에만 가능하니 속성창에서 설정하시면 됩니다. input: period1(20), period2(60); var1 = ma(c,DayIndex+1); var2 = ma(c,period1); var3 = ma(c,period2); #당일 60번째 봉 이후에는 plot1은 당일이평, plot2도 당일이평 출력 if DayIndex+1 <= period1 Then { if var1 > var1[1] Then plot1(var1,"1",RED); if var1 == var1[1] Then plot1(var1,"1",PINK); if var1 < var1[1] Then plot1(var1,"1",BLUE); if var2 > var2[1] Then plot2(var1,"2",RED); if var2 == var2[1] Then plot2(var1,"2",PINK); if var2 < var2[1] Then plot2(var1,"2",BLUE); } #당일 60번째 봉 이후에는 plot1은 당일이평, plot2는 20이평 출력 if DayIndex+1 > Period1 and DayIndex+1 <= Period2 Then { if var1 > var1[1] Then plot1(var1,"1",RED); if var1 == var1[1] Then plot1(var1,"1",PINK); if var1 < var1[1] Then plot1(var1,"1",BLUE); if var2 > var2[1] Then plot2(var2,"2",RED); if var2 == var2[1] Then plot2(var2,"2",PINK); if var2 < var2[1] Then plot2(var2,"2",BLUE); } #당일 60번째 봉 이후에는 plot1은 20이평, plot2는 60이평 출력 if DayIndex+1>Period2 Then { if var2 > var2[1] Then plot1(var2,"1",RED); if var2 == var2[1] Then plot1(var2,"1",PINK); if var2 < var2[1] Then plot1(var2,"1",BLUE); if var3 > var3[1] Then plot2(var3,"2",RED); if var3 == var3[1] Then plot2(var3,"2",PINK); if var3 < var3[1] Then plot2(var3,"2",BLUE); } 즐거운 하루되세요 > 풀냄새 님이 쓴 글입니다. > 제목 : 수식 부탁드립니다 > 1. 이평선은 모두 상승시 빨강, 하락시 파랑, 횡보시 회색의 점으로 표시합니다. 2. 20봉까지는 당일이동평균만 표시합니다. 3. 20봉 이상부터 60봉까지는 20이평선과 당일이평선을 함께 표시합니다. 4. 60봉 이후부터는 20이평선과 60이평선을 함께 표시합니다. 5. 위의 3과 4의 두 이평선 사이에는 정배열 역배열에 따라 색으로 채우기를 할 것입니다. 다음 식에서는 채우기가 이상하게 번지는 문제가 발생했고 수식도 정확한지 모르겠습니다. input: period1(20), period2(60); if DayIndex+1<=period1 Then //20번째 봉까지 { if ma(c,DayIndex) > ma(c,DayIndex)[1] Then plot1(ma(c,DayIndex),"~19봉 당일",RED); if ma(c,DayIndex) == ma(c,DayIndex)[1] Then plot1(ma(c,DayIndex),"~19봉 당일",PINK); if ma(c,DayIndex) < ma(c,DayIndex)[1] Then plot1(ma(c,DayIndex),"~19봉 당일",BLUE); } if DayIndex+1>Period1 and DayIndex+1<=Period2 Then //21번째 봉부터 60번째 봉까지 { if ma(c,Period1) > ma(c,Period1)[1] Then plot2(ma(c,period1),"20~59봉 20이평",RED); if ma(c,Period1) == ma(c,Period1)[1] Then plot2(ma(c,period1),"20~59봉 20이평",PINK); if ma(c,Period1) < ma(c,Period1)[1] Then plot2(ma(c,period1),"20~59봉 20이평",BLUE); if ma(c,DayIndex) > ma(c,DayIndex)[1] Then plot3(ma(c,DayIndex),"20~59봉 당일",RED); if ma(c,DayIndex) == ma(c,DayIndex)[1] Then plot3(ma(c,DayIndex),"20~59봉 당일",PINK); if ma(c,DayIndex) < ma(c,DayIndex)[1] Then plot3(ma(c,DayIndex),"20~59봉 당일",BLUE); } if DayIndex+1>Period2 Then //61번째 봉부터 { if ma(c,Period1) > ma(c,Period1)[1] Then plot4(ma(c,period1),"60~봉 20이평",RED); if ma(c,Period1) == ma(c,Period1)[1] Then plot4(ma(c,period1),"60~봉 20이평",PINK); if ma(c,Period1) < ma(c,Period1)[1] Then plot4(ma(c,period1),"60~봉 20이평",BLUE); if ma(c,Period2) > ma(c,Period2)[1] Then plot5(ma(c,period2),"60~봉 60이평",RED); if ma(c,Period2) == ma(c,Period2)[1] Then plot5(ma(c,period2),"60~봉 60이평",PINK); if ma(c,Period2) < ma(c,Period2)[1] Then plot5(ma(c,period2),"60~봉 60이평",BLUE); } 감사합니다.