커뮤니티
추세선
2014-12-25 01:04:11
220
글번호 81655
자동추세선 수식 부탁드립니다
수고하십시요
답변 1
예스스탁 예스스탁 답변
2014-12-26 10:39:14
안녕하세요
예스스탁입니다.
보조도구에서 제공되는 자동추세선을
랭귀지로 그대로 구현하기는 어렵습니다.
현재 발생된 고점이나 저점보다 높거나 낮은 가장 가까운 고점/저점을
차트 전체에서 찾아 그리는데 수식에서는 갯수를 지정해야 하므로
아래식에서는 최근 50개의 고점/저점만 기준으로 합니다.
50개 안에 현재고점보다 큰 고점이 없으면 직전고점과 저점을 연결합니다.
이용에 참고하시기 바랍니다.
input : P(3);
var : cnt(0),i1(0),i2(0),TL1(0),TL2(0);
Array : SHV[50](0),SHD[50](0),SHT[50](0);
Array : SLV[50](0),SLD[50](0),SLT[50](0);
if SwingHigh(1,h,P,P,P*2+1) != -1 Then{
SHV[0] = H[P];
SHD[0] = sdate[P];
SHT[0] = stime[P];
for cnt = 1 to 49{
SHV[cnt] = SHV[cnt-1][1];
SHD[cnt] = SHD[cnt-1][1];
SHT[cnt] = SHT[cnt-1][1];
}
i1 = 1;
for cnt = 1 to 49{
if SHV[cnt] > SHV[0] Then{
i1 = cnt;
cnt = 1000;
}
}
if i1 > 0 Then{
TL_Delete(TL1);
TL1 = TL_New(SHD[i1],SHT[i1],SHV[i1],SHD[0],SHT[0],SHV[0]);
TL_SetExtRight(TL1,true);
TL_SetColor(TL1,RED);
}
}
if SwingLow(1,L,P,P,P*2+1) != -1 Then{
SLV[0] = L[P];
SLD[0] = sdate[P];
SLT[0] = stime[P];
for cnt = 1 to 49{
SLV[cnt] = SLV[cnt-1][1];
SLD[cnt] = SLD[cnt-1][1];
SLT[cnt] = SLT[cnt-1][1];
}
i2 = 1;
for cnt = 1 to 49{
if SLV[cnt] < SLV[0] Then{
i2 = cnt;
cnt = 1000;
}
}
if i2 > 0 Then{
TL_Delete(TL2);
TL2 = TL_New(SLD[i2],SLT[i2],SLV[i2],SLD[0],SLT[0],SLV[0]);
TL_SetExtRight(TL2,true);
TL_SetColor(TL2,blue);
}
}
즐거운 하루되세요
> YG_kj**** 님이 쓴 글입니다.
> 제목 : 추세선
> 자동추세선 수식 부탁드립니다
수고하십시요