예스스탁
예스스탁 답변
2022-12-15 11:11:29
안녕하세요.
예스스탁입니다.
박스가 중첩으로 호출되고
새로운 추세변경시 이전 그려진 박스가 이전 고점/저점으로 이동되게 하셔야 합니다.
Input:length사각(12),상승색c(Red),하락색c(Lime),색상두께c(60);
Var:j사각(0),lastHiVal사각(0),lastLoVal사각(0),sBar사각(0),eBar사각(0),TL1사각(0),TL2사각(0),
Text1사각(0),처리구분사각(""),T사각(0);
Array:고점사각[10,2](0),저점사각[10,2](0); //가격,위치
var : d1(0),t1(0),hh(0),ll(0),cdbox(0),T(0);
처리구분사각 = "";
If Highest(H,length사각) == H and lastHiVal사각 <> H and
Lowest(L,length사각) == L and lastLoVal사각 <> L Then
{
If 저점사각[1,1] > L Then 처리구분사각 = "저점사각처리";
If 고점사각[1,1] < H Then 처리구분사각 = "고점사각처리";
}
Else If Highest(H,length사각) == H and lastHiVal사각 <> H Then
처리구분사각 = "고점사각처리";
Else If Lowest(L,length사각) == L and lastLoVal사각 <> L Then
처리구분사각 = "저점사각처리";
If 처리구분사각 == "고점사각처리" Then
{
T = 1;
lastHiVal사각 = H;
If 고점사각[1,2] < 저점사각[1,2] Then
{
For j사각 = 10 DownTo 2
{
고점사각[j사각,1] = 고점사각[j사각-1,1];
고점사각[j사각,2] = 고점사각[j사각-1,2];
}
}
If 고점사각[1,2] < 저점사각[1,2] or 고점사각[1,1] < H Then
{
고점사각[1,1] = H;
고점사각[1,2] = Index;
sBar사각 = Index - 저점사각[1,2];
eBar사각 = 0;
If TL_GetBeginDate(TL1사각) == sDate[sBar사각] and
TL_GetBeginTime(TL1사각) == sTime[sBar사각] Then
{
TL_Delete(TL1사각);
TL_Delete(TL2사각);
Text_Delete(Text1사각);
Box_Delete(cdbox);
}
TL1사각 = TL_New(sDate[sBar사각],sTime[sBar사각],저점사각[1,1],
sDate[eBar사각],sTime[eBar사각],고점사각[1,1]);
TL2사각 = TL_New(sDate[sBar사각],sTime[sBar사각],저점사각[1,1],
sDate[eBar사각],sTime[eBar사각],저점사각[1,1]);
Box_SetEnd(cdbox,sDate[sBar사각],sTime[sBar사각],저점사각[1,1]);
cdbox = box_new(sDate[sBar사각],sTime[sBar사각],고점사각[1,1],NextBarSdate,NextBarStime,L);
Box_SetColor(cdbox,상승색c);
Box_SetFill(cdbox,true,색상두께c);
Box_SetExtFill(cdbox,true);
Text1사각 = Text_New(sDate[eBar사각],sTime[eBar사각],고점사각[1,1],
NumToStr(고점사각[1,1],2));
Text_SetStyle(Text1사각, 2, 1);
TL_SetSize(TL2사각,2);
TL_SetColor(TL2사각,REd);
}
}
If 처리구분사각 == "저점사각처리" Then
{
T = -1;
lastLoVal사각 = L;
If 저점사각[1,2] < 고점사각[1,2] then
{
For j사각 = 10 DownTo 2
{
저점사각[j사각,1] = 저점사각[j사각-1,1];
저점사각[j사각,2] = 저점사각[j사각-1,2];
}
}
If 저점사각[1,2] < 고점사각[1,2] or 저점사각[1,1] > L then
{
저점사각[1,1] = L;
저점사각[1,2] = Index;
sBar사각 = Index - 고점사각[1,2];
eBar사각 = 0;
If TL_GetBeginDate(TL1사각) == sDate[sBar사각] and
TL_GetBeginTime(TL1사각) == sTime[sBar사각] Then
{
TL_Delete(TL1사각);
TL_Delete(TL2사각);
Text_Delete(Text1사각);
Box_Delete(cdbox);
}
TL1사각 = TL_New(sDate[sBar사각],sTime[sBar사각],고점사각[1,1],
sDate[eBar사각],sTime[eBar사각],저점사각[1,1]);
TL2사각 = TL_New(sDate[sBar사각],sTime[sBar사각],고점사각[1,1],
sDate[eBar사각],sTime[eBar사각],고점사각[1,1]);
Box_SetEnd(cdbox,sDate[sBar사각],sTime[sBar사각],고점사각[1,1]);
cdbox = box_new(sDate[sBar사각],sTime[sBar사각],고점사각[1,1],NextBarSdate,NextBarStime,L);
Box_SetColor(cdbox,하락색c);
Box_SetFill(cdbox,true,색상두께c);
Box_SetExtFill(cdbox,true);
Text1사각 = Text_New(sDate[eBar사각],sTime[eBar사각],저점사각[1,1],
NumToStr(저점사각[1,1],2));
Text_SetStyle(Text1사각, 2, 0);
TL_SetSize(TL2사각,2);
TL_SetColor(TL2사각,BLUe);
}
}
TL_SetSize(TL1사각,2);
TL_SetColor(TL1사각,red);
if T == 1 Then
Box_SetEnd(cdbox,NextBarSdate,NextBarStime,ll);
Else
Box_SetEnd(cdbox,NextBarSdate,NextBarStime,저점사각[1,1]);
즐거운 하루 되세요.
> 외국인 님이 쓴 글입니다.
> 제목 : 수정부탁드립니다
> 수정부탁드립니다.
Input:length사각(12),상승색c(Red),하락색c(Lime),색상두께c(60);
Var:j사각(0),lastHiVal사각(0),lastLoVal사각(0),sBar사각(0),eBar사각(0),TL1사각(0),TL2사각(0),
Text1사각(0),처리구분사각(""),T사각(0);
Array:고점사각[10,2](0),저점사각[10,2](0); //가격,위치
var : d1(0),t1(0),hh(0),ll(0),cdbox(0);
처리구분사각 = "";
If Highest(H,length사각) == H and lastHiVal사각 <> H and
Lowest(L,length사각) == L and lastLoVal사각 <> L Then
{
If 저점사각[1,1] > L Then 처리구분사각 = "저점사각처리";
If 고점사각[1,1] < H Then 처리구분사각 = "고점사각처리";
}
Else If Highest(H,length사각) == H and lastHiVal사각 <> H Then
처리구분사각 = "고점사각처리";
Else If Lowest(L,length사각) == L and lastLoVal사각 <> L Then
처리구분사각 = "저점사각처리";
If 처리구분사각 == "고점사각처리" Then
{
lastHiVal사각 = H;
If 고점사각[1,2] < 저점사각[1,2] Then
{
For j사각 = 10 DownTo 2
{
고점사각[j사각,1] = 고점사각[j사각-1,1];
고점사각[j사각,2] = 고점사각[j사각-1,2];
}
}
If 고점사각[1,2] < 저점사각[1,2] or 고점사각[1,1] < H Then
{
고점사각[1,1] = H;
고점사각[1,2] = Index;
sBar사각 = Index - 저점사각[1,2];
eBar사각 = 0;
If TL_GetBeginDate(TL1사각) == sDate[sBar사각] and
TL_GetBeginTime(TL1사각) == sTime[sBar사각] Then
{
TL_Delete(TL1사각);
TL_Delete(TL2사각);
Text_Delete(Text1사각);
}
TL1사각 = TL_New(sDate[sBar사각],sTime[sBar사각],저점사각[1,1],
sDate[eBar사각],sTime[eBar사각],고점사각[1,1]);
TL2사각 = TL_New(sDate[sBar사각],sTime[sBar사각],저점사각[1,1],
sDate[eBar사각],sTime[eBar사각],저점사각[1,1]);
cdbox = box_new(sDate[sBar사각],sTime[sBar사각],고점사각[1,1],NextBarSdate,NextBarStime,L);
Box_SetColor(cdbox,상승색c);
Box_SetFill(cdbox,true,색상두께c);
Box_SetExtFill(cdbox,true);
Text1사각 = Text_New(sDate[eBar사각],sTime[eBar사각],고점사각[1,1],
NumToStr(고점사각[1,1],2));
Text_SetStyle(Text1사각, 2, 1);
TL_SetSize(TL2사각,2);
TL_SetColor(TL2사각,REd);
}
Box_SetEnd(cdbox,NextBarSdate,NextBarStime,ll);
}
If 처리구분사각 == "저점사각처리" Then
{
lastLoVal사각 = L;
If 저점사각[1,2] < 고점사각[1,2] then
{
For j사각 = 10 DownTo 2
{
저점사각[j사각,1] = 저점사각[j사각-1,1];
저점사각[j사각,2] = 저점사각[j사각-1,2];
}
}
If 저점사각[1,2] < 고점사각[1,2] or 저점사각[1,1] > L then
{
저점사각[1,1] = L;
저점사각[1,2] = Index;
sBar사각 = Index - 고점사각[1,2];
eBar사각 = 0;
If TL_GetBeginDate(TL1사각) == sDate[sBar사각] and
TL_GetBeginTime(TL1사각) == sTime[sBar사각] Then
{
TL_Delete(TL1사각);
TL_Delete(TL2사각);
Text_Delete(Text1사각);
}
TL1사각 = TL_New(sDate[sBar사각],sTime[sBar사각],고점사각[1,1],
sDate[eBar사각],sTime[eBar사각],저점사각[1,1]);
TL2사각 = TL_New(sDate[sBar사각],sTime[sBar사각],고점사각[1,1],
sDate[eBar사각],sTime[eBar사각],고점사각[1,1]);
cdbox = box_new(sDate[sBar사각],sTime[sBar사각],고점사각[1,1],NextBarSdate,NextBarStime,L);
Box_SetColor(cdbox,하락색c);
Box_SetFill(cdbox,true,색상두께c);
Box_SetExtFill(cdbox,true);
Text1사각 = Text_New(sDate[eBar사각],sTime[eBar사각],저점사각[1,1],
NumToStr(저점사각[1,1],2));
Text_SetStyle(Text1사각, 2, 0);
TL_SetSize(TL2사각,2);
TL_SetColor(TL2사각,BLUe);
}
Box_SetEnd(cdbox,NextBarSdate,NextBarStime,저점사각[1,1]);
}
TL_SetSize(TL1사각,2);
TL_SetColor(TL1사각,red);