예스스탁
예스스탁 답변
2022-02-14 14:42:55
안녕하세요
예스스탁입니다.
마지막고저라인은 차트끝까지 그려지게 수정해 드립니다.
Input:length(12);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),TL3(0),
Text1(0),처리구분(""),T(0),TL21(0),TL31(0),TL4(0),TL41(0),TL5(0),TL51(0);
Array:고점[10,2](0),저점[10,2](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);
TL_Delete(TL21);
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]);
//TL21 = TL_New(sDate[sBar],sTime[sBar],저점[1,1]+PriceScale*10,sDate[eBar],sTime[eBar],저점[1,1]+PriceScale*10);
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1], NumToStr(고점[1,1],2));
Text_SetStyle(Text1, 2, 1);
TL_SetSize(TL2,3);
TL_SetColor(TL2,REd); //저점
TL_SetSize(TL21,1);
TL_SetColor(TL21,YELLOw); //저점
}
}
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(TL3);
TL_Delete(TL31);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
TL3 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
//TL31 = TL_New(sDate[sBar],sTime[sBar],고점[1,1]-PriceScale*10,sDate[eBar],sTime[eBar],고점[1,1]-PriceScale*10);
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(저점[1,1],1));
Text_SetStyle(Text1, 2, 10);
TL_SetSize(TL3,3);
TL_SetColor(TL3,BLUe);
TL_SetSize(TL31,1);
TL_SetColor(TL31,YELLOw);
}
}
TL_SetSize(TL1,1);
TL_SetColor(TL1,GRAy);
TL_Delete(TL4);
TL_Delete(TL41);
TL_Delete(TL5);
TL_Delete(TL51);
if T == 1 then
{
TL4 = TL_New(sDate[index-고점[1,2]],sTime[index-고점[1,2]],고점[1,1],sDate,sTime,고점[1,1]);
// TL41 = TL_New(sDate[index-고점[1,2]],sTime[index-고점[1,2]],고점[1,1]-PriceScale*10,sDate,sTime,고점[1,1]-PriceScale*10);
TL_SetColor(TL4,BLUE);
TL_SetSize(TL4,3);
TL_SetExtRight(TL4,true);
TL_SetColor(TL41,YELLOw);
TL_SetSize(TL41,1);
TL_SetExtRight(TL41,true);
TL_SetExtRight(TL2,true);
TL_SetExtRight(TL3,False);
}
if T == -1 then
{
TL4 = TL_New(sDate[index-저점[1,2]],sTime[index-저점[1,2]],저점[1,1],sDate,sTime,저점[1,1]);
//TL41 = TL_New(sDate[index-저점[1,2]],sTime[index-저점[1,2]],저점[1,1]+PriceScale*10,sDate,sTime,저점[1,1]+PriceScale*10);
TL_SetColor(TL5,REd); //저점
TL_SetSize(TL5,3);
TL_SetExtRight(TL5,true);
TL_SetColor(TL51,YELLOw); //저점
TL_SetSize(TL51,1);
TL_SetExtRight(TL51,true);
TL_SetExtRight(TL3,true);
TL_SetExtRight(TL2,False);
}
즐거운 하루되세요
> 참아람 님이 쓴 글입니다.
> 제목 : 수식 수정 요청
> 안녕하세요.
true 라인이 먼저 생성 되었다가 고,저 라인이 만들어지면 바로 없어 지는데
반대 true라인이 생성 될때 까지 유지 될수 있도록 수식 수정 부탁 드립니다.
고,저 라인은 우측 끝까지 그려지지 않고 확정 캔들 까지만 그려지기 때문에
사용에 불편함이 있어서 입니다.
Input:length(12);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),TL3(0),
Text1(0),처리구분(""),T(0),TL21(0),TL31(0);
Array:고점[10,2](0),저점[10,2](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);
TL_Delete(TL21);
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]);
// TL21 = TL_New(sDate[sBar],sTime[sBar],저점[1,1]+PriceScale*10,sDate[eBar],sTime[eBar],저점[1,1]+PriceScale*10);
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1], NumToStr(고점[1,1],2));
Text_SetStyle(Text1, 2, 1);
TL_SetSize(TL2,3);
TL_SetColor(TL2,REd); //저점
TL_SetSize(TL21,1);
TL_SetColor(TL21,YELLOw); //저점
}
}
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);
TL_Delete(TL21);
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]);
// TL21 = TL_New(sDate[sBar],sTime[sBar],고점[1,1]-PriceScale*10,sDate[eBar],sTime[eBar],고점[1,1]-PriceScale*10);
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(저점[1,1],1));
Text_SetStyle(Text1, 2, 10);
TL_SetSize(TL2,3);
TL_SetColor(TL2,BLUe);
TL_SetSize(TL21,1);
TL_SetColor(TL21,YELLOw);
}
}
TL_SetSize(TL1,1);
TL_SetColor(TL1,GRAy);
TL_Delete(TL3);
TL_Delete(TL31);
if T == 1 then
{
TL3 = TL_New(sDate[index-고점[1,2]],sTime[index-고점[1,2]],고점[1,1],sDate,sTime,고점[1,1]);
// TL31 = TL_New(sDate[index-고점[1,2]],sTime[index-고점[1,2]],고점[1,1]-PriceScale*10,sDate,sTime,고점[1,1]-PriceScale*10);
TL_SetColor(TL3,BLUe);
TL_SetSize(TL3,3);
TL_SetExtRight(TL3,true);
TL_SetColor(TL31,YELLOw);
TL_SetSize(TL31,1);
TL_SetExtRight(TL31,true);
}
if T == -1 then
{
TL3 = TL_New(sDate[index-저점[1,2]],sTime[index-저점[1,2]],저점[1,1],sDate,sTime,저점[1,1]);
// TL31 = TL_New(sDate[index-저점[1,2]],sTime[index-저점[1,2]],저점[1,1]+PriceScale*10,sDate,sTime,저점[1,1]+PriceScale*10);
TL_SetColor(TL3,REd); //저점
TL_SetSize(TL3,3);
TL_SetExtRight(TL3,true);
TL_SetColor(TL31,YELLOw); //저점
TL_SetSize(TL31,1);
TL_SetExtRight(TL31,true);
}
감사합니다.