커뮤니티
수식 수정 부탁드립니다.
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]));
다음글
이전글