커뮤니티

두입력값에 그래프 두개로 표현

프로필 이미지
코샘매쓰
2020-06-22 15:53:37
1137
글번호 140035
답변완료
단위호가와 단위호가2를 사용해 두 그래프를 표현하고싶습니다. 초보라 참조해서 작성했는데 어디서 잘못됬는지 단위호가를 이용한 그래프도 이상하고 단위호가2그래프는 아에 나오질 안네요.... 결론 하나만 할때는 잘되는데 둘이 결합시켜놓으니 안됩니다. 가르쳐주시면 감사합겠습니다. 더운데 고생많으십니다. 수고하세요... input:단위호가(15), 단위호가2(100), 타주기구분(1), //분봉(1) 분봉구분(5), //타주기가 분봉일 때 시작일(20090101); var:j(0),상승(100),하락(-100),분봉(1),일봉(2),주봉(3),월봉(4), 벽돌크기(0),벽돌크기2(0),벽돌개수(0),방향(0),방향2(0); array:고[10](0),저[10](0),고2[10](0),저2[10](0); array:고Bar[20](0),저Bar[20](0); // Index 개념이 아닌 벽돌개수.지지,저항선 계산시 사용 If 단위호가 <= 단위호가2 Then { #==========================================# # 초기 처리 #==========================================# If Index == 0 || Date <= 시작일 Then { 벽돌크기 = PriceScale * 단위호가; 벽돌크기2 = PriceScale * 단위호가2; 고[0] = C; 저[0] = C; 고2[0] = C; 저2[0] = C; } #==========================================# If 방향 == 0 Then { If 저[1] - 벽돌크기 >= C Then { 벽돌개수 = Int((저[1] - C)/벽돌크기); 저[1] = 저[1] - (벽돌크기 * 벽돌개수); 저Bar[1] = 0; 방향 = 하락; } Else If 고[1] + 벽돌크기 <= C Then { 벽돌개수 = Int((C - 고[1])/벽돌크기); 고[1] = 고[1] + (벽돌크기 * 벽돌개수); 고Bar[1] = 0; 방향 = 상승; } } Else If 방향 == 하락 Then { If 저[1] - 벽돌크기 >= C Then { 벽돌개수 = Int((저[1] - C)/벽돌크기); For j = 1 To 19 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } 저[1] = 저[1] - (벽돌크기 * 벽돌개수); 저Bar[1] = 0; } If 저[1] + 2*벽돌크기 <= C Then { 벽돌개수 = Int((C - 저[1])/벽돌크기); For j = 1 To 19 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } For j = 18 DownTo 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1] = 저[1] + (벽돌크기 * 벽돌개수); 고Bar[1] = 0; 방향 = 상승; } } Else If 방향 == 상승 Then { If 고[1] + 벽돌크기 <= C Then { 벽돌개수 = Int((C - 고[1])/벽돌크기); For j = 1 To 19 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } 고[1] = 고[1] + (벽돌크기 * 벽돌개수); 고Bar[1] = 0; } If 고[1] - 2*벽돌크기 >= C Then { 벽돌개수 = Int((고[1] - C)/벽돌크기); For j = 1 To 19 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } For j = 18 DownTo 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 저[1] = 고[1] - (벽돌크기 * 벽돌개수); 저Bar[1] = 0; 방향 = 하락; } } //If 방향[1]==하락 && 방향==상승 Then Plot2(저[1],"렌코차트",BLUE); //If 방향[1]==상승 && 방향==하락 Then Plot2(고[1],"렌코차트",RED); } if CrossUp(고[1], 고[2]) then Plot1(고[1],"렌코차트",RED); if CrossDown(저[1], 저[2]) then Plot1(저[1],"렌코차트",BLUE); #==========================================# If 방향 == 0 Then { If 저2[1] - 벽돌크기2 >= C Then { 벽돌개수 = Int((저2[1] - C)/벽돌크기2); 저2[1] = 저2[1] - (벽돌크기 * 벽돌개수); 저Bar[1] = 0; 방향2 = 하락; } Else If 고[1] + 벽돌크기2 <= C Then { 벽돌개수 = Int((C - 고2[1])/벽돌크기2); 고2[1] = 고2[1] + (벽돌크기2 * 벽돌개수); 고Bar[1] = 0; 방향2 = 상승; } } Else If 방향2 == 하락 Then { If 저2[1] - 벽돌크기2 >= C Then { 벽돌개수 = Int((저2[1] - C)/벽돌크기2); For j = 1 To 19 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } 저2[1] = 저2[1] - (벽돌크기2 * 벽돌개수); 저Bar[1] = 0; } If 저2[1] + 2*벽돌크기2 <= C Then { 벽돌개수 = Int((C - 저[1])/벽돌크기2); For j = 1 To 19 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } For j = 18 DownTo 1 { 고2[j+1] = 고2[j]; 고Bar[j+1] = 고Bar[j]; } 고2[1] = 저2[1] + (벽돌크기2 * 벽돌개수); 고Bar[1] = 0; 방향2 = 상승; } } Else If 방향2 == 상승 Then { If 고[1] + 벽돌크기2 <= C Then { 벽돌개수 = Int((C - 고2[1])/벽돌크기2); For j = 1 To 19 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } 고2[1] = 고2[1] + (벽돌크기2 * 벽돌개수); 고Bar[1] = 0; } If 고2[1] - 2*벽돌크기 >= C Then { 벽돌개수 = Int((고2[1] - C)/벽돌크기2); For j = 1 To 19 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } For j = 18 DownTo 1 { 저2[j+1] = 저2[j]; 저Bar[j+1] = 저Bar[j]; } 저2[1] = 고2[1] - (벽돌크기2 * 벽돌개수); 저Bar[1] = 0; 방향2 = 하락; } if CrossUp(고2 [1], 고2[2]) then Plot2(고2[1],"렌코차트",BLACK); if CrossDown(저2 [1], 저2[2]) then Plot2(저2[1],"렌코차트",BLACK); }
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-06-23 11:22:10

안녕하세요 예스스탁입니다. 배열변수에 공유되는 변수가 있습니다. 모두 별도로 선언해서 작성되어야 합니다. input:단위호가2(15),시작일(20090101); var:j(0),상승2(100),하락2(-100),벽돌크기2(0),벽돌개수2(0),방향2(0); array:고2[10](0),저2[10](0); array:고Bar2[20](0),저Bar2[20](0); // Index 개념이 아닌 벽돌개수.지지,저항선 계산시 사용 #==========================================# # 초기 처리 #==========================================# If Index == 0 || Date <= 시작일 Then { 벽돌크기2 = PriceScale * 단위호가2; 고2[0] = C; 저2[0] = C; } #==========================================# If 방향2 == 0 Then { If 저2[1] - 벽돌크기2 >= C Then { 벽돌개수2 = Int((저2[1] - C)/벽돌크기2); 저2[1] = 저2[1] - (벽돌크기2 * 벽돌개수2); 저Bar2[1] = 0; 방향2 = 하락2; } Else If 고2[1] + 벽돌크기2 <= C Then { 벽돌개수2 = Int((C - 고2[1])/벽돌크기2); 고2[1] = 고2[1] + (벽돌크기2 * 벽돌개수2); 고Bar2[1] = 0; 방향2 = 상승2; } } Else If 방향2 == 하락2 Then { If 저2[1] - 벽돌크기2 >= C Then { 벽돌개수2 = Int((저2[1] - C)/벽돌크기2); For j = 1 To 19 { 고Bar2[j] = 고Bar2[j] + 벽돌개수2; 저Bar2[j] = 저Bar2[j] + 벽돌개수2; } 저2[1] = 저2[1] - (벽돌크기2 * 벽돌개수2); 저Bar2[1] = 0; } If 저2[1] + 2*벽돌크기2 <= C Then { 벽돌개수2 = Int((C - 저2[1])/벽돌크기2); For j = 1 To 19 { 고Bar2[j] = 고Bar2[j] + 벽돌개수2; 저Bar2[j] = 저Bar2[j] + 벽돌개수2; } For j = 18 DownTo 1 { 고2[j+1] = 고2[j]; 고Bar2[j+1] = 고Bar2[j]; } 고2[1] = 저2[1] + (벽돌크기2 * 벽돌개수2); 고Bar2[1] = 0; 방향2 = 상승2; } } Else If 방향2 == 상승2 Then { If 고2[1] + 벽돌크기2 <= C Then { 벽돌개수2 = Int((C - 고2[1])/벽돌크기2); For j = 1 To 19 { 고Bar2[j] = 고Bar2[j] + 벽돌개수2; 저Bar2[j] = 저Bar2[j] + 벽돌개수2; } 고2[1] = 고2[1] + (벽돌크기2 * 벽돌개수2); 고Bar2[1] = 0; } If 고2[1] - 2*벽돌크기2 >= C Then { 벽돌개수2 = Int((고2[1] - C)/벽돌크기2); For j = 1 To 19 { 고Bar2[j] = 고Bar2[j] + 벽돌개수2; 저Bar2[j] = 저Bar2[j] + 벽돌개수2; } For j = 18 DownTo 1 { 저2[j+1] = 저2[j]; 저Bar2[j+1] = 저Bar2[j]; } 저2[1] = 고2[1] - (벽돌크기2 * 벽돌개수2); 저Bar2[1] = 0; 방향2 = 하락2; } } #If 방향2[1]==하락2 && 방향2==상승2 Then Plot2(저2[1],"렌코차트",BLUE); #If 방향2[1]==상승2 && 방향2==하락2 Then Plot2(고2[1],"렌코차트",RED); if CrossUp(고2[1], 고2[2]) then Plot1(고2[1],"렌코차트",RED); if CrossDown(저2[1], 저2[2]) then Plot1(저2[1],"렌코차트",BLUE); 즐거운 하루되세요 > 코샘매쓰 님이 쓴 글입니다. > 제목 : 두입력값에 그래프 두개로 표현 > 단위호가와 단위호가2를 사용해 두 그래프를 표현하고싶습니다. 초보라 참조해서 작성했는데 어디서 잘못됬는지 단위호가를 이용한 그래프도 이상하고 단위호가2그래프는 아에 나오질 안네요.... 결론 하나만 할때는 잘되는데 둘이 결합시켜놓으니 안됩니다. 가르쳐주시면 감사합겠습니다. 더운데 고생많으십니다. 수고하세요... input:단위호가(15), 단위호가2(100), 타주기구분(1), //분봉(1) 분봉구분(5), //타주기가 분봉일 때 시작일(20090101); var:j(0),상승(100),하락(-100),분봉(1),일봉(2),주봉(3),월봉(4), 벽돌크기(0),벽돌크기2(0),벽돌개수(0),방향(0),방향2(0); array:고[10](0),저[10](0),고2[10](0),저2[10](0); array:고Bar[20](0),저Bar[20](0); // Index 개념이 아닌 벽돌개수.지지,저항선 계산시 사용 If 단위호가 <= 단위호가2 Then { #==========================================# # 초기 처리 #==========================================# If Index == 0 || Date <= 시작일 Then { 벽돌크기 = PriceScale * 단위호가; 벽돌크기2 = PriceScale * 단위호가2; 고[0] = C; 저[0] = C; 고2[0] = C; 저2[0] = C; } #==========================================# If 방향 == 0 Then { If 저[1] - 벽돌크기 >= C Then { 벽돌개수 = Int((저[1] - C)/벽돌크기); 저[1] = 저[1] - (벽돌크기 * 벽돌개수); 저Bar[1] = 0; 방향 = 하락; } Else If 고[1] + 벽돌크기 <= C Then { 벽돌개수 = Int((C - 고[1])/벽돌크기); 고[1] = 고[1] + (벽돌크기 * 벽돌개수); 고Bar[1] = 0; 방향 = 상승; } } Else If 방향 == 하락 Then { If 저[1] - 벽돌크기 >= C Then { 벽돌개수 = Int((저[1] - C)/벽돌크기); For j = 1 To 19 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } 저[1] = 저[1] - (벽돌크기 * 벽돌개수); 저Bar[1] = 0; } If 저[1] + 2*벽돌크기 <= C Then { 벽돌개수 = Int((C - 저[1])/벽돌크기); For j = 1 To 19 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } For j = 18 DownTo 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1] = 저[1] + (벽돌크기 * 벽돌개수); 고Bar[1] = 0; 방향 = 상승; } } Else If 방향 == 상승 Then { If 고[1] + 벽돌크기 <= C Then { 벽돌개수 = Int((C - 고[1])/벽돌크기); For j = 1 To 19 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } 고[1] = 고[1] + (벽돌크기 * 벽돌개수); 고Bar[1] = 0; } If 고[1] - 2*벽돌크기 >= C Then { 벽돌개수 = Int((고[1] - C)/벽돌크기); For j = 1 To 19 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } For j = 18 DownTo 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 저[1] = 고[1] - (벽돌크기 * 벽돌개수); 저Bar[1] = 0; 방향 = 하락; } } //If 방향[1]==하락 && 방향==상승 Then Plot2(저[1],"렌코차트",BLUE); //If 방향[1]==상승 && 방향==하락 Then Plot2(고[1],"렌코차트",RED); } if CrossUp(고[1], 고[2]) then Plot1(고[1],"렌코차트",RED); if CrossDown(저[1], 저[2]) then Plot1(저[1],"렌코차트",BLUE); #==========================================# If 방향 == 0 Then { If 저2[1] - 벽돌크기2 >= C Then { 벽돌개수 = Int((저2[1] - C)/벽돌크기2); 저2[1] = 저2[1] - (벽돌크기 * 벽돌개수); 저Bar[1] = 0; 방향2 = 하락; } Else If 고[1] + 벽돌크기2 <= C Then { 벽돌개수 = Int((C - 고2[1])/벽돌크기2); 고2[1] = 고2[1] + (벽돌크기2 * 벽돌개수); 고Bar[1] = 0; 방향2 = 상승; } } Else If 방향2 == 하락 Then { If 저2[1] - 벽돌크기2 >= C Then { 벽돌개수 = Int((저2[1] - C)/벽돌크기2); For j = 1 To 19 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } 저2[1] = 저2[1] - (벽돌크기2 * 벽돌개수); 저Bar[1] = 0; } If 저2[1] + 2*벽돌크기2 <= C Then { 벽돌개수 = Int((C - 저[1])/벽돌크기2); For j = 1 To 19 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } For j = 18 DownTo 1 { 고2[j+1] = 고2[j]; 고Bar[j+1] = 고Bar[j]; } 고2[1] = 저2[1] + (벽돌크기2 * 벽돌개수); 고Bar[1] = 0; 방향2 = 상승; } } Else If 방향2 == 상승 Then { If 고[1] + 벽돌크기2 <= C Then { 벽돌개수 = Int((C - 고2[1])/벽돌크기2); For j = 1 To 19 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } 고2[1] = 고2[1] + (벽돌크기2 * 벽돌개수); 고Bar[1] = 0; } If 고2[1] - 2*벽돌크기 >= C Then { 벽돌개수 = Int((고2[1] - C)/벽돌크기2); For j = 1 To 19 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } For j = 18 DownTo 1 { 저2[j+1] = 저2[j]; 저Bar[j+1] = 저Bar[j]; } 저2[1] = 고2[1] - (벽돌크기2 * 벽돌개수); 저Bar[1] = 0; 방향2 = 하락; } if CrossUp(고2 [1], 고2[2]) then Plot2(고2[1],"렌코차트",BLACK); if CrossDown(저2 [1], 저2[2]) then Plot2(저2[1],"렌코차트",BLACK); }