예스스탁
예스스탁 답변
2020-02-14 16:34:37
안녕하세요
예스스탁입니다.
문의하신 내용은 식작성에 시간이 많이 걸리는 부분이지만
타주기와 관련된 수식을 이후에 사용자분이 응용해 작성하는데 도움을 드리고자
주기별로 모두 작성해서 답변을 드렸습니다.
업무상 작성에 일정시간 이상 소모되는 내용은 저희가 답변을 드리기 어렵습니다.
도움을 드리지 못해 죄송합니다.
즐거운 하루되세요
> 삼족오 님이 쓴 글입니다.
> 제목 : 문의드립니다...
> 4등분선 또는 시고저 라인을 응용하여 다음 같은 수식이 필요합니다
1분봉에서는 5분봉과 30분봉의 고점가격 중심값가격 저가가격
< 상위 차트 봉이 완성되면.. 선이 표현 되면 됩니다>
즉 총 6개의 선이 표현 됩니다...
5분봉에서는 30분봉과 360분봉 (중심값은 30분의 중심값)
5분봉에서는 30분봉과 일봉 (중심값은 30분의 중심값)
30분봉에서는 일봉과 360분봉 (중심값은 일봉의 중심값)
30분봉에서는 일봉과 주봉 (중심값은 일봉의 중심값)
일봉에서는 주봉과 월봉이 (중심값은 주봉의 중심값)
필요합니다..
그리고 항셍의 경우 시작시간이 다르기에 .. 항셍은 따로 부탁드립니다..
또한 표현되는 수식에서 상위차트가 음봉이면 파랑.. 양봉이면 빨간색으로 표현되고
부탁드리구요..
아래 수식의 응용버전으로 만들어 주시면 될듯 합니다
감사합니다
=======================
안녕하세요
예스스탁입니다.
선의 굵기가 굵으면 점선으로 지정해도 해당 사이가 붙게 됩니다.
굵기는 모두 0으로 지정했습니다. 조절해 보시기 바랍니다.
1 월봉
var : OO(0),HH(0),LL(0),DD(0),TT(0);
var : TL1(0),TL2(0),TL3(0),TL4(0);
if bdate > bdate[1]+30 Then
{
OO = O;
HH = H;
LL = L;
DD = sdate;
TT = stime;
TL1 = TL_New(DD,TT,HH,DD,TT,LL);
TL2 = TL_New(DD,TT,HH,DD,TT,HH);
TL3 = TL_New(DD,TT,LL,DD,TT,LL);
TL4 = TL_New(DD,TT,HH,DD,TT,LL);
}
else
{
if OO > 0 then
{
if H > HH Then
HH = H;
if L < LL Then
LL = L;
TL_SetBegin(TL1,DD,TT,HH);
TL_SetEnd(TL1,DD,TT,LL);
TL_SetBegin(TL2,DD,TT,HH);
TL_SetEnd(TL2,sdate,stime,HH);
TL_SetBegin(TL3,DD,TT,LL);
TL_SetEnd(TL3,sdate,stime,LL);
TL_SetBegin(TL4,sdate,stime,HH);
TL_SetEnd(TL4,sdate,stime,LL);
}
}
If OO <= C Then
{
TL_SetColor(TL1,RED);
TL_SetColor(TL2,RED);
TL_SetColor(TL3,RED);
TL_SetColor(TL4,RED);
}
Else
{
TL_SetColor(TL1,BLUE);
TL_SetColor(TL2,BLUE);
TL_SetColor(TL3,BLUE);
TL_SetColor(TL4,BLUE);
}
TL_SetSize(TL1,0); //좌측세로선 굵기
TL_SetSize(TL2,0); //상단가로선 굵기
TL_SetSize(TL3,0); //하측가로선 굵기
TL_SetSize(TL4,0); //우측세로선 굵기
TL_SetStyle(TL1,3); //좌측세로선 점선
TL_SetStyle(TL4,3); //우측세로선 점선
2 주봉
var : OO(0),HH(0),LL(0),DD(0),TT(0);
var : TL1(0),TL2(0),TL3(0),TL4(0);
if DayOfWeek(bdate) < DayOfWeek(bdate[1]) Then
{
OO = O;
HH = H;
LL = L;
DD = sdate;
TT = stime;
TL1 = TL_New(DD,TT,HH,DD,TT,LL);
TL2 = TL_New(DD,TT,HH,DD,TT,HH);
TL3 = TL_New(DD,TT,LL,DD,TT,LL);
TL4 = TL_New(DD,TT,HH,DD,TT,LL);
}
else
{
if OO > 0 then
{
if H > HH Then
HH = H;
if L < LL Then
LL = L;
TL_SetBegin(TL1,DD,TT,HH);
TL_SetEnd(TL1,DD,TT,LL);
TL_SetBegin(TL2,DD,TT,HH);
TL_SetEnd(TL2,sdate,stime,HH);
TL_SetBegin(TL3,DD,TT,LL);
TL_SetEnd(TL3,sdate,stime,LL);
TL_SetBegin(TL4,sdate,stime,HH);
TL_SetEnd(TL4,sdate,stime,LL);
}
}
If OO <= C Then
{
TL_SetColor(TL1,RED);
TL_SetColor(TL2,RED);
TL_SetColor(TL3,RED);
TL_SetColor(TL4,RED);
}
Else
{
TL_SetColor(TL1,BLUE);
TL_SetColor(TL2,BLUE);
TL_SetColor(TL3,BLUE);
TL_SetColor(TL4,BLUE);
}
TL_SetSize(TL1,0); //좌측세로선 굵기
TL_SetSize(TL2,0); //상단가로선 굵기
TL_SetSize(TL3,0); //하측가로선 굵기
TL_SetSize(TL4,0); //우측세로선 굵기
TL_SetStyle(TL1,3); //좌측세로선 점선
TL_SetStyle(TL4,3); //우측세로선 점선
3 일봉
var : OO(0),HH(0),LL(0),DD(0),TT(0);
var : TL1(0),TL2(0),TL3(0),TL4(0);
if bdate > bdate[1] Then
{
OO = O;
HH = H;
LL = L;
DD = sdate;
TT = stime;
TL1 = TL_New(DD,TT,HH,DD,TT,LL);
TL2 = TL_New(DD,TT,HH,DD,TT,HH);
TL3 = TL_New(DD,TT,LL,DD,TT,LL);
TL4 = TL_New(DD,TT,HH,DD,TT,LL);
}
else
{
if OO > 0 then
{
if H > HH Then
HH = H;
if L < LL Then
LL = L;
TL_SetBegin(TL1,DD,TT,HH);
TL_SetEnd(TL1,DD,TT,LL);
TL_SetBegin(TL2,DD,TT,HH);
TL_SetEnd(TL2,sdate,stime,HH);
TL_SetBegin(TL3,DD,TT,LL);
TL_SetEnd(TL3,sdate,stime,LL);
TL_SetBegin(TL4,sdate,stime,HH);
TL_SetEnd(TL4,sdate,stime,LL);
}
}
If OO <= C Then
{
TL_SetColor(TL1,RED);
TL_SetColor(TL2,RED);
TL_SetColor(TL3,RED);
TL_SetColor(TL4,RED);
}
Else
{
TL_SetColor(TL1,BLUE);
TL_SetColor(TL2,BLUE);
TL_SetColor(TL3,BLUE);
TL_SetColor(TL4,BLUE);
}
TL_SetSize(TL1,0); //좌측세로선 굵기
TL_SetSize(TL2,0); //상단가로선 굵기
TL_SetSize(TL3,0); //하측가로선 굵기
TL_SetSize(TL4,0); //우측세로선 굵기
TL_SetStyle(TL1,3); //좌측세로선 점선
TL_SetStyle(TL4,3); //우측세로선 점선
4 다른분봉
input : ntime(30);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
var : OO(0),HH(0),LL(0),DD(0),TT(0);
var : TL1(0),TL2(0),TL3(0),TL4(0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
OO = O;
HH = H;
LL = L;
DD = sdate;
TT = stime;
TL1 = TL_New(DD,TT,HH,DD,TT,LL);
TL2 = TL_New(DD,TT,HH,DD,TT,HH);
TL3 = TL_New(DD,TT,LL,DD,TT,LL);
TL4 = TL_New(DD,TT,HH,DD,TT,LL);
}
else
{
if OO > 0 then
{
if H > HH Then
HH = H;
if L < LL Then
LL = L;
TL_SetBegin(TL1,DD,TT,HH);
TL_SetEnd(TL1,DD,TT,LL);
TL_SetBegin(TL2,DD,TT,HH);
TL_SetEnd(TL2,sdate,stime,HH);
TL_SetBegin(TL3,DD,TT,LL);
TL_SetEnd(TL3,sdate,stime,LL);
TL_SetBegin(TL4,sdate,stime,HH);
TL_SetEnd(TL4,sdate,stime,LL);
}
}
If OO <= C Then
{
TL_SetColor(TL1,RED);
TL_SetColor(TL2,RED);
TL_SetColor(TL3,RED);
TL_SetColor(TL4,RED);
}
Else
{
TL_SetColor(TL1,BLUE);
TL_SetColor(TL2,BLUE);
TL_SetColor(TL3,BLUE);
TL_SetColor(TL4,BLUE);
}
TL_SetSize(TL1,0); //좌측세로선 굵기
TL_SetSize(TL2,0); //상단가로선 굵기
TL_SetSize(TL3,0); //하측가로선 굵기
TL_SetSize(TL4,0); //우측세로선 굵기
TL_SetStyle(TL1,3); //좌측세로선 점선
TL_SetStyle(TL4,3); //우측세로선 점선
}
5. 항셍 월봉
input : ntime(101500);
var : D1(0),D2(0);
var : OO(0),HH(0),LL(0),DD(0),TT(0);
var : TL1(0),TL2(0),TL3(0),TL4(0);
if (sdate != sdate[1] and stime >= ntime) or
(sdate == sdate[1] and stime >= ntime and stime[1] < ntime) then
{
var1 = sdate;
var2 = var1[1];
if var1 > var2+30 Then
{
OO = O;
HH = H;
LL = L;
DD = sdate;
TT = stime;
TL1 = TL_New(DD,TT,HH,DD,TT,LL);
TL2 = TL_New(DD,TT,HH,DD,TT,HH);
TL3 = TL_New(DD,TT,LL,DD,TT,LL);
TL4 = TL_New(DD,TT,HH,DD,TT,LL);
}
}
else
{
if OO > 0 then
{
if H > HH Then
HH = H;
if L < LL Then
LL = L;
TL_SetBegin(TL1,DD,TT,HH);
TL_SetEnd(TL1,DD,TT,LL);
TL_SetBegin(TL2,DD,TT,HH);
TL_SetEnd(TL2,sdate,stime,HH);
TL_SetBegin(TL3,DD,TT,LL);
TL_SetEnd(TL3,sdate,stime,LL);
TL_SetBegin(TL4,sdate,stime,HH);
TL_SetEnd(TL4,sdate,stime,LL);
If OO <= C Then
{
TL_SetColor(TL1,RED);
TL_SetColor(TL2,RED);
TL_SetColor(TL3,RED);
TL_SetColor(TL4,RED);
}
Else
{
TL_SetColor(TL1,BLUE);
TL_SetColor(TL2,BLUE);
TL_SetColor(TL3,BLUE);
TL_SetColor(TL4,BLUE);
}
}
TL_SetSize(TL1,0); //좌측세로선 굵기
TL_SetSize(TL2,0); //상단가로선 굵기
TL_SetSize(TL3,0); //하측가로선 굵기
TL_SetSize(TL4,0); //우측세로선 굵기
TL_SetStyle(TL1,3); //좌측세로선 점선
TL_SetStyle(TL4,3); //우측세로선 점선
}
6. 항셍 주봉
input : ntime(101500);
var : D1(0),D2(0);
var : OO(0),HH(0),LL(0),DD(0),TT(0);
var : TL1(0),TL2(0),TL3(0),TL4(0);
if (sdate != sdate[1] and stime >= ntime) or
(sdate == sdate[1] and stime >= ntime and stime[1] < ntime) then
{
var1 = sdate;
var2 = var1[1];
if dayofweek(var1) < DayOfWeek(var2) Then
{
OO = O;
HH = H;
LL = L;
DD = sdate;
TT = stime;
TL1 = TL_New(DD,TT,HH,DD,TT,LL);
TL2 = TL_New(DD,TT,HH,DD,TT,HH);
TL3 = TL_New(DD,TT,LL,DD,TT,LL);
TL4 = TL_New(DD,TT,HH,DD,TT,LL);
}
}
else
{
if OO > 0 then
{
if H > HH Then
HH = H;
if L < LL Then
LL = L;
TL_SetBegin(TL1,DD,TT,HH);
TL_SetEnd(TL1,DD,TT,LL);
TL_SetBegin(TL2,DD,TT,HH);
TL_SetEnd(TL2,sdate,stime,HH);
TL_SetBegin(TL3,DD,TT,LL);
TL_SetEnd(TL3,sdate,stime,LL);
TL_SetBegin(TL4,sdate,stime,HH);
TL_SetEnd(TL4,sdate,stime,LL);
If OO <= C Then
{
TL_SetColor(TL1,RED);
TL_SetColor(TL2,RED);
TL_SetColor(TL3,RED);
TL_SetColor(TL4,RED);
}
Else
{
TL_SetColor(TL1,BLUE);
TL_SetColor(TL2,BLUE);
TL_SetColor(TL3,BLUE);
TL_SetColor(TL4,BLUE);
}
}
TL_SetSize(TL1,0); //좌측세로선 굵기
TL_SetSize(TL2,0); //상단가로선 굵기
TL_SetSize(TL3,0); //하측가로선 굵기
TL_SetSize(TL4,0); //우측세로선 굵기
TL_SetStyle(TL1,3); //좌측세로선 점선
TL_SetStyle(TL4,3); //우측세로선 점선
}
7. 항셍 일봉
input : ntime(101500);
var : D1(0),D2(0);
var : OO(0),HH(0),LL(0),DD(0),TT(0);
var : TL1(0),TL2(0),TL3(0),TL4(0);
if (sdate != sdate[1] and stime >= ntime) or
(sdate == sdate[1] and stime >= ntime and stime[1] < ntime) then
{
OO = O;
HH = H;
LL = L;
DD = sdate;
TT = stime;
TL1 = TL_New(DD,TT,HH,DD,TT,LL);
TL2 = TL_New(DD,TT,HH,DD,TT,HH);
TL3 = TL_New(DD,TT,LL,DD,TT,LL);
TL4 = TL_New(DD,TT,HH,DD,TT,LL);
}
else
{
if OO > 0 then
{
if H > HH Then
HH = H;
if L < LL Then
LL = L;
TL_SetBegin(TL1,DD,TT,HH);
TL_SetEnd(TL1,DD,TT,LL);
TL_SetBegin(TL2,DD,TT,HH);
TL_SetEnd(TL2,sdate,stime,HH);
TL_SetBegin(TL3,DD,TT,LL);
TL_SetEnd(TL3,sdate,stime,LL);
TL_SetBegin(TL4,sdate,stime,HH);
TL_SetEnd(TL4,sdate,stime,LL);
If OO <= C Then
{
TL_SetColor(TL1,RED);
TL_SetColor(TL2,RED);
TL_SetColor(TL3,RED);
TL_SetColor(TL4,RED);
}
Else
{
TL_SetColor(TL1,BLUE);
TL_SetColor(TL2,BLUE);
TL_SetColor(TL3,BLUE);
TL_SetColor(TL4,BLUE);
}
}
TL_SetSize(TL1,0); //좌측세로선 굵기
TL_SetSize(TL2,0); //상단가로선 굵기
TL_SetSize(TL3,0); //하측가로선 굵기
TL_SetSize(TL4,0); //우측세로선 굵기
TL_SetStyle(TL1,3); //좌측세로선 점선
TL_SetStyle(TL4,3); //우측세로선 점선
}
8. 항셍 다른분봉
input : ntime(30);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
var : OO(0),HH(0),LL(0),DD(0),TT(0);
var : TL1(0),TL2(0),TL3(0),TL4(0);
if (sdate != sdate[1] and stime >= 101500) or
(sdate == sdate[1] and stime >= 101500 and stime[1] < 101500) Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime;
if D1 != D1[1] or
(D1 == D1[1] and ntime > 1 and TF < TF[1]) or
(D1 == D1[1] and ntime > 1 and TM >= TM[1]+ntime) or
(D1 == D1[1] and ntime == 1 and TM > TM[1]) Then
{
OO = O;
HH = H;
LL = L;
DD = sdate;
TT = stime;
TL1 = TL_New(DD,TT,HH,DD,TT,LL);
TL2 = TL_New(DD,TT,HH,DD,TT,HH);
TL3 = TL_New(DD,TT,LL,DD,TT,LL);
TL4 = TL_New(DD,TT,HH,DD,TT,LL);
}
else
{
if OO > 0 then
{
if H > HH Then
HH = H;
if L < LL Then
LL = L;
TL_SetBegin(TL1,DD,TT,HH);
TL_SetEnd(TL1,DD,TT,LL);
TL_SetBegin(TL2,DD,TT,HH);
TL_SetEnd(TL2,sdate,stime,HH);
TL_SetBegin(TL3,DD,TT,LL);
TL_SetEnd(TL3,sdate,stime,LL);
TL_SetBegin(TL4,sdate,stime,HH);
TL_SetEnd(TL4,sdate,stime,LL);
}
}
If OO <= C Then
{
TL_SetColor(TL1,RED);
TL_SetColor(TL2,RED);
TL_SetColor(TL3,RED);
TL_SetColor(TL4,RED);
}
Else
{
TL_SetColor(TL1,BLUE);
TL_SetColor(TL2,BLUE);
TL_SetColor(TL3,BLUE);
TL_SetColor(TL4,BLUE);
}
TL_SetSize(TL1,0); //좌측세로선 굵기
TL_SetSize(TL2,0); //상단가로선 굵기
TL_SetSize(TL3,0); //하측가로선 굵기
TL_SetSize(TL4,0); //우측세로선 굵기
TL_SetStyle(TL1,3); //좌측세로선 점선
TL_SetStyle(TL4,3); //우측세로선 점선
}
즐거운 하루되세요
> 삼족오 님이 쓴 글입니다.
> 제목 : 문의드립니다
> Input:분봉(5);
Var:OO(0),HH(0),LL(0),TL1(0),TL2(0),TL3(0),TL4(0);
Value1 = 분봉/BarInterval;
Value2 = DayIndex()%Value1;
If Value2 == 0 Then {
OO = O;
HH = H;
LL = L;
}
Else {
HH = Max(HH,H);
LL = Min(LL,L);
}
If Value2 == Value1 - 1 or time==iff(CodeCategory()<3,150000,151500) then {
TL1 = TL_New(Date[Value2],sTime[Value2],LL,Date[Value2],sTime[Value2],HH);
TL2 = TL_New(Date[Value2],sTime[Value2],HH,Date,sTime,HH);
TL3 = TL_New(Date[Value2],sTime[Value2],LL,Date,sTime,LL);
TL4 = TL_New(Date,sTime,LL,Date,sTime,HH);
If OO <= C Then {
TL_SetColor(TL1,RED);
TL_SetColor(TL2,RED);
TL_SetColor(TL3,RED);
TL_SetColor(TL4,RED);
}
Else {
TL_SetColor(TL1,BLUE);
TL_SetColor(TL2,BLUE);
TL_SetColor(TL3,BLUE);
TL_SetColor(TL4,BLUE);
}
}
TL_SetSize(TL1,1);
TL_SetSize(TL2,1);
TL_SetSize(TL3,1);
TL_SetSize(TL4,1);
=============================================
위 수식을 응용해서요..
월봉을 주봉에 표현하고
주봉을 일봉에 표현하고
일봉을 360분봉에 표현하고
360분봉을 30분에 표현하고
30분을 5분에 표현하고
5분을 1분에 표현하게 변경 부탁드립니다...
해외선물 기준입니다... 시작시간을 고려하여 잘 부탁드리구요
사각형이 표현될때 좌측과 우측은 실선으로 부탁드립니다
그리고 항생지수는 기타 해외선물과 시간이 다르니 수식을 따로 부탁드립니다