예스스탁
예스스탁 답변
2025-06-05 13:57:08
안녕하세요
예스스탁입니다.
작성하신 내용은 현재봉이 3개이상의 양봉이나 음봉이 아니면 표시가 되지 않습니다.
우선 모두 표시되게 작성해 드립니다.
각 양봉/음봉 조건식의 else문에서 주석 해제하시면
현재 3개이상 양봉,음봉이 진행 중일 경우만 표시됩니다.
Inputs:
N(3), // 연속 봉 개수 기준
BullishColor(Red), // 양봉 선 색상
BearishColor(Blue); // 음봉 선 색상
Vars:
bullishCount(0),bearishCount(0),
FirstDate(0),FirstTime(0),LineTop(0),bullishBox(0),
LastDate(0),LastTime(0),lineBottom(0),BearishBox(0);
If Close > Open Then
Begin
bullishCount = bullishCount + 1;
If bullishCount == 1 Then
Begin
firstDate = sDate;
firstTime = sTime;
lineBottom = L;
End;
lastDate = sDate;
lastTime = sTime;
lineTop= high;
// 상단 선: 첫봉 시간 ~ 현재 시간, 가격 = 마지막 봉 고가
if bullishCount >= N Then
Begin
if bullishCount == N Then
Begin
bullishBox = Box_New(firstDate, firstTime, lineTop, lastDate, lastTime, lineBottom);
box_SetColor(bullishBox, BullishColor);
Box_SetFill(bullishBox,true);
end;
Box_SetEnd(bullishBox,lastDate, lastTime, lineBottom);
end;
End
Else
Begin
bullishCount = 0;
#Box_Delete(bullishBox);
End;
If Close < Open Then
Begin
BearishCount = BearishCount + 1;
If BearishCount == 1 Then
Begin
firstDate = sDate;
firstTime = sTime;
lineTop = H;
End;
lastDate = sDate;
lastTime = sTime;
lineBottom = Low;
// 상단 선: 첫봉 시간 ~ 현재 시간, 가격 = 마지막 봉 고가
if BearishCount >= N Then
Begin
if BearishCount == N Then
Begin
BearishBox = Box_New(firstDate, firstTime, lineTop, lastDate, lastTime, lineBottom);
box_SetColor(BearishBox, BearishColor);
Box_SetFill(BearishBox,true);
end;
Box_SetEnd(BearishBox,lastDate, lastTime, lineBottom);
end;
End
Else
Begin
BearishCount = 0;
#Box_Delete(BearishBox);
End;
즐거운 하루되세요
> 알리섬 님이 쓴 글입니다.
> 제목 : 수식수정요청
> 늘 도움 감사합니다 아래의 수식을 기반으로 3연속 이상 의 봉을 기반으로 박스를 그리고 싶은데 오류가 나오네요
살펴서 수정 부탁드립니다.
Inputs:
N(3), // 연속 봉 개수 기준
BullishColor(Red), // 양봉 선 색상
BearishColor(Blue), // 음봉 선 색상
LineWidth(1); // 선 굵기
Vars:
bullishCount(0),
bearishCount(0),
drewBullBox(False),
drewBearBox(False),
startBar(0),
firstDate(0),
firstTime(0),
lastDate(0),
lastTime(0),
lineTop(0),
lineBottom(0),
lineTopID(0),
lineBottomID(0);
// 연속 양봉 카운트 및 첫 봉 기록
If Close > Open Then
Begin
bullishCount = bullishCount + 1;
bearishCount = 0;
If bullishCount = 1 Then
Begin
startBar = CurrentBar;
firstDate = Date;
firstTime = Time;
End;
lastDate = Date;
lastTime = Time;
End
// 연속 음봉 카운트 및 첫 봉 기록
Else If Close < Open Then
Begin
bearishCount = bearishCount + 1;
bullishCount = 0;
If bearishCount = 1 Then
Begin
startBar = CurrentBar;
firstDate = Date;
firstTime = Time;
End;
lastDate = Date;
lastTime = Time;
End
Else
Begin
bullishCount = 0;
bearishCount = 0;
End;
// 연속 3봉 이상 양봉 구간일 때 선 그리기
If bullishCount >= N Then
Begin
lineTop = High; // 마지막 봉 고가
lineBottom = Low[startBar]; // 첫 봉 저가
// 이전에 그렸던 선 있으면 삭제
If drewBullBox Then
Begin
TL_Delete(lineTopID);
TL_Delete(lineBottomID);
End;
// 상단 선: 첫봉 시간 ~ 현재 시간, 가격 = 마지막 봉 고가
lineTopID = TL_New(firstDate, firstTime, lineTop, lastDate, lastTime, lineTop);
TL_SetColor(lineTopID, BullishColor);
TL_SetSize(lineTopID, LineWidth);
TL_SetStyle(lineTopID, Tool_Solid);
// 하단 선: 첫봉 시간 ~ 현재 시간, 가격 = 첫 봉 저가
lineBottomID = TL_New(firstDate, firstTime, lineBottom, lastDate, lastTime, lineBottom);
TL_SetColor(lineBottomID, BullishColor);
TL_SetSize(lineBottomID, LineWidth);
TL_SetStyle(lineBottomID, Tool_Solid);
drewBullBox = True;
drewBearBox = False;
End
Else If bullishCount = 0 And drewBullBox Then
Begin
// 연속 양봉 끊어졌을 때 선 삭제
TL_Delete(lineTopID);
TL_Delete(lineBottomID);
drewBullBox = False;
End;
// 연속 3봉 이상 음봉 구간일 때 선 그리기
If bearishCount >= N Then
Begin
lineTop = High[startBar]; // 첫 봉 고가
lineBottom = Low; // 마지막 봉 저가
If drewBearBox Then
Begin
TL_Delete(lineTopID);
TL_Delete(lineBottomID);
End;
// 상단 선: 첫 봉 고가
lineTopID = TL_New(firstDate, firstTime, lineTop, lastDate, lastTime, lineTop);
TL_SetColor(lineTopID, BearishColor);
TL_SetSize(lineTopID, LineWidth);
TL_SetStyle(lineTopID, Tool_Solid);
// 하단 선: 마지막 봉 저가
lineBottomID = TL_New(firstDate, firstTime, lineBottom, lastDate, lastTime, lineBottom);
TL_SetColor(lineBottomID, BearishColor);
TL_SetSize(lineBottomID, LineWidth);
TL_SetStyle(lineBottomID, Tool_Solid);
drewBearBox = True;
drewBullBox = False;
End
Else If bearishCount = 0 And drewBearBox Then
Begin
// 연속 음봉 끊어졌을 때 선 삭제
TL_Delete(lineTopID);
TL_Delete(lineBottomID);
drewBearBox = False;
End;
잘표현은 됩니다만 음봉은 3개 이상 봉에 잘 표현 되는데 양봉은 3개까지만 박스가 그려지네요 그리고 연속봉의 마지막 고점 과 저점에 박스가 나오도록 수정 부탁드립니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식수정요청
>
안녕하세요
예스스탁입니다.
작성하신 내용은 현재봉이 3개이상의 양봉이나 음봉이 아니면 표시가 되지 않습니다.
우선 모두 표시되게 작성해 드립니다.
각 양봉/음봉 조건식의 else문에서 주석 해제하시면
현재 3개이상 양봉,음봉이 진행 중일 경우만 표시됩니다.
Inputs:
N(3), // 연속 봉 개수 기준
BullishColor(Red), // 양봉 선 색상
BearishColor(Blue); // 음봉 선 색상
Vars:
bullishCount(0),bearishCount(0),
FirstDate(0),FirstTime(0),LineTop(0),bullishBox(0),
LastDate(0),LastTime(0),lineBottom(0),BearishBox(0);
If Close > Open Then
Begin
bullishCount = bullishCount + 1;
If bullishCount == 1 Then
Begin
firstDate = sDate;
firstTime = sTime;
lineBottom = L;
End;
lastDate = sDate;
lastTime = sTime;
lineTop= high;
// 상단 선: 첫봉 시간 ~ 현재 시간, 가격 = 마지막 봉 고가
if bullishCount >= N Then
Begin
if bullishCount == N Then
Begin
bullishBox = Box_New(firstDate, firstTime, lineTop, lastDate, lastTime, lineBottom);
box_SetColor(bullishBox, BullishColor);
Box_SetFill(bullishBox,true);
end;
Box_SetEnd(bullishBox,lastDate, lastTime, lineBottom);
end;
End
Else
Begin
bullishCount = 0;
#Box_Delete(bullishBox);
End;
If Close < Open Then
Begin
BearishCount = BearishCount + 1;
If BearishCount == 1 Then
Begin
firstDate = sDate;
firstTime = sTime;
lineTop = H;
End;
lastDate = sDate;
lastTime = sTime;
lineBottom = Low;
// 상단 선: 첫봉 시간 ~ 현재 시간, 가격 = 마지막 봉 고가
if BearishCount >= N Then
Begin
if BearishCount == N Then
Begin
BearishBox = Box_New(firstDate, firstTime, lineTop, lastDate, lastTime, lineBottom);
box_SetColor(BearishBox, BearishColor);
Box_SetFill(BearishBox,true);
end;
Box_SetEnd(BearishBox,lastDate, lastTime, lineBottom);
end;
End
Else
Begin
BearishCount = 0;
#Box_Delete(BearishBox);
End;
즐거운 하루되세요
> 알리섬 님이 쓴 글입니다.
> 제목 : 수식수정요청
> 늘 도움 감사합니다 아래의 수식을 기반으로 3연속 이상 의 봉을 기반으로 박스를 그리고 싶은데 오류가 나오네요
살펴서 수정 부탁드립니다.
Inputs:
N(3), // 연속 봉 개수 기준
BullishColor(Red), // 양봉 선 색상
BearishColor(Blue), // 음봉 선 색상
LineWidth(1); // 선 굵기
Vars:
bullishCount(0),
bearishCount(0),
drewBullBox(False),
drewBearBox(False),
startBar(0),
firstDate(0),
firstTime(0),
lastDate(0),
lastTime(0),
lineTop(0),
lineBottom(0),
lineTopID(0),
lineBottomID(0);
// 연속 양봉 카운트 및 첫 봉 기록
If Close > Open Then
Begin
bullishCount = bullishCount + 1;
bearishCount = 0;
If bullishCount = 1 Then
Begin
startBar = CurrentBar;
firstDate = Date;
firstTime = Time;
End;
lastDate = Date;
lastTime = Time;
End
// 연속 음봉 카운트 및 첫 봉 기록
Else If Close < Open Then
Begin
bearishCount = bearishCount + 1;
bullishCount = 0;
If bearishCount = 1 Then
Begin
startBar = CurrentBar;
firstDate = Date;
firstTime = Time;
End;
lastDate = Date;
lastTime = Time;
End
Else
Begin
bullishCount = 0;
bearishCount = 0;
End;
// 연속 3봉 이상 양봉 구간일 때 선 그리기
If bullishCount >= N Then
Begin
lineTop = High; // 마지막 봉 고가
lineBottom = Low[startBar]; // 첫 봉 저가
// 이전에 그렸던 선 있으면 삭제
If drewBullBox Then
Begin
TL_Delete(lineTopID);
TL_Delete(lineBottomID);
End;
// 상단 선: 첫봉 시간 ~ 현재 시간, 가격 = 마지막 봉 고가
lineTopID = TL_New(firstDate, firstTime, lineTop, lastDate, lastTime, lineTop);
TL_SetColor(lineTopID, BullishColor);
TL_SetSize(lineTopID, LineWidth);
TL_SetStyle(lineTopID, Tool_Solid);
// 하단 선: 첫봉 시간 ~ 현재 시간, 가격 = 첫 봉 저가
lineBottomID = TL_New(firstDate, firstTime, lineBottom, lastDate, lastTime, lineBottom);
TL_SetColor(lineBottomID, BullishColor);
TL_SetSize(lineBottomID, LineWidth);
TL_SetStyle(lineBottomID, Tool_Solid);
drewBullBox = True;
drewBearBox = False;
End
Else If bullishCount = 0 And drewBullBox Then
Begin
// 연속 양봉 끊어졌을 때 선 삭제
TL_Delete(lineTopID);
TL_Delete(lineBottomID);
drewBullBox = False;
End;
// 연속 3봉 이상 음봉 구간일 때 선 그리기
If bearishCount >= N Then
Begin
lineTop = High[startBar]; // 첫 봉 고가
lineBottom = Low; // 마지막 봉 저가
If drewBearBox Then
Begin
TL_Delete(lineTopID);
TL_Delete(lineBottomID);
End;
// 상단 선: 첫 봉 고가
lineTopID = TL_New(firstDate, firstTime, lineTop, lastDate, lastTime, lineTop);
TL_SetColor(lineTopID, BearishColor);
TL_SetSize(lineTopID, LineWidth);
TL_SetStyle(lineTopID, Tool_Solid);
// 하단 선: 마지막 봉 저가
lineBottomID = TL_New(firstDate, firstTime, lineBottom, lastDate, lastTime, lineBottom);
TL_SetColor(lineBottomID, BearishColor);
TL_SetSize(lineBottomID, LineWidth);
TL_SetStyle(lineBottomID, Tool_Solid);
drewBearBox = True;
drewBullBox = False;
End
Else If bearishCount = 0 And drewBearBox Then
Begin
// 연속 음봉 끊어졌을 때 선 삭제
TL_Delete(lineTopID);
TL_Delete(lineBottomID);
drewBearBox = False;
End;
예스스탁
예스스탁 답변
2025-06-05 15:14:31
안녕하세요
예스스탁입니다.
Inputs:
N(3), // 연속 봉 개수 기준
BullishColor(Red), // 양봉 선 색상
BearishColor(Blue); // 음봉 선 색상
Vars:
bullishCount(0),bearishCount(0),
FirstDate(0),FirstTime(0),LineTop(0),bullishBox(0),
LastDate(0),LastTime(0),lineBottom(0),BearishBox(0);
If Close > Open Then
Begin
bullishCount = bullishCount + 1;
If bullishCount == 1 Then
Begin
firstDate = sDate;
firstTime = sTime;
lineBottom = L;
End;
lastDate = sDate;
lastTime = sTime;
lineTop = high;
// 상단 선: 첫봉 시간 ~ 현재 시간, 가격 = 마지막 봉 고가
if bullishCount >= N Then
Begin
if bullishCount == N Then
Begin
bullishBox = Box_New(firstDate, firstTime, lineBottom, lastDate, lastTime, lineTop);
box_SetColor(bullishBox, BullishColor);
Box_SetFill(bullishBox,true);
end;
Box_SetEnd(bullishBox,lastDate, lastTime, lineTop);
end;
End
Else
Begin
bullishCount = 0;
#Box_Delete(bullishBox);
End;
If Close < Open Then
Begin
BearishCount = BearishCount + 1;
If BearishCount == 1 Then
Begin
firstDate = sDate;
firstTime = sTime;
lineTop = H;
End;
lastDate = sDate;
lastTime = sTime;
lineBottom = Low;
// 상단 선: 첫봉 시간 ~ 현재 시간, 가격 = 마지막 봉 고가
if BearishCount >= N Then
Begin
if BearishCount == N Then
Begin
BearishBox = Box_New(firstDate, firstTime, lineTop, lastDate, lastTime, lineBottom);
box_SetColor(BearishBox, BearishColor);
Box_SetFill(BearishBox,true);
end;
Box_SetEnd(BearishBox,lastDate, lastTime, lineBottom);
end;
End
Else
Begin
BearishCount = 0;
#Box_Delete(BearishBox);
End;
즐거운 하루되세요
> 알리섬 님이 쓴 글입니다.
> 제목 : Re : Re : 수식수정요청
> 잘표현은 됩니다만 음봉은 3개 이상 봉에 잘 표현 되는데 양봉은 3개까지만 박스가 그려지네요 그리고 연속봉의 마지막 고점 과 저점에 박스가 나오도록 수정 부탁드립니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식수정요청
>
안녕하세요
예스스탁입니다.
작성하신 내용은 현재봉이 3개이상의 양봉이나 음봉이 아니면 표시가 되지 않습니다.
우선 모두 표시되게 작성해 드립니다.
각 양봉/음봉 조건식의 else문에서 주석 해제하시면
현재 3개이상 양봉,음봉이 진행 중일 경우만 표시됩니다.
Inputs:
N(3), // 연속 봉 개수 기준
BullishColor(Red), // 양봉 선 색상
BearishColor(Blue); // 음봉 선 색상
Vars:
bullishCount(0),bearishCount(0),
FirstDate(0),FirstTime(0),LineTop(0),bullishBox(0),
LastDate(0),LastTime(0),lineBottom(0),BearishBox(0);
If Close > Open Then
Begin
bullishCount = bullishCount + 1;
If bullishCount == 1 Then
Begin
firstDate = sDate;
firstTime = sTime;
lineBottom = L;
End;
lastDate = sDate;
lastTime = sTime;
lineTop= high;
// 상단 선: 첫봉 시간 ~ 현재 시간, 가격 = 마지막 봉 고가
if bullishCount >= N Then
Begin
if bullishCount == N Then
Begin
bullishBox = Box_New(firstDate, firstTime, lineTop, lastDate, lastTime, lineBottom);
box_SetColor(bullishBox, BullishColor);
Box_SetFill(bullishBox,true);
end;
Box_SetEnd(bullishBox,lastDate, lastTime, lineBottom);
end;
End
Else
Begin
bullishCount = 0;
#Box_Delete(bullishBox);
End;
If Close < Open Then
Begin
BearishCount = BearishCount + 1;
If BearishCount == 1 Then
Begin
firstDate = sDate;
firstTime = sTime;
lineTop = H;
End;
lastDate = sDate;
lastTime = sTime;
lineBottom = Low;
// 상단 선: 첫봉 시간 ~ 현재 시간, 가격 = 마지막 봉 고가
if BearishCount >= N Then
Begin
if BearishCount == N Then
Begin
BearishBox = Box_New(firstDate, firstTime, lineTop, lastDate, lastTime, lineBottom);
box_SetColor(BearishBox, BearishColor);
Box_SetFill(BearishBox,true);
end;
Box_SetEnd(BearishBox,lastDate, lastTime, lineBottom);
end;
End
Else
Begin
BearishCount = 0;
#Box_Delete(BearishBox);
End;
즐거운 하루되세요
> 알리섬 님이 쓴 글입니다.
> 제목 : 수식수정요청
> 늘 도움 감사합니다 아래의 수식을 기반으로 3연속 이상 의 봉을 기반으로 박스를 그리고 싶은데 오류가 나오네요
살펴서 수정 부탁드립니다.
Inputs:
N(3), // 연속 봉 개수 기준
BullishColor(Red), // 양봉 선 색상
BearishColor(Blue), // 음봉 선 색상
LineWidth(1); // 선 굵기
Vars:
bullishCount(0),
bearishCount(0),
drewBullBox(False),
drewBearBox(False),
startBar(0),
firstDate(0),
firstTime(0),
lastDate(0),
lastTime(0),
lineTop(0),
lineBottom(0),
lineTopID(0),
lineBottomID(0);
// 연속 양봉 카운트 및 첫 봉 기록
If Close > Open Then
Begin
bullishCount = bullishCount + 1;
bearishCount = 0;
If bullishCount = 1 Then
Begin
startBar = CurrentBar;
firstDate = Date;
firstTime = Time;
End;
lastDate = Date;
lastTime = Time;
End
// 연속 음봉 카운트 및 첫 봉 기록
Else If Close < Open Then
Begin
bearishCount = bearishCount + 1;
bullishCount = 0;
If bearishCount = 1 Then
Begin
startBar = CurrentBar;
firstDate = Date;
firstTime = Time;
End;
lastDate = Date;
lastTime = Time;
End
Else
Begin
bullishCount = 0;
bearishCount = 0;
End;
// 연속 3봉 이상 양봉 구간일 때 선 그리기
If bullishCount >= N Then
Begin
lineTop = High; // 마지막 봉 고가
lineBottom = Low[startBar]; // 첫 봉 저가
// 이전에 그렸던 선 있으면 삭제
If drewBullBox Then
Begin
TL_Delete(lineTopID);
TL_Delete(lineBottomID);
End;
// 상단 선: 첫봉 시간 ~ 현재 시간, 가격 = 마지막 봉 고가
lineTopID = TL_New(firstDate, firstTime, lineTop, lastDate, lastTime, lineTop);
TL_SetColor(lineTopID, BullishColor);
TL_SetSize(lineTopID, LineWidth);
TL_SetStyle(lineTopID, Tool_Solid);
// 하단 선: 첫봉 시간 ~ 현재 시간, 가격 = 첫 봉 저가
lineBottomID = TL_New(firstDate, firstTime, lineBottom, lastDate, lastTime, lineBottom);
TL_SetColor(lineBottomID, BullishColor);
TL_SetSize(lineBottomID, LineWidth);
TL_SetStyle(lineBottomID, Tool_Solid);
drewBullBox = True;
drewBearBox = False;
End
Else If bullishCount = 0 And drewBullBox Then
Begin
// 연속 양봉 끊어졌을 때 선 삭제
TL_Delete(lineTopID);
TL_Delete(lineBottomID);
drewBullBox = False;
End;
// 연속 3봉 이상 음봉 구간일 때 선 그리기
If bearishCount >= N Then
Begin
lineTop = High[startBar]; // 첫 봉 고가
lineBottom = Low; // 마지막 봉 저가
If drewBearBox Then
Begin
TL_Delete(lineTopID);
TL_Delete(lineBottomID);
End;
// 상단 선: 첫 봉 고가
lineTopID = TL_New(firstDate, firstTime, lineTop, lastDate, lastTime, lineTop);
TL_SetColor(lineTopID, BearishColor);
TL_SetSize(lineTopID, LineWidth);
TL_SetStyle(lineTopID, Tool_Solid);
// 하단 선: 마지막 봉 저가
lineBottomID = TL_New(firstDate, firstTime, lineBottom, lastDate, lastTime, lineBottom);
TL_SetColor(lineBottomID, BearishColor);
TL_SetSize(lineBottomID, LineWidth);
TL_SetStyle(lineBottomID, Tool_Solid);
drewBearBox = True;
drewBullBox = False;
End
Else If bearishCount = 0 And drewBearBox Then
Begin
// 연속 음봉 끊어졌을 때 선 삭제
TL_Delete(lineTopID);
TL_Delete(lineBottomID);
drewBearBox = False;
End;