커뮤니티

수식 수정 부탁드립니다.

프로필 이미지
매버릭
2017-09-05 14:37:06
155
글번호 112525
답변완료
안녕하세요? 아래식은 ADX파동선식입니다. 고점파동선색은 Magenta색으로, 저점파동선색 은Green색으로 부탁드립니다. 감사합니다. ======================================================================= Input:Period(14),ADX변동폭(5); Var:j(0),상승(100),하락(-100),양방향(2), 파동선(0),ADX파동선(0),방향(0),ADXV(0); Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0), ADX고[20](0),ADX저[20](0),ADX고Bar[20](0),ADX저Bar[20](0); ADXV = ADX(Period); #==========================================# # 전고점,전저점 index 증가 #==========================================# For j = 1 To 19 { ADX고Bar[j] = ADX고Bar[j] + 1; ADX저Bar[j] = ADX저Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; 고Bar[j] = 고Bar[j] + 1; } #==========================================# # 최근 고,저 갱신 #==========================================# If ADX고[0] <= ADXV || ADX고[0] == 0 || IsNaN(ADX고[0]) == True Then { ADX고[0] = ADXV; ADX고Bar[0] = 0; } Else ADX고Bar[0] = ADX고Bar[0] + 1; If ADX저[0] >= ADXV || ADX저[0] == 0 || IsNaN(ADX저[0]) == True Then { ADX저[0] = ADXV; ADX저Bar[0] = 0; } Else ADX저Bar[0] = ADX저Bar[0] + 1; If 고[0] <= H || 고[0] == 0 || IsNaN(고[0]) == True Then { 고[0] = H; 고Bar[0] = 0; } Else 고Bar[0] = 고Bar[0] + 1; If 저[0] >= L || 저[0] == 0 || IsNaN(저[0]) == True Then { 저[0] = L; 저Bar[0] = 0; } Else 저Bar[0] = 저Bar[0] + 1; #==========================================# # 추세방향 결정 #==========================================# If ADX저[0][1] + ADX변동폭 > ADXV[1] && ADX저[0][1] + ADX변동폭 <= ADXV Then 방향 = 상승; If ADX고[0][1] - ADX변동폭 < ADXV[1] && ADX고[0][1] - ADX변동폭 >= ADXV Then 방향 = 하락; #==========================================# # 추세변화에 따른 변곡점 처리 #==========================================# If 방향[1] == 하락 && 방향 == 상승 Then { For j = 18 DownTo 1 { ADX저[j+1] = ADX저[j]; ADX저Bar[j+1] = ADX저Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } ADX저[1] = ADX저[0]; ADX저Bar[1] = ADX저Bar[0]; ADX파동선 = ADX저[0]; ADX저[0] = ADXV; ADX저Bar[0] = 0; ADX고[0] = ADXV; ADX고Bar[0] = 0; 저[1] = 저[0]; 저Bar[1] = 저Bar[0]; 파동선 = 저[0]; 저[0] = L; 저Bar[0] = 0; 고[0] = H; 고Bar[0] = 0; } Else If 방향[1] == 상승 && 방향 == 하락 Then { For j = 18 DownTo 1 { ADX고[j+1] = ADX고[j]; ADX고Bar[j+1] = ADX고Bar[j]; 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } ADX고[1] = ADX고[0]; ADX고Bar[1] = ADX고Bar[0]; ADX파동선 = ADX고[0]; ADX고[0] = ADXV; ADX고Bar[0] = 0; ADX저[0] = ADXV; ADX저Bar[0] = 0; 고[1] = 고[0]; 고Bar[1] = 고Bar[0]; 파동선 = 고[0]; 고[0] = H; 고Bar[0] = 0; 저[0] = L; 저Bar[0] = 0; } Else If 방향[1] == 하락 && 방향 == 하락 Then { If ADX고[1] < ADX고[0] && ADX고[0][1] - ADX변동폭 <= ADXV[1] && ADX고[0][1] - ADX변동폭 > ADXV Then { ADX고[1] = ADX고[0]; ADX고Bar[1] = ADX고Bar[0]; ADX파동선 = ADX고[0]; ADX고[0] = ADXV; ADX고Bar[0] = 0; } If 고[1] < 고[0] && 고[0] > H Then { 고[1] = 고[0]; 고Bar[1] = 고Bar[0]; 파동선 = 고[0]; 고[0] = H; 고Bar[0] = 0; } } Else If 방향[1] == 상승 && 방향 == 상승 Then { If ADX저[1] > ADX저[0] && ADX저[0][1] + ADX변동폭 >= ADXV[1] && ADX저[0][1] + ADX변동폭 < ADXV Then { ADX저[1] = ADX저[0]; ADX저Bar[1] = ADX저Bar[0]; ADX파동선 = ADX저[0]; ADX저[0] = ADXV; ADX저Bar[0] = 0; } If 저[1] > 저[0] && 저[0] < L Then { 저[1] = 저[0]; 저Bar[1] = 저Bar[0]; 파동선 = 저[0]; 저[0] = L; 저Bar[0] = 0; } } #==========================================# # 지표식 출력 #==========================================# If ADX파동선[1] != ADX파동선 Then Plot1(ADX파동선); Else If LastBarOnChart == 1 Then plot1(Iff(방향 == 상승,ADX고[0],ADX저[0]));
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-09-06 10:25:02

안녕하세요 예스스탁입니다. Input:Period(14),ADX변동폭(5); Var:j(0),상승(100),하락(-100),양방향(2), 파동선(0),ADX파동선(0),방향(0),ADXV(0); Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0), ADX고[20](0),ADX저[20](0),ADX고Bar[20](0),ADX저Bar[20](0); ADXV = ADX(Period); #==========================================# # 전고점,전저점 index 증가 #==========================================# For j = 1 To 19 { ADX고Bar[j] = ADX고Bar[j] + 1; ADX저Bar[j] = ADX저Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; 고Bar[j] = 고Bar[j] + 1; } #==========================================# # 최근 고,저 갱신 #==========================================# If ADX고[0] <= ADXV || ADX고[0] == 0 || IsNaN(ADX고[0]) == True Then { ADX고[0] = ADXV; ADX고Bar[0] = 0; } Else ADX고Bar[0] = ADX고Bar[0] + 1; If ADX저[0] >= ADXV || ADX저[0] == 0 || IsNaN(ADX저[0]) == True Then { ADX저[0] = ADXV; ADX저Bar[0] = 0; } Else ADX저Bar[0] = ADX저Bar[0] + 1; If 고[0] <= H || 고[0] == 0 || IsNaN(고[0]) == True Then { 고[0] = H; 고Bar[0] = 0; } Else 고Bar[0] = 고Bar[0] + 1; If 저[0] >= L || 저[0] == 0 || IsNaN(저[0]) == True Then { 저[0] = L; 저Bar[0] = 0; } Else 저Bar[0] = 저Bar[0] + 1; #==========================================# # 추세방향 결정 #==========================================# If ADX저[0][1] + ADX변동폭 > ADXV[1] && ADX저[0][1] + ADX변동폭 <= ADXV Then 방향 = 상승; If ADX고[0][1] - ADX변동폭 < ADXV[1] && ADX고[0][1] - ADX변동폭 >= ADXV Then 방향 = 하락; #==========================================# # 추세변화에 따른 변곡점 처리 #==========================================# If 방향[1] == 하락 && 방향 == 상승 Then { For j = 18 DownTo 1 { ADX저[j+1] = ADX저[j]; ADX저Bar[j+1] = ADX저Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } ADX저[1] = ADX저[0]; ADX저Bar[1] = ADX저Bar[0]; ADX파동선 = ADX저[0]; ADX저[0] = ADXV; ADX저Bar[0] = 0; ADX고[0] = ADXV; ADX고Bar[0] = 0; 저[1] = 저[0]; 저Bar[1] = 저Bar[0]; 파동선 = 저[0]; 저[0] = L; 저Bar[0] = 0; 고[0] = H; 고Bar[0] = 0; } Else If 방향[1] == 상승 && 방향 == 하락 Then { For j = 18 DownTo 1 { ADX고[j+1] = ADX고[j]; ADX고Bar[j+1] = ADX고Bar[j]; 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } ADX고[1] = ADX고[0]; ADX고Bar[1] = ADX고Bar[0]; ADX파동선 = ADX고[0]; ADX고[0] = ADXV; ADX고Bar[0] = 0; ADX저[0] = ADXV; ADX저Bar[0] = 0; 고[1] = 고[0]; 고Bar[1] = 고Bar[0]; 파동선 = 고[0]; 고[0] = H; 고Bar[0] = 0; 저[0] = L; 저Bar[0] = 0; } Else If 방향[1] == 하락 && 방향 == 하락 Then { If ADX고[1] < ADX고[0] && ADX고[0][1] - ADX변동폭 <= ADXV[1] && ADX고[0][1] - ADX변동폭 > ADXV Then { ADX고[1] = ADX고[0]; ADX고Bar[1] = ADX고Bar[0]; ADX파동선 = ADX고[0]; ADX고[0] = ADXV; ADX고Bar[0] = 0; } If 고[1] < 고[0] && 고[0] > H Then { 고[1] = 고[0]; 고Bar[1] = 고Bar[0]; 파동선 = 고[0]; 고[0] = H; 고Bar[0] = 0; } } Else If 방향[1] == 상승 && 방향 == 상승 Then { If ADX저[1] > ADX저[0] && ADX저[0][1] + ADX변동폭 >= ADXV[1] && ADX저[0][1] + ADX변동폭 < ADXV Then { ADX저[1] = ADX저[0]; ADX저Bar[1] = ADX저Bar[0]; ADX파동선 = ADX저[0]; ADX저[0] = ADXV; ADX저Bar[0] = 0; } If 저[1] > 저[0] && 저[0] < L Then { 저[1] = 저[0]; 저Bar[1] = 저Bar[0]; 파동선 = 저[0]; 저[0] = L; 저Bar[0] = 0; } } #==========================================# # 지표식 출력 #==========================================# If ADX파동선[1] != ADX파동선 Then Plot1(ADX파동선,"지표",Iff(방향 == 상승,blue,red)); Else If LastBarOnChart == 1 Then plot1(Iff(방향 == 상승,ADX고[0],ADX저[0]),"지표",Iff(방향 == 상승,RED,blue)); 즐거운 하루되세요 > 매버릭 님이 쓴 글입니다. > 제목 : 수식 수정 부탁드립니다. > 안녕하세요? 아래식은 ADX파동선식입니다. 고점파동선색은 Magenta색으로, 저점파동선색 은Green색으로 부탁드립니다. 감사합니다. ======================================================================= Input:Period(14),ADX변동폭(5); Var:j(0),상승(100),하락(-100),양방향(2), 파동선(0),ADX파동선(0),방향(0),ADXV(0); Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0), ADX고[20](0),ADX저[20](0),ADX고Bar[20](0),ADX저Bar[20](0); ADXV = ADX(Period); #==========================================# # 전고점,전저점 index 증가 #==========================================# For j = 1 To 19 { ADX고Bar[j] = ADX고Bar[j] + 1; ADX저Bar[j] = ADX저Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; 고Bar[j] = 고Bar[j] + 1; } #==========================================# # 최근 고,저 갱신 #==========================================# If ADX고[0] <= ADXV || ADX고[0] == 0 || IsNaN(ADX고[0]) == True Then { ADX고[0] = ADXV; ADX고Bar[0] = 0; } Else ADX고Bar[0] = ADX고Bar[0] + 1; If ADX저[0] >= ADXV || ADX저[0] == 0 || IsNaN(ADX저[0]) == True Then { ADX저[0] = ADXV; ADX저Bar[0] = 0; } Else ADX저Bar[0] = ADX저Bar[0] + 1; If 고[0] <= H || 고[0] == 0 || IsNaN(고[0]) == True Then { 고[0] = H; 고Bar[0] = 0; } Else 고Bar[0] = 고Bar[0] + 1; If 저[0] >= L || 저[0] == 0 || IsNaN(저[0]) == True Then { 저[0] = L; 저Bar[0] = 0; } Else 저Bar[0] = 저Bar[0] + 1; #==========================================# # 추세방향 결정 #==========================================# If ADX저[0][1] + ADX변동폭 > ADXV[1] && ADX저[0][1] + ADX변동폭 <= ADXV Then 방향 = 상승; If ADX고[0][1] - ADX변동폭 < ADXV[1] && ADX고[0][1] - ADX변동폭 >= ADXV Then 방향 = 하락; #==========================================# # 추세변화에 따른 변곡점 처리 #==========================================# If 방향[1] == 하락 && 방향 == 상승 Then { For j = 18 DownTo 1 { ADX저[j+1] = ADX저[j]; ADX저Bar[j+1] = ADX저Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } ADX저[1] = ADX저[0]; ADX저Bar[1] = ADX저Bar[0]; ADX파동선 = ADX저[0]; ADX저[0] = ADXV; ADX저Bar[0] = 0; ADX고[0] = ADXV; ADX고Bar[0] = 0; 저[1] = 저[0]; 저Bar[1] = 저Bar[0]; 파동선 = 저[0]; 저[0] = L; 저Bar[0] = 0; 고[0] = H; 고Bar[0] = 0; } Else If 방향[1] == 상승 && 방향 == 하락 Then { For j = 18 DownTo 1 { ADX고[j+1] = ADX고[j]; ADX고Bar[j+1] = ADX고Bar[j]; 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } ADX고[1] = ADX고[0]; ADX고Bar[1] = ADX고Bar[0]; ADX파동선 = ADX고[0]; ADX고[0] = ADXV; ADX고Bar[0] = 0; ADX저[0] = ADXV; ADX저Bar[0] = 0; 고[1] = 고[0]; 고Bar[1] = 고Bar[0]; 파동선 = 고[0]; 고[0] = H; 고Bar[0] = 0; 저[0] = L; 저Bar[0] = 0; } Else If 방향[1] == 하락 && 방향 == 하락 Then { If ADX고[1] < ADX고[0] && ADX고[0][1] - ADX변동폭 <= ADXV[1] && ADX고[0][1] - ADX변동폭 > ADXV Then { ADX고[1] = ADX고[0]; ADX고Bar[1] = ADX고Bar[0]; ADX파동선 = ADX고[0]; ADX고[0] = ADXV; ADX고Bar[0] = 0; } If 고[1] < 고[0] && 고[0] > H Then { 고[1] = 고[0]; 고Bar[1] = 고Bar[0]; 파동선 = 고[0]; 고[0] = H; 고Bar[0] = 0; } } Else If 방향[1] == 상승 && 방향 == 상승 Then { If ADX저[1] > ADX저[0] && ADX저[0][1] + ADX변동폭 >= ADXV[1] && ADX저[0][1] + ADX변동폭 < ADXV Then { ADX저[1] = ADX저[0]; ADX저Bar[1] = ADX저Bar[0]; ADX파동선 = ADX저[0]; ADX저[0] = ADXV; ADX저Bar[0] = 0; } If 저[1] > 저[0] && 저[0] < L Then { 저[1] = 저[0]; 저Bar[1] = 저Bar[0]; 파동선 = 저[0]; 저[0] = L; 저Bar[0] = 0; } } #==========================================# # 지표식 출력 #==========================================# If ADX파동선[1] != ADX파동선 Then Plot1(ADX파동선); Else If LastBarOnChart == 1 Then plot1(Iff(방향 == 상승,ADX고[0],ADX저[0]));