예스스탁
예스스탁 답변
2021-03-12 14:10:57
안녕하세요
예스스탁입니다.
1,2,3번식 아래식 참고하시기 바랍니다.
올려주신 내용의 모든 출력이 일반 plot으로는 가능하지 않아
추세선과 텍스트 함수로 출력되게 작성했습니다.
var : cnt(0);
Array : HH[5](0),LL[5](0),HI[5](0),LI[5](0);
Array : HTL1[5](0),LTL1[5](0);
Array : HTL2[5](0),LTL2[5](0);
if Bdate != Bdate[1] Then
{
HH[0] = H;
Hi[0] = index;
LL[0] = l;
LI[0] = Index;
For cnt = 1 to 4
{
HH[cnt] = HH[cnt-1][1];
Hi[cnt] = Hi[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
Li[cnt] = Li[cnt-1][1];
}
for cnt = 0 to 4
{
#이전일 출력은 지움
TL_Delete(HTL1[cnt]);
TL_Delete(LTL1[cnt]);
TL_Delete(HTL2[cnt]);
TL_Delete(LTL2[cnt]);
if HH[cnt] > 0 and LL[cnt] > 0 Then
{
#최근 5일간 최고가와 최저가를 점선으로 출력
HTL1[cnt] = TL_new(sDate[Index-Hi[cnt]],sTime[Index-Hi[cnt]],HH[cnt],NextBarSdate,NextBarStime,HH[cnt]);
LTL1[cnt] = TL_new(sDate[Index-Li[cnt]],sTime[Index-Li[cnt]],LL[cnt],NextBarSdate,NextBarStime,LL[cnt]);
TL_SetColor(HTL1[cnt],RED);
TL_SetColor(LTL1[cnt],BLUE);
TL_SetExtRight(HTL1[cnt],true);
TL_SetExtRight(LTL1[cnt],true);
TL_SetStyle(HTL1[cnt],3);
TL_SetStyle(LTL1[cnt],3);
#과거일 최고가/최저가와 당일 최고가/최저가 연결
if cnt >= 1 Then
{
HTL2[cnt] = TL_new(sDate[Index-Hi[cnt]],sTime[Index-Hi[cnt]],HH[cnt],Sdate,Stime,HH[0]);
LTL2[cnt] = TL_new(sDate[Index-Li[cnt]],sTime[Index-Li[cnt]],LL[cnt],Sdate,Stime,LL[0]);
TL_SetColor(HTL2[cnt],MAGENTA);
TL_SetColor(LTL2[cnt],CYAN);
TL_SetStyle(HTL2[cnt],1);
TL_SetStyle(LTL2[cnt],1);
}
}
}
}
Else
{
if H > HH[0] Then
{
HH[0] = H;
HI[0] = Index;
#당일고가 갱신시 당일최고가선 변경
TL_SetBegin(HTL1[0],sDate[Index-Hi[0]],sTime[Index-Hi[0]],HH[0]);
TL_SetEnd(HTL1[0],NextBarSdate,NextBarStime,HH[0]);
#과거일 최고가와 당일 최고가 연결선의 끝을 현재봉의 고가로 변경
for cnt = 1 to 4
{
if HH[cnt] > 0 and LL[cnt] > 0 Then
{
TL_SetEnd(HTL2[cnt],Sdate,Stime,HH[0]);
}
}
}
if L < LL[0] Then
{
LL[0] = L;
LI[0] = Index;
#당일저가 갱신시 당일최고가선 변경
TL_SetBegin(LTL1[0],sDate[Index-Li[0]],sTime[Index-Li[0]],LL[0]);
TL_SetEnd(LTL1[0],NextBarSdate,NextBarStime,LL[0]);
#과거일 최저가와 당일 최저가 연결선의 끝을 현재봉의 저가로 변경
for cnt = 1 to 4
{
if HH[cnt] > 0 and LL[cnt] > 0 Then
{
TL_SetEnd(LTL2[cnt],Sdate,Stime,LL[0]);
}
}
}
}
Var : X(0),Y(0),tempmax(0),tempMin(0),Hindex(0),Lindex(0);
Array : HV[5](0),nHV[5](0),nHi[5](0),LV[5](0),nLV[5](0),nLi[5](0),HTX[5](0),LTX[5](0);
if HH[4] > 0 and LL[4] > 0 Then
{
for cnt = 0 to 4
{
HV[cnt] = HH[cnt];
LV[cnt] = LL[cnt];
}
For Y = 0 to 4
{
tempmax = -99999999;
tempmin = 99999999;
For X = 0 to 4
{
if (HV[X] > tempmax) then
{
tempmax = HV[X];
Hindex = X;
}
if (LV[X] < tempmin) then
{
tempmin = LV[X];
Lindex = X;
}
}
nHV[Y] = tempmax;
HV[Hindex] = -99999999;
NHi[Y] = Hindex;
nLV[Y] = tempmax;
LV[Lindex] = 99999999;
nLi[Y] = Lindex;
}
for cnt = 0 to 4
{
Text_Delete(HTX[cnt]);
Text_Delete(LTX[cnt]);
HTX[cnt] = Text_new(sDate[Index-HI[NHi[cnt]]],sTime[Index-HI[NHi[cnt]]],HH[NHi[cnt]],NumToStr(cnt+1,0));
Text_SetStyle(HTX[cnt],2,1);
Text_SetColor(HTX[cnt],RED);
LTX[cnt] = Text_new(sDate[Index-LI[NLi[cnt]]],sTime[Index-LI[NLi[cnt]]],LL[NLi[cnt]],NumToStr(cnt+1,0));
Text_SetStyle(LTX[cnt],2,0);
Text_SetColor(LTX[cnt],BLUE);
}
}
즐거운 하루되세요
> 짱짱해야지 님이 쓴 글입니다.
> 제목 : 일 최고/저점
> 1. <값구하기>
5거래일 동안 500틱봉에서 1일 동안의 최고점/최저점의 각각 H/L값 5개씩 그리고 이 10개
지점에서의 Index값 10개를 구하고 싶습니다.
그리고 한가지 조건은 오늘로 부터 과거 5일까지
차트에 점도표(최고값 red, 최저값 Blue)로 표시되고
이전 값은 차트에서 삭제!!!
2. 5일의 일 최고/최저값에 순위 부여(H값은 큰것부터 1, L값은 최소값 부터 1)
3. <선긋기>
5일전 최고점/최저점 -> 오늘과 1일전 최고점/최저점의 각각의 연결선 4개
5일전 최고점 -> 오늘과 1일전의 최저점의 연결선 2개
4. 마지막 질문은 barindex와 index의 차이는 무엇인가요?
항상 감사드립니다.