예스스탁
예스스탁 답변
2022-02-18 09:41:01
안녕하세요
예스스탁입니다.
input : starttime(090000),endtime(154500),X(1);
var : Tcond(false,data2),idx(0,data2),VV(0,data2);
var : diff(0),value(0),color(0),T(0);
diff = Upvol-DownVol;
if data2((sdate != sdate[1] and stime >= starttime) or
(sdate == sdate[1] and stime >= starttime and stime[1] < starttime)) then
{
Tcond = true;
idx = 0;
}
if data2((sdate != sdate[1] and stime >= endtime) or
(sdate == sdate[1] and stime >= endtime and stime[1] < endtime)) then
{
Tcond = false;
VV = 0;
}
if Tcond == true then
{
idx = idx+1;
if idx == 1 Then
vv = data2(DayOpen);
Else
vv = data2(C-C[1]);
if idx == 1 Then
{
if VV > 0 and diff > 0 Then
value = VV+diff;
if VV > 0 and diff < 0 and (vv - abs(diff)) > 0 Then
value = VV-abs(diff);
if VV <= 0 and diff > 0 and (diff - abs(vv)) > 0 Then
value = diff-abs(VV);
if VV <= 0 and diff < 0 Then
value = VV+diff;
if VV <= 0 and diff > 0 and (vv + diff) <= 0 Then
value = VV+diff;
if VV > 0 and diff < 0 and (diff + vv) <= 0 Then
value = diff+VV;
if value > 0 Then
color = RGB(242,150,97);
Else
color = RGB(103,153,255);
}
Else
{
if VV > 0 and diff > 0 Then
value = VV+diff;
if VV > 0 and diff < 0 and (vv - abs(diff)) > 0 Then
value = VV-abs(diff);
if VV < 0 and diff > 0 and (diff - abs(vv)) > 0 Then
value = diff-abs(VV);
if VV < 0 and diff < 0 Then
value = VV+diff;
if VV < 0 and diff > 0 and (vv + diff) < 0 Then
value = VV+diff;
if VV > 0 and diff < 0 and (diff + vv) < 0 Then
value = diff+VV;
if abs(value) > abs(value[1])*x Then
{
if value > 0 Then
T = 1;
Else
T = -1;
}
}
}
var : Xclose(0,Data1),xOpen(0,Data1),Xhigh(0,Data1),Xlow(0,Data1),S(0,Data1);
xClose = (Open+High+Low+Close)/4;
xOpen = (Open[1] + Close[1])/2 ;
xHigh = Max(High, xOpen, xClose);
xLow = Min(Low, xOpen, xClose) ;
if Bdate != Bdate[1] Then
{
if Xclose > (Open[0] + Close[0])/2 Then
S = 1;
Else
S = -1;
}
Else
{
if Xclose > Xopen Then
S = 1;
Else
S = -1;
}
if T == 1 and S == 1 Then
color = RED;
if T == -1 and S == -1 Then
color = RED;
PlotPaintBar(H,L,"강조",color);
즐거운 하루 되세요
> 까냐스키 님이 쓴 글입니다.
> 제목 : 수식 문의
> 아래 두 수식은 강조식입니다.
수식 1 : 은 Upvol-DownVol + data2의 양수/음수값을 양봉,음봉으로
수식 2 : 는 하캔아쉬 지표 입니다.
분봉에서 적용시, 직전봉과 비교하되
시초가 첫봉만큼은 전일 마지막봉과 비교되는 오류를 피하기 위해
알맞게 수정되어 있습니다.
수식 문의 1 ::
이 두개의 수식을 섞고 싶은데요,
수식1이 양봉이면서 수식2가 양봉이면 = 양봉
수식1이 음봉이면서 수식2가 음봉이면 = 음봉
위 두 조건이 아니면
직전봉의 색깔을 그대로 이어받아서 칠해줍니다.
수식 문의 2 ::
위의 섞은 강조식을 시스템 식으로 구하고 싶습니다.
plot은 여러개 조건을 여러개의 plot으로 뿌리면 되는데
강조식은 짜려니 멘붕 오네요.
부탁 좀 드리겠습니다.
감사합니다.
######### 수식 1 ##########
input : starttime(090000),endtime(154500),X(1);
var : Tcond(false,data2),idx(0,data2),VV(0,data2);
var : diff(0),value(0),color(0);
diff = Upvol-DownVol;
if data2((sdate != sdate[1] and stime >= starttime) or
(sdate == sdate[1] and stime >= starttime and stime[1] < starttime)) then
{
Tcond = true;
idx = 0;
}
if data2((sdate != sdate[1] and stime >= endtime) or
(sdate == sdate[1] and stime >= endtime and stime[1] < endtime)) then
{
Tcond = false;
VV = 0;
}
if Tcond == true then
{
idx = idx+1;
if idx == 1 Then
vv = data2(DayOpen);
Else
vv = data2(C-C[1]);
if idx == 1 Then
{
if VV > 0 and diff > 0 Then
value = VV+diff;
if VV > 0 and diff < 0 and (vv - abs(diff)) > 0 Then
value = VV-abs(diff);
if VV <= 0 and diff > 0 and (diff - abs(vv)) > 0 Then
value = diff-abs(VV);
if VV <= 0 and diff < 0 Then
value = VV+diff;
if VV <= 0 and diff > 0 and (vv + diff) <= 0 Then
value = VV+diff;
if VV > 0 and diff < 0 and (diff + vv) <= 0 Then
value = diff+VV;
if value > 0 Then
color = RGB(242,150,97);
Else
color = RGB(103,153,255);
}
Else
{
if VV > 0 and diff > 0 Then
value = VV+diff;
if VV > 0 and diff < 0 and (vv - abs(diff)) > 0 Then
value = VV-abs(diff);
if VV < 0 and diff > 0 and (diff - abs(vv)) > 0 Then
value = diff-abs(VV);
if VV < 0 and diff < 0 Then
value = VV+diff;
if VV < 0 and diff > 0 and (vv + diff) < 0 Then
value = VV+diff;
if VV > 0 and diff < 0 and (diff + vv) < 0 Then
value = diff+VV;
if abs(value) > abs(value[1])*x Then
{
if value > 0 Then
color = RGB(242,150,97);
Else
color = RGB(103,153,255);
}
}
PlotPaintBar(H,L,"강조",color);
}
############ 수식 2 #############
var : Xclose(0),xOpen(0),Xhigh(0),Xlow(0);
xClose = (Open+High+Low+Close)/4;
xOpen = (Open[1] + Close[1])/2 ;
xHigh = Max(High, xOpen, xClose);
xLow = Min(Low, xOpen, xClose) ;
if Bdate != Bdate[1] Then
{
if Xclose > (Open[0] + Close[0])/2 Then
PlotPaintBar(H,L,"강조",RGB(255,130,36));
Else
PlotPaintBar(H,L,"강조",RGB(126,210,255));
}
Else
{
if Xclose > Xopen Then
PlotPaintBar(H,L,"강조",RGB(255,130,36));
Else
PlotPaintBar(H,L,"강조",RGB(126,210,255));
}