예스스탁
예스스탁 답변
2020-11-11 16:01:03
안녕하세요
예스스탁입니다.
Input:barCnt(5);
Var:j(0),turnPntBit(""),TL1(0),TL33(0),TL44(0),HD(0),HT(0),LD(0),LT(0),HH(0),LL(0);
Array:valArr[10](0),barArr[10](0),turnPntArr[10]("");
// 봉이 새로 생겼으므로 봉개수 관리하는 변수들의 봉개수 값 1씩 증가
For j = 0 To 9 {
barArr[j] = barArr[j] + 1;
}
// 고점조건 = 5-1-5에서 가운데 고가가 좌측 5봉과 우측 5봉 고가보다 높다
// 저점조건 = 5-1-5에서 가운데 저가가 좌측 5봉과 우측 5봉 저가보다 낮다
Condition1 = Highest(H,barCnt)[barCnt+1] <= H[barCnt] and H[barCnt] > Highest(H,barCnt);
Condition2 = Lowest(L,barCnt)[barCnt+1] >= L[barCnt] and L[barCnt] < Lowest(L,barCnt);
// 전환점구분 null값으로 초기화;
// if 고점조건, 저점조건 동시 만족시 then
// if 이전 고점,저점 범위를 모두 벗어났을 때
// 전환점구분 = 고저점;
// else if 이전 고점을 갱신했다면 전환점구분 = 고점;
// else if 이전 저점을 갱신했다면 전환점구분 = 저점;
// else if 전환점배열의 현재(배열상 1번째)값이 고점이면 전환점구분 = 저점;
// else if 전환점배열의 현재 값이 저점이면 전환점구분 = 고점;
// else if 고점조건 만족하면 전환점구분 = 고점;
// else if 저점조건 만족하면 전환전구분 = 저점;
turnPntBit = "";
If Condition1 and Condition2 Then {
If Max(valArr[1],valArr[2]) < H[barCnt] and Min(valArr[1],valArr[2]) > L[barCnt] Then
turnPntBit = "HiLo";
Else If Max(valArr[1],valArr[2]) < H[barCnt] Then turnPntBit = "Hi";
Else If Min(valArr[1],valArr[2]) > L[barCnt] Then turnPntBit = "Lo";
Else If turnPntArr[1] == "Hi" Then turnPntBit = "Lo";
Else If turnPntArr[1] == "Lo" Then turnPntBit = "Hi";
}
Else If Condition1 Then turnPntBit = "Hi";
Else If Condition2 Then turnPntBit = "Lo";
// if 전환점구분에 값이 있을 때만 아래 실행, 없으면 통과
If turnPntBit <> "" Then
{
// if 전환점구분이 고저점이면 then
// 이전 파동은 연장시키고 아래에서 새로이 파동선을 추가토록 한다.
If turnPntBit == "HiLo" Then
{
valArr[1] = IFF(turnPntArr[1] == "Hi",H[barCnt],L[barCnt]);
barArr[1] = barCnt;
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
If turnPntArr[1] == "Hi" Then
turnPntBit = "Lo";
Else
turnPntBit = "Hi";
}
// if 신규 전환점구분이 현재(전환점배열 1번째)와 다르면 then
// 배열값들을 이전값으로 Move;
If turnPntBit <> turnPntArr[1] Then
{
for j = 8 downto 1
{
valArr[j+1] = valArr[j];
barArr[j+1] = barArr[j];
turnPntArr[j+1] = turnPntArr[j];
}
}
// if 전환점구분이 바뀌었거나 또는
// (전환점구분은 안바뀌었는데
// (이전 고점보다 높은 고점이 발생했거나 또는
// 이전 저점보다 낮은 저점이 발생했으면)) then
If turnPntBit <> turnPntArr[1] or
(turnPntBit == turnPntArr[1] and
((turnPntBit == "Hi" and valArr[1] < H[barCnt]) or
(turnPntBit == "Lo" and valArr[1] > L[barCnt]))) Then {
// 값 배열에는 고점 또는 저점을 대입;
// 봉개수 배열에는 입력변수의 봉개수 대입;
// 전환점 배열에 전환점구분값을 대입;
valArr[1] = IFF(turnPntBit == "Hi",H[barCnt],L[barCnt]);
barArr[1] = barCnt;
turnPntArr[1] = turnPntBit;
// if 이전봉대비 전환점구분이 바뀌었다면 추세선 새로 그리고;
// else 전환점구분이 안바뀌었으면 값만 바뀐거므로 추세선 연장;
If turnPntArr[1][1] <> turnPntArr[1][0] Then
TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],
sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
Else
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
}
}
TL_SetSize(TL1,0);
TL_SetColor(TL1,BLACK);
var : TL11(0),TL12(0),hhh(0),lll(0),mmm(0),mm1(0),mm2(0),mm3(0),mm4(0);
if turnPntArr[1][0] == "Hi" Then
{
hhh = valArr[1];
TL_Delete(TL11);
TL_SetExtRight(TL11,true);
TL_SetColor(TL11,BLUE);
TL_SetSize(TL11,0);
mmm = (hhh-lll)/5;
TL_Delete(mm1);
TL_SetExtRight(mm1,true);
TL_SetColor(mm1,BLACK);
TL_SetSize(mm1,0);
TL_Delete(mm2);
TL_SetExtRight(mm2,true);
TL_SetColor(mm2,BLACK);
TL_SetSize(mm2,0);
TL_Delete(mm3);
TL_SetExtRight(mm3,true);
TL_SetColor(mm3,BLACK);
TL_SetSize(mm3,0);
TL_Delete(mm4);
TL_SetExtRight(mm4,true);
TL_SetColor(mm4,BLACK);
TL_SetSize(mm4,0);
}
if turnPntArr[1][0] == "Lo" Then
{
lll = valArr[1];
TL_Delete(TL12);
TL_SetExtRight(TL12,true);
TL_SetColor(TL12,LGREEN);
TL_SetSize(TL12,0);
mmm = (hhh-lll)/5;
TL_Delete(mm1);
TL_SetExtRight(mm1,true);
TL_SetColor(mm1,BLACK);
TL_SetSize(mm1,0);
TL_Delete(mm2);
TL_SetExtRight(mm2,true);
TL_SetColor(mm2,BLACK);
TL_SetSize(mm2,0);
TL_Delete(mm3);
TL_SetExtRight(mm3,true);
TL_SetColor(mm3,BLACK);
TL_SetSize(mm3,0);
TL_Delete(mm4);
TL_SetExtRight(mm4,true);
TL_SetColor(mm4,BLACK);
TL_SetSize(mm4,0);
}
if bdate != BDate[1] Then{
HD = sdate;
HT = stime;
LD = sdate;
LT = stime;
HH = H;
LL = L;
}
if H > HH Then{
HH = H;
HD = sdate;
HT = stime;
}
var : t(0),tx31(0),tx32(0),tx41(0),tx42(0);
TL_Delete(TL33);
Text_Delete(tx31);
if turnPntArr[1][0] == "Hi" Then
{
TL33 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1],HD,HT,dayhigh);
tx31 = Text_New(HD,HT,DayHigh,NumToStr(DayHigh,2));
Text_SetStyle(tx31,2,1);
t = 1;
}
if turnPntArr[1][0] == "Lo" Then
{
TL33 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],HD,HT,dayhigh);
tx31 = Text_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],NumToStr(valArr[2],2));
Text_SetStyle(tx31,2,1);
t = -1;
}
TL_SetExtRight(TL33,true);
TL_SetColor(TL33,LGREEN);
TL_SetSize(TL33,1);
if L < LL Then{
LL = L;
LD = sdate;
LT = stime;
}
TL_Delete(TL44);
Text_Delete(tx41);
if turnPntArr[1][0] == "Hi" Then
{
TL44 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],LD,LT,daylow);
tx41 = Text_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],NumToStr(valArr[2],2));
Text_SetStyle(tx41,2,0);
}
if turnPntArr[1][0] == "Lo" Then
{
TL44 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1],LD,LT,daylow);
tx41 = Text_New(LD,LT,daylow,NumToStr(daylow,2));
Text_SetStyle(tx41,2,0);
}
TL_SetExtRight(TL44,true);
TL_SetColor(TL44,BLACK);
TL_SetSize(TL44,1);
Text_Delete(tx32);
Text_Delete(tx42);
tx32 = Text_New(sDate,sTime,TL_GetValue(TL33,sDate,sTime),NumToStr(TL_GetValue(TL33,sDate,sTime),2));
Text_SetStyle(Tx32,2,1);
tx42 = Text_New(sDate,sTime,TL_GetValue(TL44,sDate,sTime),NumToStr(TL_GetValue(TL44,sDate,sTime),2));
Text_SetStyle(Tx42,2,0);
즐거운 하루되세요
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 전화주시기 바랍니다.(02-3453-1060)
>
> 장군 님이 쓴 글입니다.
> 제목 : 재문의드립니다
> 69862번 1번항재문의 드립니다 현재파동고점과저점에 수치가 나오는데 제가원하는것이 아닙니다~~상승추세선 시작점수치와 끈나는 부분수치값이 나오게
하락추세선 시작점수치와 끈나는 부분수치값이 나오게현재가처럼마지막값이나오게 다시한번수정부탁드립니다~~`